Особенности языка mql4, тонкости и приёмы работы - страница 28

 
А вариант не торговать там, где могут потеряться тикеты, не подходит?
 
trader_number_one:
А вариант не торговать там, где могут потеряться тикеты, не подходит?

Нет, т.к. невозможно заранее определить, где могут быть потеряны тикеты.

 
fxsaber:

На MT4 возможна такая ситуация (о причинах говорить не будем):

  • Открыты позиции. Баланс равен N.
  • С определенного момента позиции исчезают. Эквити и баланс равны N. В истории торгов о позициях ни слова.
  • Перезагрузки Терминала не помогают.
  • Проходит несколько часов, в истории торгов появляются позиции (закрылись по определенному условию). Баланс и эквити скорректированы сооответствующим образом.

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

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

Для этого нужно запоминать тикеты открытых ордеров и в случае их исчезновения проверять их наличие в истории торгов. Если нет в истории торгов, Алертим!


Функция такой защиты.

Вызывать CheckTickets() в начале OnTick.

Ситуация повторилась (один тикет исчез (на несколько часов) при исполнении TP). И, возможно, дело в Терминале, т.к. на Сервере (разбирались с брокером) все на месте.

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


К сожалению, не засек момент, когда тикет появился в истории.

 
fxsaber:

К сожалению, не засек момент, когда тикет появился в истории.

Повторилось. После релогина. Почти на 100% можно утверждать:

  • MT4-Терминал теряет тикеты.
  • Если это произошло, желательно делать принудительный релогин.
 
fxsaber:

Ситуация повторилась (один тикет исчез (на несколько часов) при исполнении TP). И, возможно, дело в Терминале, т.к. на Сервере (разбирались с брокером) все на месте.

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


К сожалению, не засек момент, когда тикет появился в истории.

Поймал ситуацию! Взял другой Терминал и зашел на этот же счет. А старый Терминал не трогал.

Нажмите, чтобы увидеть анимацию. Специально не делал в виде картинки, чтобы не было фотошоп-претензий.

Слева нет ордера в истории, справа - есть.


Релогин, конечно, решил проблему. Недопустимый баг для торгового терминала!

 

Только что узнал, что у баров H1 может быть время, не кратное часу:


Понятно, что это, скорее, особенность брокера, чем MT, но учитывать сей факт теперь придется...

 
Лукавите. На МТ4 это невозможно, на МТ5 - не проблема. Да, у баров Н1 может быть время, не кратное часу. Хотите на 8 пикселей влево? 
 
Алексей Тарабанов:
Лукавите. На МТ4 это невозможно, на МТ5 - не проблема. Да, у баров Н1 может быть время, не кратное часу. Хотите на 8 пикселей влево? 

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

Не утруждайте себя ответами на мои сообщения, пожалуйста.

 
Andrey Khatimlianskii:

Только что узнал, что у баров H1 может быть время, не кратное часу:


Понятно, что это, скорее, особенность брокера, чем MT, но учитывать сей факт теперь придется...

А в окне "Окно данных" время такое же?

 
Andrey Khatimlianskii:

Только что узнал, что у баров H1 может быть время, не кратное часу:

Понятно, что это, скорее, особенность брокера, чем MT, но учитывать сей факт теперь придется...

Так и есть - особенность брокера, столкнулся когда синхронизировал баров H4 и D1 для разных брокеров.


Синхронизация баров H4 и D1 для разных брокеров.
Синхронизация баров H4 и D1 для разных брокеров.
  • 2019.01.09
  • www.mql5.com
Начал делать индикатор который будет использовать H4 и вот задумался, как луче синхронизировать для разных брокеров...