Очень похоже на зацикливание эксперта. Так что проблема в коде.
То, что работает онлайн ни о чем не говорит, ведь приход тиков и работа эксперта - разные потоки. Поток эксперта завис, а тики то все равно могут приходить. В тестере не так - там, пока эксперт не вернет исполнение тестеру, новые тики не придут.
Вот весь код:
//+------------------------------------------------------------------+ //| test.mq5 | //| Copyright 2025, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #include <Trade\Trade.mqh> int numberOrder; CTrade Trade; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- numberOrder = 0; //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(numberOrder == 0) { Trade.Buy(SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MIN), Symbol(), SymbolInfoDouble(Symbol(), SYMBOL_ASK), 0, 0, 0); numberOrder ++; } } //+------------------------------------------------------------------+
Очень похоже на зацикливание эксперта. Так что проблема в коде.
То, что работает онлайн ни о чем не говорит, ведь приход тиков и работа эксперта - разные потоки. Поток эксперта завис, а тики то все равно могут приходить. В тестере не так - там, пока эксперт не вернет исполнение тестеру, новые тики не придут.
Вот сделал видео, для понимания происходящего:
1) добавь ChartRedraw() в OnTick()
2) первое открытие не стоит делать на первом-же тике :-) только спустя некоторое хоть небольшое время от старта советника.
просто ты открываешь сделки на каждом тике и сверх-оптимизированный тестер их не отрисовывает. А для ускорения ещё и котировки рисует с опозданием :-)
1) добавь ChartRedraw() в OnTick()
2) первое открытие не стоит делать на первом-же тике :-) только спустя некоторое хоть небольшое время от старта советника.
просто ты открываешь сделки на каждом тике и сверх-оптимизированный тестер их не отрисовывает. А для ускорения ещё и котировки рисует с опозданием :-)
Вот поменял код:
//+------------------------------------------------------------------+ //| test.mq5 | //| Copyright 2025, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #include <Trade\Trade.mqh> int numberOrder; CTrade Trade; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- numberOrder = 0; //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(numberOrder == 1000) { Trade.Buy(SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MIN), Symbol(), SymbolInfoDouble(Symbol(), SYMBOL_ASK), 0, 0, 0); } if(numberOrder < 1001) { numberOrder++; } ChartRedraw(0); } //+------------------------------------------------------------------+
Какие, еще идеи будут?
Элементы управления тоже перестают работать.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте многоуважаемые коллеги!!! Не уверен, что правильно выбрал ветку для этой темы, прошу простить...
Проблема такая: Не работает визуальный режим в тестере стратегий если эксперт открывает отложенный ордер или позицию. Если ордеров нет, тогда визуальный режим работает, двигается график, отрисовываются графические элементы.
Дело не в эксперте, пробовал в тестовом эксперте просто открыть позицию, больше ничего в нем нет. И вот если запустить этот эксперт в тестере, показывает что открылась позиция, эквити считается, НО график стоит на месте.
Прошу ваших советов.
У меня windows 11 pro, MT5 build 4864