Ошибки, баги, вопросы - страница 2826

 

Здравствуйте. Надеюсь правильно выбрал ветку.

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

Индикатор появляется и отрисовывается только если раскоментить Sleep(1) в инициализаторе советника.

В чём может быть проблема?

Sleep() мне не подходит, т.к. ChartWindowFind(0, short_name) кастомного индикатора перестает работать в левой части графика.

Вот простой пример с которым проблемы:

int MACDHandle=INVALID_HANDLE;
double macd_value[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   MACDHandle=iMACD(_Symbol,0,12,26,9,PRICE_CLOSE);
//Sleep(1);
   ArraySetAsSeries(macd_value, true);
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if(MACDHandle<0)
     {
      Alert("Ошибка при создании индикатора MACD - номер ошибки: ",GetLastError(),"!!");
      return(-1);
     }
   else
     {
      Print("MACD инициализирован, handle: ", MACDHandle);
      return(INIT_SUCCEEDED);
     }
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Освобождаем хэндлы индикаторов
   IndicatorRelease(MACDHandle);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   CopyBuffer(MACDHandle, 0, 0, 1, macd_value);
   Print("macd_value: ", macd_value[0]);
  }
//+------------------------------------------------------------------+
mt5 build 2572
 
fxsaber:

Такой обходной вариант рассматривал, спасибо. Похоже, только так и надо.

Не знаю, изменилось ли что, но на момент написания статьи работал универсальным образом такой код:

FileOpen(filename, FILE_READ | FILE_TXT | FILE_ANSI, 0, CP_UTF8);
Синтаксический анализ MQL средствами MQL
Синтаксический анализ MQL средствами MQL
  • www.mql5.com
Суть программирования заключается в формализации и автоматизации неких процессов с помощью языков общего или специального назначения. Торговая платформа MetaTrader позволяет применять программирование для решения самых разных задач трейдера, благодаря встроенному языку MQL. И обычно процесс программирования строится на анализе и обработке...
 
Подскажите способ узнать номер ядра в тестируемом советнике. В MQL API такого нет, но вроде кто-то делал парсинг пути агента - там не понятно, насколько папки в Tester унифицированы.
 
Stanislav Korotky:
Подскажите способ узнать номер ядра в тестируемом советнике. В MQL API такого нет, но вроде кто-то делал парсинг пути агента - там не понятно, насколько папки в Tester унифицированы.

https://www.mql5.com/ru/forum/1111/page2660#comment_15183572

 

Спасибо, попробую. Правда номер порта может быть и пятизначным (а чисто технически и меньше 4 знаков, хотя они считаются зарезервированными за стандартными сервисами), так что способ экстракции для себя поправлю.

 

Доброго дня!

Допустим, при разработке советника я запускаю его в режиме отладки. Значение по-умолчанию одной из input переменных было только что изменено в коде. Ее run-time значение, тем не менее, подставляется из предыдущего input набора тестера стратегий.

Вопрос: "какого лешего это происходит?". Черт с ним, что синхронизации нет, но почему приоритет в режиме отладки у набора, а не у кода? 

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Nikolai Karetnikov:

Доброго дня!

Допустим, при разработке советника я запускаю его в режиме отладки. Значение по-умолчанию одной из input переменных было только что изменено в коде. Ее run-time значение, тем не менее, подставляется из предыдущего input набора тестера стратегий.

Вопрос: "какого лешего это происходит?". Черт с ним, что синхронизации нет, но почему приоритет в режиме отладки у набора, а не у кода? 

Если коротко, то просто учитывайте эту особенность.

 

Поделитесь инфой, какие размеры EX5-файлов боевых торговых советников?

У меня (одна (безындикаторная) торговая логика) без каких-либо явных и неявных (статические массивы) ресурсов и без GUI ~1250 Кб (EX4 - 450 Кб). При этом версия под Тестер (без обвеса, заточенного на реал) - ~250 Кб.

 
fxsaber:

Поделитесь инфой, какие размеры EX5-файлов боевых торговых советников?

150кб без индикаторов

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