Автоматическая инициализация и переинициализация эксперта из файла - страница 6

 
Romal001:
Добрый вечер подскажите качество тестирование робота за сколько лет у него не должно быть убыточных сделок??????????  если можно ответ напишите в личку заранее спасибо!
Учитывая низкое качество исторических данных, независимо от источника их происхождения, даже несколько лет - не показатель. Советник должен быть оптимизирован и оттестирован под конкретного брокера, но не стоит забывать, что и у "конкретного" брокера в истории куча "дыр". Поэтому зависит тестирование от таймфрейма, на котором работает советник. Если на М1-М5, то 6-12месяцев вполне достаточно для выводов. Если М15 и дальше, то тестировать и надеяться  на правильность исторических данных нужно от 12 месяцев. И никакие Ducascopy и иже с ними тут не спасут.
 
Vasiliy Sokolov:
Вы здесь своим мифическим опытом не давите. Здесь у многих есть опыт реальной торговли, в т.ч. на ФОРТС, в том числе с использованием MetaTrader 5. Большая часть проблем, которые якобы есть на ФОРТС в действительности только у Вас в голове сидит (ну и у Ваших "учеников", которые советов от Вас по наслушаются, а потом стены форума исписывают, в стиле, "Почему же OnTradeTransaction не гарантировано!?")

По поводу опыта Михаила.

Более года назад мы с ним произвели обмен услуг. Я ему оказал услугу, взамен он мне написал советника для МТ5 ФОРТС. За год были и падения Биржи и отключения электричества и обрыв связи, но ни разу написанный им робот не сделал ни одной ошибки. 

Единственное попадание на деньги было в момент падения сервера Биржи за перебор транзакций, но это обусловлено лишь тем, что разработчики до сих пор не сделали нормальные коды возврата торгового сервера.

Мы обсуждали с ним этот вопрос и я не захотел блокировать советника по коду возврата invalid request, потому что торговый сервер,  иногда, в нормальной работе, возвращает этот код возврата (код 10013).

Если Вы считаете, что это надуманная проблема, которая сидит только у него в голове, то прошу Вас посоветовать как ее обойти. 

 
kond777:

По поводу опыта Михаила.

Более года назад мы с ним произвели обмен услуг. Я ему оказал услугу, взамен он мне написал советника для МТ5 ФОРТС. За год были и падения Биржи и отключения электричества и обрыв связи, но ни разу написанный им робот не сделал ни одной ошибки. 

Единственное попадание на деньги было в момент падения сервера Биржи за перебор транзакций, но это обусловлено лишь тем, что разработчики до сих пор не сделали нормальные коды возврата торгового сервера.

Мы обсуждали с ним этот вопрос и я не захотел блокировать советника по коду возврата invalid request, потому что торговый сервер,  иногда, в нормальной работе, возвращает этот код возврата (код 10013).

Если Вы считаете, что это надуманная проблема, которая сидит только у него в голове, то прошу Вас посоветовать как ее обойти. 

Зачем что-то еще рассказывать про опыт Михаила, если он уже сам рассказал, что его советники в ините тупо удаляют ордера и потом все начинают заново, и так на каждом запуске. Ну о чем тут говорить?

И нечего посоветовать, потому-что неизвестен полный объем бреда ни в его голове ни в головах его защитников. Вот вы написали "блокировать советника по коду возврата". Зачем его вообще блокировать? Надо выполнять правильные действия. У вас там свои особенные принципы программирования советников (код никто не видел, и вряд ли увидит), вот и думайте сами как выходить из своих собственных особенных ситуаций.   

 
Romal001:
Добрый вечер подскажите качество тестирование робота за сколько лет у него не должно быть убыточных сделок??????????  если можно ответ напишите в личку зарание спасибо!
Могут быть. Без убыточных это нереально и подозрительно. 
 
Dmitry Fedoseev:

Зачем что-то еще рассказывать про опыт Михаила, если он уже сам рассказал, что его советники в ините тупо удаляют ордера и потом все начинают заново, и так на каждом запуске. Ну о чем тут говорить?

И нечего посоветовать, потому-что неизвестен полный объем бреда ни в его голове ни в головах его защитников. Вот вы написали "блокировать советника по коду возврата". Зачем его вообще блокировать? Надо выполнять правильные действия. У вас там свои особенные принципы программирования советников (код никто не видел, и вряд ли увидит), вот и думайте сами как выходить из своих собственных особенных ситуаций.   

 
Да. Цветные картинки для взрослых людей это очень сильные аргументы.
 
Dmitry Fedoseev:

Зачем что-то еще рассказывать про опыт Михаила, если он уже сам рассказал, что его советники в ините тупо удаляют ордера и потом все начинают заново, и так на каждом запуске. Ну о чем тут говорить?

И нечего посоветовать, потому-что неизвестен полный объем бреда ни в его голове ни в головах его защитников. Вот вы написали "блокировать советника по коду возврата". Зачем его вообще блокировать? Надо выполнять правильные действия. У вас там свои особенные принципы программирования советников (код никто не видел, и вряд ли увидит), вот и думайте сами как выходить из своих собственных особенных ситуаций.   

Я никого не защищаю, а просто изложил факты, которые имел в своем распоряжении.  

Возвращаясь к ошибке по кодам возврата. Михаил предлагает после трех invalid request приостанавливать работу советника, ссылаясь на то, что это недоработка со стороны разработчиков

 https://www.mql5.com/ru/forum/58012/page2#comment_2017705

Я также, как и Вы, считаю, что работника советника не стоит останавливать, так как же на Ваш взгляд можно решить проблему указанную в ссылке выше?

ФОРТС: OnTradeTransaction() коды возврата
ФОРТС: OnTradeTransaction() коды возврата
  • www.mql5.com
Сейчас, коды возврата торгового сервера функции OnTradeTransaction() выглядят так:. - Страница 2 - Категория: автоматические торговые системы
 

Очевидно, что если:

Когда "подглючивает" сервер МТ5 или сбой на бирже, то происходит следующее:

Эксперт посылает приказы удалить СУЩЕСТВУЮЩИЙ  ордер, а в ответ приходит

"Invalid request" !!!! И эксперт продолжает "долбить" сервак приказами на удаление

ордера.  

То нужно продолжать долбить. Но по крайней мере, точно не блокировать эксперта. Может быть менее нагло долбить, по мере увеличения количества ошибок увеличивать паузу между попытками. Самое простое решение - несколько попыток и пауза до открытия следующего бара.

 
Dmitry Fedoseev:

Тут уже писали - все заново пересчитывать. Т.е. анализировать ситуацию с ордерами. Хранить какие-то данные в файлах или еще как (может в глобальных переменных) - это не принципиально. Принципиально что, если какие-то данные нужны, они хранятся в привязке к тикетам ордеров, в этом случае нет проблемы устаревших данных, есть ордер - есть данные, нет ордера - нет данных. Могут быть данные и не привязанные к конкретному ордеру, но тут надо думать над каждым конкретным случаем, в общем-то задача решаемая.

Клиринг это действительно самая замороченная проблема.  Но это не проблема длительного хранения данных (или их устаревания), можно и в простых переменных в эксперте хранить данные (немного рискованно, но всего лишь 5 мин). Здесь сложность в том, как разобраться потом. Можно для каждого ордера создавать группу глобальных переменных терминала, можно и цену открытие в них хранить. Затем, когда появятся непромаркированные ордера (или на открытии нового дня)  смотрим в истории последние закрытые, сопоставляем по тем признакам по которым можно (например лот), и перебрасываем новому ордеру все глобальные переменные от закрытого ордера. 

Спасибо. Главная мысль ясна. Я думал есть простой и универсальный выход для всех ситуаций.
 
Andrey Khatimlianskii:

Согласен с предыдущими ораторами (почти со всеми).

  1. Все, что можно, восстанавливаем из рыночного окружения.
  2. Все остальное храним с привязкой к чему-то (к тикету ордера, времени начала дня, и т.д.). 
Просто определите для каждой из хранимых переменных свой "срок годности" (он не может быть одним для всех), и загружайте, только если он не истек.

На вашем примере с кол-вом заявок: достаточно добавить еще одну переменную - время начала последнего дня. День изменился - счетчик обнулили, и новую дату записали.

Для примера с переоткрытием позиции: нужно определиться, какие события могут привести эту информацию в негодность. Например, как Михаил посоветовал - если позиции нет, то просто все забыть, а если есть, считать информацию актуальной. 

В общем, нужен не общий рецепт, а конкретика. 

Понятно.

Конкретика: завтра буду думать как ловить позицию "на лету" на ФОРТС. Мне по сути больше всего надо знать реальную цену открытия позиции, которая прошла клиринг (переоткрылась по цене клиринга).

Позиция на ФОРТС набирается суммой сделок по одному (или нескольким ордерам). На клиринге происходит техническая сделка без тикета, надо придумать, как определить цену POSITION_PRICE_OPEN, которая была до клиринга.

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