Самообучение языку MQL5 с полного нуля - страница 73

 
Vasiliy Sokolov:

Я добавил несколько функций. У меня получился вот такой код:

Работа с мэджиком мне по-прежнему не понятна. На неттинге это бессмысленно. В любом случае Вы сможете легко убрать эту проверку так как она делается только в одной функции.

Спсб, Василий за интересную информацию. Не зря говорят, что повторение - мать учения!  В этот раз это похоже про меня... :-)

Вот прилагаю роботов - тралов вариантов - по названию, интуитивно понятно, при заходе в код ЭКСПА в нем все расписано правда на МТ4. Сам сейчас торгую на МТ4 и они мне нужны для торгов. Эти роботы в кодебазе от Юрия Дзюбана - огромная ему благодарность. (кстати - тема - подобных роботов изобразить для МТ5)

трала варианты роботов



Прописываете тикет и параметры внешних переменных соответствующего трала, ставите его на график и вперед за профитом!!!

Вот для примера трал по МА:

extern   int      iTicket;             // уникальный номер (тикет) открытой позиции
extern   int      iTmfrm;              // период графика, на котором строится МА (1, 5, 15, 30, 60, 240, 1440, 10080, 43200)
extern   int      iMAPeriod = 21;      // период МА (не меньше 2)
extern   int      iMAShift = 0;        // сдвиг индикатора относительно ценового графика
extern   int      iMAMethod = 0;       // метод усреднения (0 - MODE_SMA, 1 - MODE_EMA, 2 - MODE_SMMA, 3 - MODE_LWMA);
extern   int      iApplPrice = 0;      // используемая цена (0 - PRICE_CLOSE, 1 - PRICE_OPEN, 2 - PRICE_HIGH, 3 - PRICE_LOW, 4 - PRICE_MEDIAN, 5 - PRICE_TYPICAL, 6 - PRICE_WEIGHTED)
extern   int      iShift = 1;          // индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад)
extern   int      iIndent = 3;         // отступ от МА, на котором размещается стоплосс
Файлы:
 

Всем доброго дня и хорошего настроения!

Продолжаю изучение языка программирования MQL5. Написал код советника с трейлинг стопом. Тестирование советника сначала меня порадовало, но оказалось, что рано. Дело в том, что советник работает не стабильно и с чем это связано, пока тоже не понятно.

Суть проблемы: запускаю советник на исторических данных с 6 января 2020 г. Первые дни советник работает точно по алгоритму, но как только тестирование доходит до 13 января 2020 г., алгоритм не выполняется. Выяснил, что вся проблема в функции трала стоп лосса. Единственное не могу понять, как такое вообще может быть, то работает трал, то не работает? Вот сижу и разбираюсь, где накосячил.

Код функции трала пока выкладывать не буду, т.к. хочу самостоятельно разобраться в проблеме.

С уважением, Владимир.

 
MrBrooklin:

Всем доброго дня и хорошего настроения!

Продолжаю изучение языка программирования MQL5. Написал код советника с трейлинг стопом. Тестирование советника сначала меня порадовало, но оказалось, что рано. Дело в том, что советник работает не стабильно и с чем это связано, пока тоже не понятно.

Суть проблемы: запускаю советник на исторических данных с 6 января 2020 г. Первые дни советник работает точно по алгоритму, но как только тестирование доходит до 13 января 2020 г., алгоритм не выполняется. Выяснил, что вся проблема в функции трала стоп лосса. Единственное не могу понять, как такое вообще может быть, то работает трал, то не работает? Вот сижу и разбираюсь, где накосячил.

Код функции трала пока выкладывать не буду, т.к. хочу самостоятельно разобраться в проблеме.

С уважением, Владимир.

Журнал и алерт в помощь. И на край запись в файл каждого чиха))))

 
Valeriy Yastremskiy:

Журнал и алерт в помощь. И на край запись в файл каждого чиха))))

Здравствуйте, Валерий! Спасибо за подсказку. Посмотрел журнал в тот день, когда трал работает не правильно:

10016

TRADE_RETCODE_INVALID_STOPS

Неправильные стопы в запросе


Однако и в тот день, когда трал стоп лосса работает нормально, появляется точно такой же код возврата торгового сервера. Засада.

С уважением, Владимир.

 
MrBrooklin:

Здравствуйте, Валерий! Спасибо за подсказку. Посмотрел журнал в тот день, когда трал работает не правильно:

10016

TRADE_RETCODE_INVALID_STOPS

Неправильные стопы в запросе


Теперь нужно понять, как такое может быть, что в один торговый день стопы в запросе правильные, а в другой торговый день не правильные. Засада.

С уважением, Владимир.

Журнал не все пишет. Поэтому рассчитали стоп, вывели. и перед, прямо перед приказом его и уровень заморозки вывели. вдруг по дороге изменился. Такое бывает.

Алерт быстрее и сразу видно, принт тоже видно, но там много системных сообщений. файл можно смотреть только после закрытия.

 
Valeriy Yastremskiy:

Журнал не все пишет. Поэтому рассчитали стоп, вывели. и перед, прямо перед приказом его и уровень заморозки вывели. вдруг по дороге изменился. Такое бывает.

Алерт быстрее и сразу видно, принт тоже видно, но там много системных сообщений. файл можно смотреть только после закрытия.

Валерий, а что такое уровень заморозки? Может, в коде его нужно каким-то образом прописать?

С уважением, Владимир.

 
MrBrooklin:

Здравствуйте, Валерий! Спасибо за подсказку. Посмотрел журнал в тот день, когда трал работает не правильно:

10016

TRADE_RETCODE_INVALID_STOPS

Неправильные стопы в запросе


Однако и в тот день, когда трал стоп лосса работает нормально, появляется точно такой же код возврата торгового сервера. Засада.

С уважением, Владимир.

Здравствуйте! Скорее всего брокер изменил уровень стопов, а неправильные стопы в случае трейлинга это когда дистанция трала меньше допустимого брокером уровня стопов, просто надо немного увеличить дистанцию трала, дистанция трала должна быть не меньше уровня стопов, эту информацию Вы могли бы найти в спецификации каждого инструмента
 
VVT:
Здравствуйте! Скорее всего брокер изменил уровень стопов, а неправильные стопы в случае трейлинга это когда дистанция трала меньше допустимого брокером уровня стопов, просто надо немного увеличить дистанцию трала, дистанция трала должна быть не меньше уровня стопов, эту информацию Вы могли бы найти в спецификации каждого инструмента

Здравствуйте! Спасибо за подсказку. Про этот момент, честно говоря и не знал. Попробую изменить.

С уважением, Владимир.

 
VVT:
Здравствуйте! Скорее всего брокер изменил уровень стопов, а неправильные стопы в случае трейлинга это когда дистанция трала меньше допустимого брокером уровня стопов, просто надо немного увеличить дистанцию трала, дистанция трала должна быть не меньше уровня стопов, эту информацию Вы могли бы найти в спецификации каждого инструмента

Попробовал изменить дистанцию. Не помогло. Всё тоже самое. Буду дальше читать про трейлинг стоп лосс и разбираться с кодом.

С уважением, Владимир.

 
MrBrooklin:

Попробовал изменить дистанцию. Не помогло. Всё тоже самое. Буду дальше читать про трейлинг стоп лосс и разбираться с кодом.

С уважением, Владимир.

Неправильный стоп, странно. Что ещё происходит во время трала?

Причина обращения: