Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2736

 
Igor Nagorniuk #:
это попробуй
Так я же написал что так и делал. Вы сами пробовали? У вас нет описанной проблемы?
 
Andrei Sokolov #:
Так я же написал что так и делал. Вы сами пробовали? У вас нет описанной проблемы?
Вы написали "

В void OnTick() цены аск и бид вывожу в комментарий. И при моделировании по ценам открытия они в большинстве случаев не соответствуют отображаемым на графике, почему так? При моделировании по всем тикам или OHLC такого не замечал. " Вывести, комент можно по разному. Так же Вы не предоставили "ошибочный" код! Вот, я предложил, что знал. В чём проблема ? Если, этот вариант не подходит, значит, будем думать.

 
Igor Nagorniuk #:
Вы написали "

В void OnTick() цены аск и бид вывожу в комментарий. И при моделировании по ценам открытия они в большинстве случаев не соответствуют отображаемым на графике, почему так? При моделировании по всем тикам или OHLC такого не замечал. " Вывести, комент можно по разному. Так же Вы не предоставили "ошибочный" код! Вот, я предложил, что знал. В чём проблема ? Если, этот вариант не подходит, значит, будем думать.

Спрошу еще раз: у вас в тестере при испрользовании по ценам открытия, цифры цен на графике и в комментарии совпадают? Вы сами пробовали то что предлагаете? 
 
Andrei Sokolov #:
Так я же написал что так и делал. Вы сами пробовали? У вас нет описанной проблемы?

 для теста, (когда обновляются данные)

void OnTick()
{
   static datetime last_bar_time = 0;
   
   // Проверяем время открытия текущего бара
   if(last_bar_time != iTime(_Symbol, _Period, 0))
   {
      last_bar_time = iTime(_Symbol, _Period, 0);
      
      double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
      double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
      
      PrintFormat("Новый бар %s | Bar Open: %.5f | Tester Ask: %.5f | Tester Bid: %.5f", 
                  TimeToString(last_bar_time), iOpen(_Symbol, _Period, 0), ask, bid);
                  
      Comment("Ask: ", DoubleToString(ask, _Digits), " | Bid: ", DoubleToString(bid, _Digits));
   }
}

потом можно использовать встроенные переменные графика 

void OnTick()
{
   // Эти переменные подтягиваются движком тестера под текущий шаг симуляции
   Comment("_Ask: ", DoubleToString(_Ask, _Digits), " | _Bid: ", DoubleToString(_Bid, _Digits)); 
}
 
Igor Nagorniuk #:

 для теста, (когда обновляются данные)

потом можно использовать встроенные переменные графика 

Вы сами пробовали? У вас нет описанной проблемы?
 
Igor Nagorniuk #:
это попробуй

Попробовал, проблема повторяется (чего и следовало ожидать)


 
Andrei Sokolov #:
Вы сами пробовали? У вас нет описанной проблемы?

нет..вообще нет

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

Весь свечной график тестера при этом просто украшение, я это знаю, я же сам галочку поставил "только цены открытия"

 
Maxim Kuznetsov #:
просто даже не ожидаю что при тестировании по ценам открытия советник получит что-то близкое к реальности кроме цены bid в момент открытия свечи (и то бабушка надвое).
Так там даже бид - не бид
 
В МТ4 на черном фоне трендовые линии ордеров, генерируемых Тестером МТ4, практически не видны. 
Можно ли это изменить?

 
Всеи доброго времени суток. Вопрос по тестеру МТ5.
Я написал код, который на минутном графике (все тики) открывает ордера по нужным мне критериям. Открывает при помощи класса СТrade.
Все ордера за период с 04.01.2020 по 08.06.26  открываются в соответствии с кодом. Более 4000 ордеров. Но встречается около 10 - 15 случаев когда ордера не открываются по причине ошибки 10018 

10018

TRADE_RETCODE_MARKET_CLOSED

Рынок закрыт

Ордера не открываются из за этой ошибки исключительно на свечах - 0 часов и 23 часа, в различные дни недели. При этом свечи на которых должны открыться ордера всегда присутствуют на графике, не смотря на то что рынок закрыт. Этот парадокс не укладывается в моей голове. Внизу пример одного из таких случаев. Вертикальная черная линия - это свеча на которой должен был открыться ордер(12.01.2010 00:00). Горизонтальная красная линия -это цена по которой должен был открыться ордер. Красная вертикальная линия - это свеча на которой открылся ордер(12.01.2010 00:15), который должен был открыться на свече 12.01.2010 00:00 . И с 12.01.2010 00:00 по 12.01.2010 00:15 , то есть 8 свечей которые есть на графике сервер говорит что РЫНОК ЗАКРЫТ!!!!. И так в каждом случае неоткрытия ордера. Я менял сервер ... но результат тот же. При этом блок кода советника в котором прописаны условия открытия ордера и само открытия ордера постоянен и не меняется на протяжении всей работы советника. Абсолютное большинство ордеров в 0 часов и в 23 часа советник открывает корректно в соответствии с кодом. За исключение вышеописанных случаев

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