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

 
fyords:

Подскажите, пожалуйста, может кто-то сталкивался с подобным.

Есть код:

В реалтайме в терминале работает:А в тестере этот же код выдает другое:

А размер массива нужно получать независимо от того, какое событие произошло? 

 
tol64:

А размер массива нужно получать независимо от того, какое событие произошло? 

Ну, я сначала писал индикатор, а потом все свел к простому примеру.
Получается да - по любому событию, причем логи, которые приведены, повторяются каждую строку.

Изменив код на следующий:

//+------------------------------------------------------------------+
double date[];
//+------------------------------------------------------------------+
void OnInit()
{
   ArrayResize(date,3);
   Print(__FUNCTION__," ArraySize(date)=",ArraySize(date));
}
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   Print(__FUNCTION__," ArraySize(date)=",ArraySize(date));
}
//+------------------------------------------------------------------+

стало еще веселее. Результат терминал:

FD      0       12:57:59        test (EURGBP.m,M5)      OnInit ArraySize(date)=3
JO      0       12:57:59        test (EURGBP.m,M5)      OnChartEvent ArraySize(date)=3
DG      0       12:57:59        test (EURGBP.m,M5)      OnChartEvent ArraySize(date)=3

Тестер:

JM      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnInit ArraySize(date)=3
FE      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnChartEvent ArraySize(date)=0
FR      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnChartEvent ArraySize(date)=0
 
fyords:

Ну, я сначала писал индикатор, а потом все свел к простому примеру.
Получается да - по любому событию, причем логи, которые приведены, повторяются каждую строку.

...

Мне не удалось воспроизвести. Тестирую вот такой код:

//+------------------------------------------------------------------+
//|                                                     !indTEST.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
#property indicator_chart_window
#property indicator_buffers 1 
#property indicator_plots   1
#property indicator_type1   DRAW_NONE
//---
double date[];
//---
//+------------------------------------------------------------------+
//| ИНИЦИАЛИЗАЦИЯ                                                    |
//+------------------------------------------------------------------+
void OnInit()
  {
   ArrayResize(date,3);
  }
//+------------------------------------------------------------------+
//| ДЕИНИЦИАЛИЗАЦИЯ                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   Print("ArraySize(date)=",ArraySize(date));
  }
//+------------------------------------------------------------------+

//---

Тестировал индикатор в режиме визуализации.

 
tol64:

...

Тестировал индикатор в режиме визуализации.

Аналогично, разбираюсь.
 
fyords:
Аналогично, разбираюсь.
Насколько знаю, события относящиеся к взаимодействию с графиком игнорируются на текущий момент в тестере. Можно обрабатывать пользовательские события.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5
 
tol64:
Насколько знаю, события относящиеся к взаимодействию с графиком игнорируются на текущий момент в тестере. Можно обрабатывать пользовательские события.

Да мне, собственно, все равно какие, главное что они приходят :)

Интересно и то, что Ваш код у меня выдает результат 0, т.е. ошибка сохраняется.
PS. Win7 x64 + UAC и не portable.

 
fyords:

Да мне, собственно, все равно какие, главное что они приходят :)

Интересно и то, что Ваш код у меня выдает результат 0, т.е. ошибка сохраняется.
PS. Win7 x64 + UAC и не portable.

А у меня события вообще не приходят при таком коде. Так при каких событиях сообщение выводится в печать в тестере? Даже интересно стало, поэтому и спрашивал. )) Нужен код для воспроизведения.

 
tol64:

А у меня события вообще не приходят при таком коде. Так при каких событиях сообщение выводится в печать в тестере? Даже интересно стало, поэтому и спрашивал. )) Нужен код для воспроизведения.

Я уже тоже ничего не понимаю - уже не работает )).
Странно, ведь событие CHARTEVENT_CHART_CHANGE должно приходить в любом случае в тестере. Так?
 

fyords:
... 

Странно, ведь событие CHARTEVENT_CHART_CHANGE должно приходить в любом случае в тестере. Так?
В реальном времени это событие генерируется при скроллинге графика и изменении размеров окон/подокон. В тестере пока не работает это событие (а может и вообще не сделают). Из всех событий можно пока только отслеживать пользовательские события из других программ. 
 

В тестере стратегий тестировал cтандартный эксперт  ExpertMACD, поставляемый вместе с МТ5, выдает ошибки:

2013.03.30 19:18:09    Core 2    genetic pass (0, 15) tested with error "OnInit failed" in 46 ms

2013.03.30 19:18:08    Core 1    genetic pass (0, 13) tested with error "OnInit failed" in 32 ms

2013.03.30 19:18:07    Core 2    genetic pass (0, 5) tested with error "OnInit failed" in 0 ms

методом подбора выяснил, что ошибка в модуле: "SignalMACD" при оптимизации Fast и Slow периодов MACD (когда ставишь галочки в параметрах тестера стратегий).

Кто-то сталкивался с такой проблемой и как с ней бороться? (когда только одна галочка - еще как-то работает, а как только ставишь две - сразу ошибки)

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