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

 

Серьёзные баги со статическими переменными.  Рассмотрим такой код:

class A  { public:
            int m;
            A() { Alert("A");  m=1; }
         };

class B  { public:
            B() { Alert("B");  static A a;  Alert("a.m==",a.m);  Alert("&a==",&a);}
         };
B b;

void OnStart()
{
};

При выполнении получаем следующий порядок алертов:

B
a.m==0
&a==0
A

Т.е. статическая переменная ещё не инициализирована к моменту доступа к ней.  Даже указатель нулевой.  Её типа перескочили, и благополучно пошли дальше. 

Такого безобразия быть не должно.  Либо инициализируем переменную и идём дальше, либо прерываем компиляцию с ошибкой.

Здесь естественно она должна быть проинициализирована. А вот в случаях, если образуется рекурсия из взаимно ссылающихся классов, то надо стопорить компиляцию.

 
Aliaksandr Yemialyanau:

Как к советнику подключить файл с массивом?

Сначала скрипт записывает массив:

 В советнике подключаю файл:

При компиляции, ошибки:

'??????????????????????????t????…' - identifier is too long mas.dat 1 1

'' - unknown symbol mas.dat 1 3015

Ваш скрипт должен сформировать файл mas.mqh, в котором будет размещаться массив типа uchar, содержащий байты ваших данных. Например, если файл размером три байта, содержимое файла mas.mqh должно быть следующим:

uchar mass[3] = {25, 127, 89};

 Сгенерированный массив mass Вы и должны использовать в своей программе.

 
Aliaksandr Yemialyanau:
Не думаю, в оптимизаторе файл придётся десятки тысяч раз открывать-читать-закрывать.
А, так Вы хотите компилировать с массивом?
 
Вряд ли придётся считывать файл с диска десятки тысяч раз. Для этого существует дисковый кэш.  Хотя я конечно не знаю, используется ли оно в данном конкретном случае, но надо проверить, сделать замеры, прежде чем изобретать костыли.
 
Если прерываю в MT5 одиночный прогон, то виден только график изменения баланса. Но сделки и ордера недоступны.
Использовать режим Визуализации не всегда подходит из-за возможных тормозящих доп. расчетов по MQLInfoInteger(MQL_VISUAL_MODE).
Возможно ли добавить доступность всей информации во время бэктеста (без визуализации), как это есть в MT4?
 
В режиме отладки на исторических данных MQLInfoInteger(MQL_VISUAL_MODE) всегда возвращает true.
 
fxsaber:
В режиме отладки на исторических данных MQLInfoInteger(MQL_VISUAL_MODE) всегда возвращает true.
А что должно возвращать?
 

Пишу эксперт, вызывающий ex5 индикатор. Эксперт, в тестере стратегий работает правильно, но если запустить оптимизацию, агенты в конце прогона начинают крешится:

 

 

 

Если нажимаю кнопку закрыть, через некоторое время агент перезапускается и берет новый прогон, после чего снова вылетает.

Анализ логов ничего не дал:

NR      0       15:51:49.391    Tester  register MQL5.community account and use MQL5 Cloud Network to speed up optimizations
RE      0       15:51:49.412    Tester  Experts\PowerTrender.ex5 on RTS Splice,H1 from 2016.01.01 00:00 to 2016.08.01 00:00
QJ      0       15:51:49.514    Tester  RTS Splice: history data begins from 2007.08.23 00:00
QP      0       15:51:49.514    Tester  complete optimization started
RF      0       15:51:49.514    Tester  size of initial task batch is 10
IS      0       15:51:49.523    Tester  file cache Z:\MetaTrader 5\tester\cache\PowerTrender.RTS Splice.H1.2.xml found
HS      0       15:51:49.523    Tester  file cache contains 18 records
CD      0       15:51:49.544    Core 1  agent process started
GD      0       15:51:49.544    Core 1  connecting to 127.0.0.1:3000
EQ      0       15:51:49.547    Core 2  agent process started
JI      0       15:51:49.547    Core 2  connecting to 127.0.0.1:3001
NN      0       15:51:49.549    Core 3  agent process started
PJ      0       15:51:49.549    Core 3  connecting to 127.0.0.1:3002
GK      0       15:51:49.552    Core 4  agent process started
FO      0       15:51:49.552    Core 4  connecting to 127.0.0.1:3003
OG      0       15:51:49.555    Core 5  agent process started
OS      0       15:51:49.555    Core 5  connecting to 127.0.0.1:3004
CD      0       15:51:49.558    Core 6  agent process started
DD      0       15:51:49.558    Core 6  connecting to 127.0.0.1:3005
OQ      0       15:51:49.560    Core 7  agent process started
QI      0       15:51:49.560    Core 7  connecting to 127.0.0.1:3006
EN      0       15:51:49.563    Core 8  agent process started
QJ      0       15:51:49.563    Core 8  connecting to 127.0.0.1:3008
DK      0       15:51:53.654    Core 5  connected
FR      0       15:51:53.685    Core 5  authorized (agent build 1375)
CH      0       15:51:53.740    Core 5  common synchronization completed
IN      0       15:51:54.152    Core 6  connected
OR      0       15:51:54.154    Core 2  connected
JJ      0       15:51:54.155    Core 6  authorized (agent build 1375)
FN      0       15:51:54.156    Core 7  connected
IO      0       15:51:54.158    Core 2  authorized (agent build 1375)
NI      0       15:51:54.163    Core 1  connected
LS      0       15:51:54.169    Core 7  authorized (agent build 1375)
JK      0       15:51:54.208    Core 6  common synchronization completed
GR      0       15:51:54.210    Core 2  common synchronization completed
HI      0       15:51:54.220    Core 1  authorized (agent build 1375)
QE      0       15:51:54.237    Core 7  common synchronization completed
KL      0       15:51:54.275    Core 1  common synchronization completed
JI      0       15:51:55.202    Core 8  connected
QS      0       15:51:55.205    Core 8  authorized (agent build 1375)
JE      0       15:51:55.223    Core 3  connected
HD      0       15:51:55.249    Core 3  authorized (agent build 1375)
KM      0       15:51:55.259    Core 2  connection closed
FH      0       15:51:55.265    Core 8  common synchronization completed
GP      0       15:51:55.272    Core 1  connection closed
IS      0       15:51:55.276    Core 4  connected
LJ      0       15:51:55.288    Core 4  authorized (agent build 1375)
GP      0       15:51:55.298    Core 3  common synchronization completed
QH      0       15:51:55.334    Core 4  common synchronization completed
KP      0       15:51:55.375    Core 7  connection closed
JO      0       15:51:55.403    Core 6  connection closed
GE      0       15:51:56.045    Core 8  connection closed
CP      0       15:51:56.107    Core 3  connection closed
ON      0       15:51:56.151    Core 4  connection closed
LE      0       15:52:02.092    Core 5  connection closed
CN      0       15:52:11.964    Core 1  agent process started
GJ      0       15:52:11.964    Core 1  connecting to 127.0.0.1:3000
FK      0       15:52:11.966    Core 2  agent process started
IO      0       15:52:11.966    Core 2  connecting to 127.0.0.1:3001
QH      0       15:52:11.969    Core 6  agent process started
RP      0       15:52:11.969    Core 6  connecting to 127.0.0.1:3005
GE      0       15:52:11.971    Core 7  agent process started
IE      0       15:52:11.971    Core 7  connecting to 127.0.0.1:3006
LQ      0       15:52:12.975    Core 3  agent process started
RI      0       15:52:12.975    Core 3  connecting to 127.0.0.1:3002
CN      0       15:52:12.979    Core 4  agent process started
JJ      0       15:52:12.979    Core 4  connecting to 127.0.0.1:3003
RK      0       15:52:12.983    Core 8  agent process started
FO      0       15:52:12.983    Core 8  connecting to 127.0.0.1:3008
GH      0       15:52:15.857    Core 2  connected
MP      0       15:52:15.864    Core 2  authorized (agent build 1375)
JJ      0       15:52:15.914    Core 2  common synchronization completed
EK      0       15:52:16.367    Core 1  connected
RR      0       15:52:16.375    Core 1  authorized (agent build 1375)
DF      0       15:52:16.385    Core 6  connected
LF      0       15:52:16.392    Core 6  authorized (agent build 1375)
LL      0       15:52:16.433    Core 1  common synchronization completed
JG      0       15:52:16.465    Core 6  common synchronization completed
GQ      0       15:52:16.922    Core 8  connected
OH      0       15:52:16.924    Core 8  authorized (agent build 1375)
DL      0       15:52:16.957    Core 7  connected
PQ      0       15:52:16.957    Core 3  connected
GH      0       15:52:16.967    Core 7  authorized (agent build 1375)
RQ      0       15:52:16.968    Core 3  authorized (agent build 1375)
FM      0       15:52:16.975    Core 8  common synchronization completed
LE      0       15:52:17.023    Core 3  common synchronization completed
DL      0       15:52:17.029    Core 7  common synchronization completed
DD      0       15:52:17.530    Core 6  connection closed
PR      0       15:52:17.566    Core 1  connection closed
JD      0       15:52:17.966    Core 4  connected
ID      0       15:52:17.969    Core 4  authorized (agent build 1375)
QM      0       15:52:17.971    Core 8  connection closed
PK      0       15:52:18.010    Core 4  common synchronization completed
EP      0       15:52:18.010    Core 3  connection closed
KO      0       15:52:18.025    Core 7  connection closed
GE      0       15:52:18.503    Core 2  connection closed
HM      0       15:52:18.971    Core 5  agent process started
HM      0       15:52:18.971    Core 5  connecting to 127.0.0.1:3004
OG      0       15:52:19.524    Core 4  connection closed
FP      0       15:52:21.647    Core 5  connected
FI      0       15:52:21.649    Core 5  authorized (agent build 1375)
NE      0       15:52:21.679    Core 5  common synchronization completed
GO      0       15:52:23.410    Core 5  connection closed
MH      0       15:52:33.652    Core 1  agent process started
RP      0       15:52:33.653    Core 1  connecting to 127.0.0.1:3000
KE      0       15:52:33.655    Core 6  agent process started
LE      0       15:52:33.655    Core 6  connecting to 127.0.0.1:3005
PR      0       15:52:33.658    Core 8  agent process started
DF      0       15:52:33.658    Core 8  connecting to 127.0.0.1:3008
HP      0       15:52:33.828    Tester  file cache used 18 times
LG      0       15:52:33.828    Tester  optimization finished, total passes 31
FP      0       15:52:33.828    Statistics      optimization done in 0 minutes 44 seconds
MD      0       15:52:33.828    Statistics      local 13 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
ER      2       15:52:33.878    Core 1  failed to send stop command
FE      0       15:52:33.878    Core 1  connection closed
HN      2       15:52:33.928    Core 6  failed to send stop command
OH      0       15:52:33.928    Core 6  connection closed
EJ      2       15:52:33.978    Core 8  failed to send stop command
FL      0       15:52:33.978    Core 8  connection closed
DH      0       15:52:33.979    Tester  13 records written to file cache Z:\MetaTrader 5\tester\cache\PowerTrender.RTS Splice.H1.2.xml
EG      3       15:52:33.979    Tester  stopped by user

 Сигнатура ошибки следующая:

Сигнатура проблемы:
  Имя события проблемы: APPCRASH
  Имя приложения:       metatester64.exe
  Версия приложения:    5.0.0.1375
  Отметка времени приложения:   00623e00
  Имя модуля с ошибкой: StackHash_ef12
  Версия модуля с ошибкой:      6.1.7601.17514
  Отметка времени модуля с ошибкой:     4ce7c8f9
  Код исключения:       c0000374
  Смещение исключения:  00000000000c40f2
  Версия ОС:    6.1.7601.2.1.0.256.1
  Код языка:    1049
  Дополнительные сведения 1:    ef12
  Дополнительные сведения 2:    ef1284acb2700557506bfd58d3b2b94d
  Дополнительные сведения 3:    e9c5
  Дополнительные сведения 4:    e9c5ba00b1c29dae6bd463df717d650f

Ознакомьтесь с заявлением о конфиденциальности в Интернете:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419

Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
  C:\Windows\system32\ru-RU\erofflps.txt

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

Поэтому прежде чем обратиться в сервисдеск пишу сюда: может быть есть какая-то фишка при работе с индикаторами в тестере стратегий? Может быть надо где-то вызвать IndicatorRelease? В общем если кто-то что-то знает, как потенциально это можно исправить - напишите.

 
Vasiliy Sokolov:

Пишу эксперт, вызывающий ex5 индикатор. Эксперт, в тестере стратегий работает правильно, но если запустить оптимизацию, агенты в конце прогона начинают крешится:

 

 

 

Если нажимаю кнопку закрыть, через некоторое время агент перезапускается и берет новый прогон, после чего снова вылетает.

Анализ логов ничего не дал:

 Сигнатура ошибки следующая:

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

Поэтому прежде чем обратиться в сервисдеск пишу сюда: может быть есть какая-то фишка при работе с индикаторами в тестере стратегий? Может быть надо где-то вызвать IndicatorRelease? В общем если кто-то что-то знает, как потенциально это можно исправить - напишите.

Лучше в сервисдеск со всеми подробностями, разберемся.
 

Когда в MT4 появится возможность из журнала копировать строку и не получать при вставке другую кодировку: 

2016.08.03 00:03:36.699 2013.04.26 10:15  Kamikadze_MA_V_04_42_Fibo_05_Regressor_T_K GBPUSD,M15: Magic=111Îðäåð 322 SELLSTOP íå ìîäèôèöèðîâàí. Bid (1.5448) ìåíüøå öåíû îòêðûòèÿ (1.5498)