0ll Опубликовано 29 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 мая, 2017 так как с момента установки отложки до ее активации проходит какое то время, зачастую немалое, баланс(экви) может за это время изменитсяВсё-таки проще при изменении баланса на Х% менять не сработавшие отложки на расчётные.Добавлено: 29-05-2017 05:50:14В тестере не торгует и ошибок не пишет. Это нормально?Это нормальная рабочая ситуация :) - надо доводить до ума. Используйте Print(), с помощью его выводите в лог значения индикаторов и пр. - надо выяснить почему не срабатывают условия открытия ордеров.novikov433 программирование это близко к искусству, у всех начинается по разному, как будет проще для Вас - никто не знает. Если есть желание и свободное время - смотрите уроки и делайте домашние задания. Конструктором можно делать только очень простые алгоритмы, сложные не работают, а разобраться в коде после конструктора очень не просто...Для написания советника нужен чёткий алгоритм - когда открывать сделки, когда закрывать, в том числе когда начинать пирамидинг, когда заканчивать/закрывать и начинать усреднение. Алгоритм надо выписывать на бумаге и пробовать его на демо и когда будет понимание - начинать программировать. Изменено 29 мая, 2017 пользователем 0ll 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
novikov433 Опубликовано 29 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 мая, 2017 ну вот например, надо сделать, что бы по этому индюки открывались сделки на покупку на продажу, как при входе, так и при выходе из зон осцилятора 20 и 80 + стоп . как вобще понять, что надо добавить в параметры? или тут ситуация полностью идентична например канальным индюкам на графике, тоесть надо непосредственно в самом индюке посмотреть как там реализована канальная состовляющая, и просто написать по ней входы и выходы + стопы?_http://fxpics.ru/image/5Mh6J Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 29 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 мая, 2017 novikov433 вопрос не понял, о каких параметрах идёт речь? если параметрах индикатора, то вероятно есть какой-нибудь Period, который надо в тестере оптимизировать, или те-же уровни 20/80 их тоже надо оптимизировать - может более эффективно 19/81? Сам индюк смотреть не надо, просто в советнике будет 2 переменных double, в одной текущее значение индюка на 1 свече, во второй предыдущее значение ( на 2 свече ). По закрытию свечи обновляете переменные и потом сравниваете новые значения с уровнями: if ( val1 > 80 && val2 Вот собственно и всё. Начнёте делать, появится опыт и станет проще. Ссылка на сообщение Поделиться на другие сайты More sharing options...
well72 Опубликовано 29 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 мая, 2017 Это нормальная рабочая ситуация - надо доводить до ума. Используйте Print(), с помощью его выводите в лог значения индикаторов и пр. - надо выяснить почему не срабатывают условия открытия ордеров. Спасибо за ответ. Сегодня запустил в реале - отрабатывает нормально. Видимо, в тестере Метатрейдера такие штуки с разными таймфреймами не проходят)И сразу вопрос: как прописать в коде торговлю ботом с одного графика на всех инструментах в обзоре? Таких тонкостей не знаю пока, к сожалению... Изменено 29 мая, 2017 пользователем well72 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 29 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 мая, 2017 как прописать в коде торговлю ботом с одного графика на всех инструментах в обзоре?Надо получить список инструментов в обзоре, сформировать массив инструментов (например), запустить для каждого инструмента индикаторы, и в цикле проверять их значения, открывать ордера и т.д. Это сложный вариант, тики приходят с разной скоростью, обработка будет занимать значительное время (конечно зависит от эффективности алгоритма). На мой взгляд проще открыть несколько инструментов и загрузить индивидуально сову. Тем более возможны разные настройки для каждого инструмента... 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
well72 Опубликовано 30 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2017 Добрый день!Чем дальше - тем больше вопросов)Итак, возникла ситуация: стрелки в момент появления имеют значение, не равное 0. Уже со следующего бара значение становится 0. Мне по алгоритму нужно значение последней стрелки не сразу, а спустя какое-то время. Как это можно сделать? Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 30 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2017 Свежий урок:http://tradelikeapro.ru/mql4-konvertiruem-tikovyi-potok/ 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
MONTE-CRISTO Опубликовано 30 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2017 Свежий урок:http://tradelikeapro.ru/mql4-konvertiruem-tikovyi-potok/ приветствую )может все таки отдельную ветку по этим урокам возможно сделать? так как для меня это одна из наиболее актуальных тем для изучения в принципе она будет нужна для всех) Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 30 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2017 Свежий урок:http://tradelikeapro.ru/mql4-konvertiruem-tikovyi-potok/ приветствую )может все таки отдельную ветку по этим урокам возможно сделать? так как для меня это одна из наиболее актуальных тем для изучения в принципе она будет нужна для всех) А чем рубрика на сайте не устраивает ?http://tradelikeapro.ru/category/uroki-po-mql/Все в одном месте, изучайте на здоровье. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 30 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2017 стрелки в момент появления имеют значение, не равное 0. Уже со следующего бара значение становится 0Так и должно быть. Есть 2 решения: 1. Записывать в переменную последнее не 0 значение буфера: if ( buf > 0 ) valBuf = buf;2. Искать последнее значение > 0 в цикле от 1 бара до Х - но это плохое решение. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
ivan100096 Опубликовано 30 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2017 Друзья, помогите советом начинающему программисту на MQL4.Написал код, который должен определять максимальную цену Open баров за последние n баров, но советник почему-то считает максимальную цену Open всех баров на графике. void OnTick(){ for (int i = 1; i { double High_Open = iOpen(Symbol(), PERIOD_H1, i); if (High_Open >= Current_High) { Current_High = High_Open; Print (Current_High); } }}Где ошибка? Спасибо Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 30 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2017 А из хелпа пример не подойдет? double val;//--- расчет минимального значения цены на 10 последовательных барах//--- с индекса 10 по индекс 19 включительно на текущем графике int val_index=iLowest(NULL,0,MODE_LOW,10,10); if(val_index!=-1) val=Low[val_index]; else PrintFormat("Ошибка вызова iLowest. Код ошибки=%d",GetLastError()); double val;//--- расчет максимального значения цены на 20 последовательных барах//--- с индекса 4 по индекс 23 включительно на текущем графике int val_index=iHighest(NULL,0,MODE_HIGH,20,4); if(val_index!=-1) val=High[val_index];else PrintFormat("Ошибка вызова iHighest. Код ошибки=%d",GetLastError()); Упс, немного не о том...А BarTotal у Вас как переменная?Попробовал у себя- работает... Изменено 30 мая, 2017 пользователем usver73 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 30 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2017 Написал код, который должен определять максимальную цену Open баров за последние n баров, но советник почему-то считает максимальную цену Open всех баров на графике.Какой диапазон записан в BarTotal - там и ищет. Print (Current_High) вынесите из цикла.А вообще лучше использовать пример usver73 только поменяйте MODE_HIGH на MODE_OPEN 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
ivan100096 Опубликовано 31 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 мая, 2017 А BarTotal у Вас как переменная?Попробовал у себя- работает... Да. BarTotal как переменная, вот весь код:extern int BarTotal = 2;double Current_High = -999;//+------------------------------------------------------------------+int OnInit(){ return(INIT_SUCCEEDED);}//+------------------------------------------------------------------+void OnDeinit(const int reason){}//+------------------------------------------------------------------+void OnTick(){ for (int i = 1; i { double High_Open = iOpen(Symbol(), PERIOD_H1, i); if (High_Open >= Current_High) { Current_High = High_Open; Print (Current_High); } }}//+------------------------------------------------------------------+ Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 1 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 июня, 2017 ivan100096 я так понял остались вопросы, пробуйте так:extern int BarTotal = 2;double Current_High = -999;void OnTick(){ int val_index = iHighest ( NULL, PERIOD_H1, MODE_OPEN, BarTotal, 1 ); if ( val_index == -1 ) return; Current_High = Open[ val_index ]; Print (Current_High);}читай справку по iHighest Ссылка на сообщение Поделиться на другие сайты More sharing options...
ivan100096 Опубликовано 1 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 июня, 2017 Добавлено: 01-06-2017 18:22:49ivan100096 я так понял остались вопросы, пробуйте так: Разобрался)Всем спасибо большое)Добавлено: 02-06-2017 08:14:42и опять я:)Написал функцию, которая позволяет открыть не более n ордеров за 1 день.сейчас функция сливает депозит - т. е. ордера открываются на каждом тике.Где я опять налажал?)int OrderMax = 3; // максимальное количество ордеров, которые можно открыть в течении 1 дня. void OpenOrders(){ for (int i = 1; i { if (DayOfWeek() == i) { int count_max = 0; if (count_max { for(int cn = OrdersTotal()-1; cn>=0; cn--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY) count_max++; } } } }} Изменено 2 июня, 2017 пользователем ivan100096 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 2 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2017 ivan100096 зачем Вам считать открытые ордера, тем более Вы не используете проверку по времени их открытия? У меня ощущение, что Вы начинаете писать не представляя себе точного алгоритма.В общем то что написано - в мусор.Алгоритм такой:есть переменная с текущим днём недели наш_день если наш_день != текущий день - пишем новый день, обнуляем счётчик ордеровтам где идёт открытие ордера - если счётчик это всё! пара переменных и никаких циклов.Если надо определять количество ордеров открытых сегодня при перезапуске совы, то это надо делать в цикле по истории ордеров, счёт если дата открытия > дата_сегодня_00:00Но я думаю Вам пока рано думать о возможной переинициализации советника... Изменено 2 июня, 2017 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
Alexnik90 Опубликовано 5 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 июня, 2017 Здравствуйте. Посмотрел видео как торговать сеткой ордеров 3х годичной давности, там для всех ордеров устанавливали тейк профит путем вычисления средней цены покупки плюс размер заданного тейк профита, и таким образом выходит что для некоторых ордеров тейк профит устанавливался ниже цены покупки, разве это возможно? Или я чего то не понял? Ссылка на сообщение Поделиться на другие сайты More sharing options...
DreamWorks Опубликовано 6 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2017 Здравствуйте. Посмотрел видео как торговать сеткой ордеров 3х годичной давности, там для всех ордеров устанавливали тейк профит путем вычисления средней цены покупки плюс размер заданного тейк профита, и таким образом выходит что для некоторых ордеров тейк профит устанавливался ниже цены покупки, разве это возможно? Или я чего то не понял? Да, такое возможно. Попробуйте модифицировать тейк у открытого ордера, перенеся его в убыточную зону. Ссылка на сообщение Поделиться на другие сайты More sharing options...
novikov433 Опубликовано 6 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2017 взялся за изучение mql , но понимаю что надо вобще изначально знать и понимать логику программы в зависимости от задачи. Подскажите пожалуйста, если все пишут что язык mql это просто разветвление от C# , стоит ли начать именно с с него? как вы сами понимаете нормальных уроков тупо нет на тему mql , какие то были попытки у нас на форуме, но честно говоря какая то лажа, толком не объясняется как и что, а тупо на обезьянье повторение делается расчет.нет толком вобще ничего. пару уроков по пользовательскому индикатору - понял только шапку, и там где digits для 5 и 4 знаков... дальше всё... тупо тупик. кто может поподробнее вдуплить, зачем вобще нужны пользовательские функции и зачем столько всего нужно писать в коде... как вобще понять что брать из чужого кода , а что надо самому писать при создании совы. например мне надо пирамидинг там, усреднение, мартин... трал..... НЕ БУДУ ЖЕ Я ЗАНОГО ИЗОБРЕТАТЬ ВЕЛОСИПЕД, ЕСЛИ ЭТО ВСЁ ЯВЛЯЕТСЯ ТУПО СТАНДАРТНЫМ ДЕЙСТВИЕМВобще, как этой базой кодов пользоваться, для базовых операций с открытиями ордеров и лотностью? За сколько примерно времени приходит понимание, ккие параметры из кода в код не меняются, а какие нужно заного прописывать? тоесть как вобще научится работать с шаблонами - надо мне например в тс свой какой то индюк сделать, и вот что бы мартин , усреднение, пирамидинг и т.д оставить в коде что бы заного не писать.опять же никаких космический действий проектировать не надо, логика у меня ЖЕЛЕЗНАЯ. я вобще непробиваем в этом плане.на форуме mql5 не кто учить не хочет, потому что там их хлеб. да вобще все так говорят типо ай я яй КАК ВСЁ СЛОЖНО, А САМИ УЖЕ ЧУЖИТЕ НАРАБОТКИ ЗА 5 СЕК МЕНЯЮТ МЕСТАМИ И ПРОСТО ЗАПУДРИВАЮТ МОЗГИ Изменено 6 июня, 2017 пользователем novikov433 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Strong-Tezis Опубликовано 6 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2017 Здравствуйте. Помогите поправить советник. Нужно чтобы закрывал не все ордера на всех парах, а только на какой нажимаю закрыть!И ещё первый ордер нормально ставит стоп, а на следующие не ставит...Посмотрите пожалуйста. ..mq4 Изменено 6 июня, 2017 пользователем Strong-Tezis Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 6 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2017 Пробуй. Только со СЛ "следующих ордеров" не стал разбираться - там сова писанная несколькими людьми, несколько блоков отвечающих за установку/контроль СЛ, видимо дописывали и переписывали... Торг_панель.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 6 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2017 novikov433 у Вас какое-то неправильное отношение к теме... Начинайте изучать с чего хотите, можете с русского - а то понять тяжело.Даже "Обезьянье" повторение - мать ученья. Тем более не совсем и повторение - там ошибки кое-где внесены специально.Писать надо сову всю, нет никаких стандартных действий, можно брать куски кода, но надо знать какие и для какой цели.Есть стандартные функции языка MQL - они в справочнике.Через год занятий придёт понимание.Никто Вас бесплатно учить не будет, ни здесь, ни там не богодельня.Удачи. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
novikov433 Опубликовано 6 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2017 спасибо) да в принципе всё само должно дойти, нужно просто впитать в мозги нужную инфу, а дальше процесс пойет 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Strong-Tezis Опубликовано 7 июня, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 7 июня, 2017 Большое Спасибо. Да это я из разных собрал. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти