Dotterell Опубликовано 23 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2014 Yura Vakulenko Спасибо Ссылка на сообщение Поделиться на другие сайты More sharing options...
abuu Опубликовано 23 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2014 привет всем. как будет кусок код отвечающий за условие , вход-выход советника по стрелочному индикатору(без исходника) ? заранее спасибо Изменено 23 декабря, 2014 пользователем abuu Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 23 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2014 привет всем. как будет кусок код отвечающий за условие , вход-выход советника по стрелочному индикатору(без исходника) ? заранее спасибоВот кусок кода из подобного советника: bufBuy = iCustom(NULL,0,"beforexguru_orig",Sensitivity, false, false,3,1); bufSell = iCustom(NULL,0,"beforexguru_orig",Sensitivity, false, false,4,1); if (bufBuy != EMPTY_VALUE) ordOpen(OP_BUY); if (bufSell != EMPTY_VALUE) ordOpen(OP_SELL);Стрелки в разных буферах. Значения в этих буферах либо пусто (EMPTY_VALUE) или цена где рисовать стрелку.pavlovost У Вас ошибки в коде. 1. Вместо Start используйте OnTick2. Это: HourStart == TimeCurrent() работать не будет, т.к. HourStart это целое = 10, а TimeCurrent datetime = 16587456. Вам надо писать так: (HourStart TimeHour(TimeCurrent())) 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlovost Опубликовано 23 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2014 pavlovost У Вас ошибки в коде. 1. Вместо Start используйте OnTick2. Это: HourStart == TimeCurrent() работать не будет, т.к. HourStart это целое = 10, а TimeCurrent datetime = 16587456. Вам надо писать так: (HourStart TimeHour(TimeCurrent())) А это будет работать? (HourEnd == TimeHour(TimeCurrent()))И OnTick использовать вместо Start, это для чего? Ведь функция Start вроде основная для работы советника.Спасибо за участие и извините, если вопросы глупые. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Yura Vakulenko Опубликовано 23 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2014 Yura Vakulenko я чего то не вкурил твои правила входа в и выхода в рынок по этому индюку.Вот что он показывает.как с ним работать я пока не понял ? Добавлено: 22-12-2014 17:39:48Yura Vakulenko,я понаблюдал за индикатором и понял что за продажу отвечает буфер 1, за пакупку буфер 3. и нулевой сигналка. Значит на пакупку входим когда открывается новый бар и есть сигналы от трех буферов, то есть Сигнальный больше - 100, буфер 1 со смещением в 1 бар, то же больше -100,и буфер 1 со смещением в 2 бара то же больше -100. Открываем ордер. Далее если поступают сигналы пока нет противоположного открываем сетку ордеров с использованием мартина.При появлении противоположного сигнала закрываем сетку ордеров. Тут же окрываем в обратную сторону ,все повторяется до противоположного сигнала индюка. Я правильно понял идею твоей системы ? да, ты все правильно понял. Вышло что0то?Добавлено: 23-12-2014 13:25:10 привет всем. как будет кусок код отвечающий за условие , вход-выход советника по стрелочному индикатору(без исходника) ? заранее спасибоВот кусок кода из подобного советника: bufBuy = iCustom(NULL,0,"beforexguru_orig",Sensitivity, false, false,3,1); bufSell = iCustom(NULL,0,"beforexguru_orig",Sensitivity, false, false,4,1); if (bufBuy != EMPTY_VALUE) ordOpen(OP_BUY); if (bufSell != EMPTY_VALUE) ordOpen(OP_SELL);Стрелки в разных буферах. Значения в этих буферах либо пусто (EMPTY_VALUE) или цена где рисовать стрелку.pavlovost У Вас ошибки в коде. 1. Вместо Start используйте OnTick2. Это: HourStart == TimeCurrent() работать не будет, т.к. HourStart это целое = 10, а TimeCurrent datetime = 16587456. Вам надо писать так: (HourStart TimeHour(TimeCurrent())) Oli, можешь скинуть советник, который ты уже навоял на моем индикаторе? )) Ну это же не хорошо!) Изменено 23 декабря, 2014 пользователем Yura Vakulenko Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlovost Опубликовано 23 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2014 Заменил функцию OnInit на init. Стер OnDeinit и OnTick - и все заработало. В этом была проблема. Ссылка на сообщение Поделиться на другие сайты More sharing options...
DmitryMu Опубликовано 24 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 декабря, 2014 Здравствуйте!В ходе изучения индикаторных функций на MQL возникли следующие вопросы:[list type=decimal] В окне индикаторов в терминале MT4 можно установить необходимые уровни и, в зависимости от значения индикатора относительно уровня, принимать решения по торговле. Можно ли получить доступ к уровням в MQL4? Каким образом можно применять индикаторы (к примеру, сглаживающее среднее MA) к данным другого индикатора (к примеру, RSI)? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 декабря, 2014 Здравствуйте!В ходе изучения индикаторных функций на MQL возникли следующие вопросы:[list type=decimal] В окне индикаторов в терминале MT4 можно установить необходимые уровни и, в зависимости от значения индикатора относительно уровня, принимать решения по торговле. Можно ли получить доступ к уровням в MQL4? Каким образом можно применять индикаторы (к примеру, сглаживающее среднее MA) к данным другого индикатора (к примеру, RSI)? 1. Читай2. Здесь варианты. Вы применять сглаживание к индюку в терминале будете? или в советнике? или в польз. индикаторе? Ссылка на сообщение Поделиться на другие сайты More sharing options...
DmitryMu Опубликовано 25 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 декабря, 2014 [list type=decimal] Насчет уровней понял, спасибо. Сглаживающую среднюю к RSI планирую применять в советнике. Есть мысль записать значения RSI в массив и дальше использовать эти значения для построения MA. Но это изобретение велосипеда. Может, есть какие-нибудь встроенные средства? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 декабря, 2014 Сглаживающую среднюю к RSI планирую применять в советнике. Есть мысль записать значения RSI в массив и дальше использовать эти значения для построения MA. Но это изобретение велосипеда. Может, есть какие-нибудь встроенные средства? Есть встроенные средства, но всё-таки велосипед будет быстрее. Три пути:1. Открываете индюк РСИ, добавляете параметр МАпериод и 1 буфер. После расчёта основного буфера вставляете расчёт со сглаживанием. В сове импортируете через иКустом() 2-й буфер модифицированного РСИ. (я так делал)2. В сове копируете в массив значения РСИ и сглаживаете с помощью этой функции iMAOnArray()3. В сове по-барно получаете значение РСИ и сразу применяете экспоненциальное сглаживание (без дополнительного копирования в массив) типа: maRSI = (newRSI + maRSI*(МАпериод-1))/МАпериод;. Имхо данный вариант лучше №2. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
abuu Опубликовано 26 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 декабря, 2014 привет всем. как будет кусок код отвечающий за условие , вход-выход советника по стрелочному индикатору(без исходника) ? заранее спасибоВот кусок кода из подобного советника: bufBuy = iCustom(NULL,0,"beforexguru_orig",Sensitivity, false, false,3,1); bufSell = iCustom(NULL,0,"beforexguru_orig",Sensitivity, false, false,4,1); if (bufBuy != EMPTY_VALUE) ordOpen(OP_BUY); if (bufSell != EMPTY_VALUE) ordOpen(OP_SELL);Стрелки в разных буферах. Значения в этих буферах либо пусто (EMPTY_VALUE) или цена где рисовать стрелку.pavlovost У Вас ошибки в коде. 1. Вместо Start используйте OnTick2. Это: HourStart == TimeCurrent() работать не будет, т.к. HourStart это целое = 10, а TimeCurrent datetime = 16587456. Вам надо писать так: (HourStart TimeHour(TimeCurrent())) спасибо и еще как прикрутить мартингейл к советнику ? заранее спасибо Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 26 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 декабря, 2014 спасибо и еще как прикрутить мартингейл к советнику ? заранее спасибоМартин разный бывает. Например после закрытого убытка - увеличение лота (множителем или слагаемым). Или в сетке при незакрытой убыточной позе усреднение с увеличением/уменьшением лота. Вам какой? 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
chistaia-rodina Опубликовано 26 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 декабря, 2014 Вопрос, как быть с переменными GlobalVariables, если нужно сохранять все типы значений: int, double и bool, а они могут иметь только тип double. Булевые ещё можно получить обходным путём по условиям, но как быть с целочисленными, если например нужно сохранить туда тикет. Можно конечно после извлечения приводить к нужному типу, но не возникнет ли при этом глюков. В общем прошу подсказать, как правильно и безглючно это устроить? Ссылка на сообщение Поделиться на другие сайты More sharing options...
abuu Опубликовано 26 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 декабря, 2014 спасибо и еще как прикрутить мартингейл к советнику ? заранее спасибоМартин разный бывает. Например после закрытого убытка - увеличение лота (множителем или слагаемым). Или в сетке при незакрытой убыточной позе усреднение с увеличением/уменьшением лота. Вам какой? после убыточного сделка советник увеличивал лот. например в два раза. как это сделать ? заранее спасибо Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 27 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2014 Вопрос, как быть с переменными GlobalVariables, если нужно сохранять все типы значений: int, double и bool, а они могут иметь только тип double. Булевые ещё можно получить обходным путём по условиям, но как быть с целочисленными, если например нужно сохранить туда тикет. Можно конечно после извлечения приводить к нужному типу, но не возникнет ли при этом глюков. В общем прошу подсказать, как правильно и безглючно это устроить?Приводи к нужному типу через: тикет = (int)глобтикет; глючить не будет.Но, по большому счёту, это нужно только если в терминале несколько сов работающих совместно. Если сова одна, необходимости в глобальных переменных нет.Добавлено: 27-12-2014 12:23:24после убыточного сделка советник увеличивал лот. например в два раза. как это сделать ? заранее спасибо Самый оптимальный вариант включает несколько шагов:1. При открытии ордера сохраняете его тикет.2. Проверяете наличие открытых ордеров. Как только всё закрылось -3. Смотрите по тикету закрытый профит, если 4. Умножаете лот закрытого ордера на множитель.5. Снова в бой!Есть мене оптимальный способ, через исследование истории закрытых ордеров, но этот способ посложнее будет. имхо. Изменено 27 декабря, 2014 пользователем 0ll 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
onlyfly Опубликовано 27 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2014 Подскажите для чего нужны и PositionOpen и Buy с Sell в классе CTrade?Суть одна же вроде. Может скорость выполнения или есть какие-то параметры, которые есть в одном, но нет в другом? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 27 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2014 Стесняюсь спросить: Вы этот класс где увидели? если на этом форуме, то может Вам написать в соответствующую ветку?Вот я бы рад Вам помочь, но не знаю о чём речь... Ссылка на сообщение Поделиться на другие сайты More sharing options...
onlyfly Опубликовано 28 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2014 Вот здесь увидел:mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 28 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2014 Это мкл5. к сожалению я не большой спец в этом вопросе. Мое имхо: будет работать практически одинаково.Для компетентных ответов Вам надо обратиться к разработчику класса - метаквотам. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Strong-Tezis Опубликовано 28 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2014 Здравствуйте Уважаемые форумчане. Появилась идея создать индикатор на основе стандартного Volumes, вот только язык mql уж очень тяжело дается мне. Пожалуйста оцените идею и ее реализацию. (Мне и вправду показалось это интересным).Идея: Суть индикатора измерить сколько пунктов проходит цена на падающем объеме и сколько на растущем. Обновление данных должно проходить по закрытию свечи. Старт расчетов берется с начала падающего и растущих объемов по индикатору Volumes. На рисунке я выделил это вертикальными линиями. То есть перерасчет индикатор ведет после смены падающего объема на растущий и наоборот. В синий квадрат нарисовал пример, как мог бы выглядеть такой индикатор. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 29 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 декабря, 2014 Такая идея и даже более продвинутые уже реализованы. массово. Конечно я не отговариваю от очередной реализации - это даже полезно. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Strong-Tezis Опубликовано 29 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 декабря, 2014 искал... весь интернет облазил, не нашел ничего даже схожего с этим(( Может подскажите где копать? Вы считаете это не интересным? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 29 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 декабря, 2014 искал... весь интернет облазил, не нашел ничего даже схожего с этим(( Может подскажите где копать? Вы считаете это не интересным?Это интересно, сам делал, даже бота делал на этом. Самый доступный индюк On Balance Volume который доступен в Вашем терминале. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Strong-Tezis Опубликовано 29 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 декабря, 2014 Я нашел сегодня индикатор где просто в пунктах размер свечи, а вот именно то чего хочу пока нету. Чтож буду думать над реализацией. Что можете сказать про реализацию идеи, это сложно? Спасибо за советы. Ссылка на сообщение Поделиться на другие сайты More sharing options...
DmitriyFX Опубликовано 30 декабря, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 декабря, 2014 Помогите решить проблемку: Пишу советник по внешнему индикатору, не получается получить значения из буфферов.1. функция iCustom не помогает, значения всегда 0 void OnTick() {double SignalBuy=iCustom(NULL,0,"indikator",0,0);double SignalSell=iCustom(NULL,0,"indikator",1,0); Alert(SignalBuy+" "+SignalSell); }2. На графике рисуются стрелки, но нет ниодного объекта, по которому можно было бы открывать ордера.Какие есть ещё пути решения? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти