Реквоты и время на Чемпионате

 

Вопрос такой: насколько правильно отображается время в журнале? Поясню: в моем конкурсном эксперте есть такое условие

if(Hour()!=10||Minute()>3) return(0);

То есть по логике вещей он должен был открыть сделку в 10 часов по времени сервера, однако в логе написано следующее:

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

 

Еще один, совсем уже тупой вопрос :)..... недавно этим озаботился

Реквот - это ошибка? Если да, то ее номер? И что произойдет на следующем тике, если сигнал на совершение операции по-прежнему действует?

 

Может, указанная строка стоит не вначале функции start и до нее происходят какие-то действия, вызывающие открытие позиции? Потому как не должна позиция открываться в 09:59:59. Хотя, может имеет место некая рассинхронизация времени сервера и времени терминала.

А с реквотами не поборешься. Разве что выставлять диапазон цен открытия (закрытия) побольше и корректно обрабатывать ситуацию с отказом операции.

Реквот - это ошибка? Если да, то ее номер?

Да, ошибка, но не разработчика.

ERR_REQUOTE 138 Новые цены 

 

Спасибо.

Дело в том, что записал в коде:

OrderSend(Symbol(),OP_BUY,Lots,Ask,Spread,SL,TP,nameEA,0,0,Blue);
if(GetLastError()==0) OpenBuy=0;

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

Scriptong >>:

А с реквотами не поборешься. Разве что выставлять диапазон цен открытия (закрытия) побольше и корректно обрабатывать ситуацию с отказом операции.


Что значит "диапазон", когда "по рынку" открываешься? Слип не поможет, здесь где-то разработчики разъясняли, что больше 1-2 спредов смысла не имеет, все равно при сильных движениях не откроется.

 
Kharin >>:

Вопрос такой: насколько правильно отображается время в журнале? Поясню: в моем конкурсном эксперте есть такое условие

if(Hour()!=10||Minute()>3) return(0);

То есть по логике вещей он должен был открыть сделку в 10 часов по времени сервера, однако в логе написано следующее:

Вы видите логи терминала, а не сервера. Судя по всему время на компьютере, где запущен эксперт, отличается от серверного времени на 1 секунду (отстает).

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

 
Kharin >>:

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

Самый простой способ борьбы с реквотами - это указать slippage в OrderSend. Хотя бы 1 пункт.

 
Renat >>:

Самый простой способ борьбы с реквотами - это указать slippage в OrderSend. Хотя бы 1 пункт.

У меня указан слиппаж 4 пипса...а сделка все равно не была открыта из-за реквота, причем попытки открыть прекратились в течение секунды, а не трех минут, как написано в коде.

 
Кстати не знаю как с советниками, но у меня в ручном режиме в настройках терминала стоит slippage 10 пипсов, а реквоты всё равно прилетают. Дилер мне так и не смог помочь.
 
rider >>:

Что значит "диапазон", когда "по рынку" открываешься? Слип не поможет, здесь где-то разработчики разъясняли, что больше 1-2 спредов смысла не имеет, все равно при сильных движениях не откроется.


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

Вот, например, открытие позиции на открытии бара:

if(LastBar != Time[0])
  if(Signal == 1)
    {
     if(OrderSend(...) > 0)
      LastBar = Time[0];
    }
   else
    LastBar = Time[0];


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

 
Kharin >>:

У меня указан слиппаж 4 пипса...а сделка все равно не была открыта из-за реквота, причем попытки открыть прекратились в течение секунды, а не трех минут, как написано в коде.

Цена изменилась на 5 пунктов (с 24 до 29), поэтому был реквот.

 
sol >>:
Кстати не знаю как с советниками, но у меня в ручном режиме в настройках терминала стоит slippage 10 пипсов, а реквоты всё равно прилетают. Дилер мне так и не смог помочь.

Если ценовой геп больше 2-3 спредов (параметр динамический, а не фиксированный), то будет неминуемый реквот вне зависимости от уровня слиппажа. Это сделано ради защиты трейдеров от своих же ошибок (даже если выставить слиппаж 100 пипсов).

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