Тотальный сбой самописного робота. Помогите разобраться!

 

Всем привет!

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

Прошу помочь в сложившейся ситуации, поэтому опишу все максимально подробно.

Робот самописный, ему уже 3 года, оттестирован не на одном счете за все это время. Подобных проблем не наблюдалось. Хотя не исключаю, что чисто теоретически они вполне могли быть возможны.

Советник работает по сеточной технологии, открывая позиции на покупку и на продажу через определенный шаг от ближайшей открытой позиции этого же типа (в данном случае 50 пунктов). При этом, после отправки запроса на открытие позиции 5 секунд он ждет исполнения запроса, после чего отправляет повторный запрос. Т.е. существует критерий отправки запроса – расстояние в пунктах от соседней позиции того же типа и временной интервал 5 секунд, рассчитанный на то, что в это время сделка будет открыта брокером.

В итоге, проанализировав историю и логи, получили следующее: на реальном счете одного из брокеров позиции начали открываться по 2-4 в секунду (запросы на открытие ордеров исполнялись без задержек) на одном и тот же уровне котировки (полюс/минус один-два пипса). На демо-счете этого же брокера позиции открывались так же без учета уровней отступа от соседних позиций (по одной и той же цене), однако временной интервал задержки соблюдался и даже был больше. Позиции открывались каждый 20-40 секунд, но опять же на одном и том же уровне постепенно набирая лот.

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

Заранее благодарен!

P.S. С удовольствием поделюсь логами и самой разработкой с тем, кто захочет реально помочь разобраться и/или заинтересован в совместной работе и развитии советников.
 
Надо обратиться к астрологу
 
Ну надо что-нибудь. Хотя бы логи посмотреть. Вполне возможно была большая волатильность и брокер изменил кредитное плечо и пр.
 
sktrading_pro:

Всем привет!

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

Прошу помочь в сложившейся ситуации, поэтому опишу все максимально подробно.

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

Да и код советника нужен открытый. Это целое расследование) И что-то спохватились Вы спустя полтора месяца.

 
sktrading_pro:

Всем привет!

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

Прошу помочь в сложившейся ситуации, поэтому опишу все максимально подробно.

Робот самописный, ему уже 3 года, оттестирован не на одном счете за все это время. Подобных проблем не наблюдалось. Хотя не исключаю, что чисто теоретически они вполне могли быть возможны.

Советник работает по сеточной технологии, открывая позиции на покупку и на продажу через определенный шаг от ближайшей открытой позиции этого же типа (в данном случае 50 пунктов). При этом, после отправки запроса на открытие позиции 5 секунд он ждет исполнения запроса, после чего отправляет повторный запрос. Т.е. существует критерий отправки запроса – расстояние в пунктах от соседней позиции того же типа и временной интервал 5 секунд, рассчитанный на то, что в это время сделка будет открыта брокером.

В итоге, проанализировав историю и логи, получили следующее: на реальном счете одного из брокеров позиции начали открываться по 2-4 в секунду (запросы на открытие ордеров исполнялись без задержек) на одном и тот же уровне котировки (полюс/минус один-два пипса). На демо-счете этого же брокера позиции открывались так же без учета уровней отступа от соседних позиций (по одной и той же цене), однако временной интервал задержки соблюдался и даже был больше. Позиции открывались каждый 20-40 секунд, но опять же на одном и том же уровне постепенно набирая лот.

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

Заранее благодарен!

P.S. С удовольствием поделюсь логами и самой разработкой с тем, кто захочет реально помочь разобраться и/или заинтересован в совместной работе и развитии советников.

масса вариантов

- ночь/полночь, спред расширился и дёргается тудым-сюдым. Сносятся стоп-ордера (включая стоп-лоссы). При этом тики прут со страшной силой

- в котировках в HIGH,LOW или CLOSE пролетело 0 или EMPTY_VALUE (а это очень дохрена), например на открытии бара. Робот прифигел и открыл сеточку

PS/ вот не верю в эксплуатацию такого чуда на реале в течении 3-х лет..НИ РАЗУ НЕ ВЕРЮ

PPS/ кстати и time бывает равен 0... 

 

Maxim Kuznetsov:

- ночь/полночь, спред расширился и дёргается тудым-сюдым. Сносятся стоп-ордера (включая стоп-лоссы). При этом тики прут со страшной силой

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


Maxim Kuznetsov:

- в котировках в HIGH,LOW или CLOSE пролетело 0 или EMPTY_VALUE (а это очень дохрена), например на открытии бара. Робот прифигел и открыл сеточку

И как нужно писать сову, чтобы она открывала по цене 0 или EMPTY_VALUE ? Даже, если сова, о которой идёт речь и открыла по такой цене, всё-равно с чего вдруг она будет открывать позиции пачками? Хотя.. вопрос идентичный предыдущему. Это зависит от того, как реализован вход


Maxim Kuznetsov:
PS/ вот не верю в эксплуатацию такого чуда на реале в течении 3-х лет..НИ РАЗУ НЕ ВЕР

Я тоже не особо. Возможно, имелось ввиду 3-месяца. Хотя, это тоже не особо вероятно учитывая то, что бот слил на ночь депо..


Maxim Kuznetsov:

PPS/ кстати и time бывает равен 0... 

Да ладно? В связи с чем это связано?

Документация по MQL5: Константы, перечисления и структуры / Именованные константы / Прочие константы
Документация по MQL5: Константы, перечисления и структуры / Именованные константы / Прочие константы
  • www.mql5.com
Прочие константы - Именованные константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Viktar Dzemikhau:

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


И как нужно писать сову, чтобы она открывала по цене 0 или EMPTY_VALUE ? Даже, если сова, о которой идёт речь и открыла по такой цене, всё-равно с чего вдруг она будет открывать позиции пачками? Хотя.. вопрос идентичный предыдущему. Это зависит от того, как реализован вход


Maxim Kuznetsov:

Я тоже не особо. Возможно, имелось ввиду 3-месяца. Хотя, это тоже не особо вероятно учитывая то, что бот слил на ночь депо..


Да лажно? В связи с чем это связано?

проскочило невиданное, может в котировках, может баг в их понимании..В основе - сетка. И попёрло

спред скаконул, робот не учпел - открыл отложку, её сразу исполнили (попала внутрь). Робот смотрит - нет отложки..Чёёерт, надо новую открыть..А спред на месте месте стоит - опять отложка открылась и сразу в рынок..И так пока депо не закончилось..

Образно так..

 
sktrading_pro:

Всем привет!

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

Прошу помочь в сложившейся ситуации, поэтому опишу все максимально подробно.

Робот самописный, ему уже 3 года, оттестирован не на одном счете за все это время. Подобных проблем не наблюдалось. Хотя не исключаю, что чисто теоретически они вполне могли быть возможны.

Советник работает по сеточной технологии, открывая позиции на покупку и на продажу через определенный шаг от ближайшей открытой позиции этого же типа (в данном случае 50 пунктов). При этом, после отправки запроса на открытие позиции 5 секунд он ждет исполнения запроса, после чего отправляет повторный запрос. Т.е. существует критерий отправки запроса – расстояние в пунктах от соседней позиции того же типа и временной интервал 5 секунд, рассчитанный на то, что в это время сделка будет открыта брокером.

расстояние в пунктах  (в данном случае 50 пунктов) - слил бы не один депозит а десяток депозитов.

в тот день две свечи были очень длинные и если у Вас через 50 пунктов заложен алгоритм что то закрыть и потом открыть - он будет выполнятся пока не сойдёт со свечи.

GBPUSDH1

GBPUSDM1 1

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

рисовал не заметил - сейчас уже рассматривая график(на 1час), увидел гэпы в начале сессии 

Файлы:
EURUSDH1.png  50 kb
 

ИТОГ: ( мои догадки ) Ваш Эксперт, скорее всего не дружит с гэпом. нужно добавить функцию, стартовать по времени 

типа такого 

input group    "---- Start Stop 1 ----"
input datetime HoursFrom                    = D'1970.01.02';     // 1 Время: старт
input datetime HoursTo                      = D'1970.01.01';     // Время: стоп
input group    "---- Start Stop 2 ----"
input datetime HoursFrom1                   = D'1970.01.01';     // 2 Время: старт
input datetime HoursTo1                     = D'1970.01.01';     // Время: стоп
input group    "---- Start Stop 3 ----"
input datetime HoursFrom2                   = D'1970.01.01';     // 3 Время: старт
input datetime HoursTo2                     = D'1970.01.01';     // Время: стоп
 

Гадание на кофейной гуще. 

Без логов и MQL-кода предполагать можно все, что угодно. 

И даже если будут логи и код - все равно, не факт, что сходу будет понятно, в чем проблема. 

Скорее всего, ошибки в логике робота - он способен выставлять ордера, не глядя на текущее эквити. 

 
sktrading_pro:

Всем привет!

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

Прошу помочь в сложившейся ситуации, поэтому опишу все максимально подробно.

Робот самописный, ему уже 3 года, оттестирован не на одном счете за все это время. Подобных проблем не наблюдалось. Хотя не исключаю, что чисто теоретически они вполне могли быть возможны.

Советник работает по сеточной технологии, открывая позиции на покупку и на продажу через определенный шаг от ближайшей открытой позиции этого же типа (в данном случае 50 пунктов). При этом, после отправки запроса на открытие позиции 5 секунд он ждет исполнения запроса, после чего отправляет повторный запрос. Т.е. существует критерий отправки запроса – расстояние в пунктах от соседней позиции того же типа и временной интервал 5 секунд, рассчитанный на то, что в это время сделка будет открыта брокером.

В итоге, проанализировав историю и логи, получили следующее: на реальном счете одного из брокеров позиции начали открываться по 2-4 в секунду (запросы на открытие ордеров исполнялись без задержек) на одном и тот же уровне котировки (полюс/минус один-два пипса). На демо-счете этого же брокера позиции открывались так же без учета уровней отступа от соседних позиций (по одной и той же цене), однако временной интервал задержки соблюдался и даже был больше. Позиции открывались каждый 20-40 секунд, но опять же на одном и том же уровне постепенно набирая лот.

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

Заранее благодарен!

P.S. С удовольствием поделюсь логами и самой разработкой с тем, кто захочет реально помочь разобраться и/или заинтересован в совместной работе и развитии советников.

добавлю в список подозреваемых:

1. правки кода, казалось бы безобидные, но что-то сломали

2. задержка 5 секунд по описанию для отправки следующего ордера. Но бывает в коде пишут что если определенная ошибка от сервера - сразу отправляет повтор, пока не получит что запрос хотя-бы принят. Бывает (сам встречал лишь на демо, но мало ли) сервера отвечают ошибкой даже когда ордер успешно принят. поэтому и на одном уровне.

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