во время прохождения теста дважды заходит в инит!!! МТ5.

 
Такой вопрос — в режиме теста дважды входит в инит. соответственно в середине теста сбрасываются в ноль наработанные переменные.
Как это проявляется — внутри int OnInit() есть команда Print ("TEST 222 on init");  Так вот, этот текст выводится в начале теста, у меня это дата 01.01.2020, и второй раз на дату 29.05.2021
)

Прикрепляю скрины 

это фрагмент OnInit()

это фрагментint OnInit()

первый вход в инит. Он правильный, с этой даты запускаю эксперта на тестирование.

второй вход в инит. 


Кто нибудь может подскажет!

В чем может быть дело, Как бы избавиться от этой проблемы? Переменные обнуляются во время второго инита.

брокер Финам. Тикер ISKJ но пробовал разные и другие тикеры.

В тексте самого эксперта ничего криминального нет. В конце я вообще затер всю программу - не помогло ((

 
После очередного тестирования выполняйте правый клик и "Очистить журнал". И не будете вводить в заблуждение н себя ни людей.
 
Vladimir Karputov #:
После очередного тестирования выполняйте правый клик и "Очистить журнал". И не будете вводить в заблуждение н себя ни людей.

Внимательно посмотрите в первый столбец моих скринов и поймёте что это один и тот же тест!!!

 
Alexander Kharlamov #:

Внимательно посмотрите в первый столбец моих скринов и поймёте что это один и тот же тест!!!

Переходите в журнал. Правый клик - очистить.

Запускаете тест и точку останова ставите на выходе из OnInit.

Переходите в журнал, копируете весь текст и вставляете при помощи 

Ну и конечно весь код из OnInit - мало ли что Вы там начудили.


Добавлено: специально проверил в 3118 - всё как полагается, OnInit один раз.

 

Итак тест.

MetaTrader 5 x64 build 3118 started for MetaQuotes Software Corp.
Windows 11 build 22000, 12 x Intel Core i7-9750H  @ 2.60GHz, 22 / 31 Gb memory, 717 / 947 Gb disk, UAC, GMT+2
C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

Берём стандартный советник 'ExpertMACD'

добавляем принт после входа

//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   Print("IN ",__FUNCTION__);
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {

и перед выходом:

//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(-11);
     }
   Print("OUT ",__FUNCTION__);
//--- succeed
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }


Компилируем. В терминале правый клик во вкладке "Журнал" в окне "Тестер стратегий" и очищаем журнал.

В окне "Тестер стратегий" выбираем наш советник


и запускам тест. Результат - в OnInit побывали один раз:

2021.12.02 12:39:44.768 Tester  "Advisors\ExpertMACD.ex5" 64 bit
2021.12.02 12:39:44.887 Tester  SBER.MM: history data begins from 2012.10.31 00:00
2021.12.02 12:39:44.887 Core 01 connecting to 127.0.0.1:3000
2021.12.02 12:39:44.888 Core 01 connected
2021.12.02 12:39:44.894 Core 01 authorized (agent build 3118)
2021.12.02 12:39:44.900 Tester  SBER.MM,H1 (Just2Trade-MT5): testing of Experts\Advisors\ExpertMACD.ex5 from 2020.10.20 00:00 to 2021.11.30 00:00
2021.12.02 12:39:44.915 Core 01 common synchronization completed
2021.12.02 12:39:44.927 Tester  quality of analyzed history is 97%
2021.12.02 12:39:49.670 Core 01 test Experts\Advisors\ExpertMACD.ex5 on SBER.MM,H1 thread finished
2021.12.02 12:39:49.670 Core 01 prepare for shutdown
2021.12.02 12:39:49.670 Core 01 login (build 3118)
2021.12.02 12:39:49.670 Core 01 account info found with currency USD
2021.12.02 12:39:49.670 Core 01 initial deposit 20000.00 USD, leverage 1:100
2021.12.02 12:39:49.670 Core 01 successfully initialized
2021.12.02 12:39:49.670 Core 01 163 bytes of total initialization data received
2021.12.02 12:39:49.670 Core 01 Intel Core i7-9750H  @ 2.60GHz, 32574 MB
2021.12.02 12:39:49.670 Core 01 SBER.MM: symbol to be synchronized
2021.12.02 12:39:49.670 Core 01 SBER.MM: symbol synchronized already, 20 bytes received
2021.12.02 12:39:49.670 Core 01 SBER.MM,H1: history cached from 2019.01.03 07:00
2021.12.02 12:39:49.670 Core 01 SBER.MM,H1 (Just2Trade-MT5): every tick generating
2021.12.02 12:39:49.670 Core 01 testing with execution delay 100 milliseconds
2021.12.02 12:39:49.670 Core 01 SBER.MM,H1: testing of Experts\Advisors\ExpertMACD.ex5 from 2020.10.20 00:00 to 2021.11.30 00:00 started with inputs:
2021.12.02 12:39:49.670 Core 01   Inp_Expert_Title=ExpertMACD
2021.12.02 12:39:49.670 Core 01   Inp_Signal_MACD_PeriodFast=12
2021.12.02 12:39:49.670 Core 01   Inp_Signal_MACD_PeriodSlow=24
2021.12.02 12:39:49.670 Core 01   Inp_Signal_MACD_PeriodSignal=9
2021.12.02 12:39:49.670 Core 01   Inp_Signal_MACD_TakeProfit=50
2021.12.02 12:39:49.670 Core 01   Inp_Signal_MACD_StopLoss=20
2021.12.02 12:39:49.670 Core 01 2020.10.20 00:00:00   IN OnInit
2021.12.02 12:39:49.670 Core 01 USDRUB: symbol to be synchronized
2021.12.02 12:39:49.670 Core 01 USDRUB: symbol synchronized already, 18 bytes received
2021.12.02 12:39:49.670 Core 01 2020.10.20 00:00:00   OUT OnInit
2021.12.02 12:39:49.670 Core 01 2020.10.20 08:00:00   exchange buy 1 SBER.MM at 204.03 sl: 203.83 tp: 204.53 (204.02 / 204.03 / 204.02)
2021.12.02 12:39:49.670 Core 01 2020.10.20 08:00:00   deal #2 buy 1 SBER.MM at 204.03 done (based on order #2)
 
Vladimir Karputov #:

Переходите в журнал. Правый клик - очистить.

Запускаете тест и точку останова ставите на выходе из OnInit.

Переходите в журнал, копируете весь текст и вставляете при помощи 

Ну и конечно весь код из OnInit - мало ли что Вы там начудили.


Добавлено: специально проверил в 3118 - всё как полагается, OnInit один раз.

OR      0       15:26:24.288    Core 1  connecting to 127.0.0.1:3000
JS      0       15:26:24.289    Core 1  connected
IJ      0       15:26:24.315    Core 1  authorized (agent build 3091)
QQ      0       15:26:24.319    Tester  ISKJ,M15 (FINAM-AO): visual testing of Experts\Test_INIT_Twice.ex5 from 2020.01.01 00:00 to 2021.11.17 00:00
OQ      0       15:26:24.377    Core 1  common synchronization completed
GH      3       15:26:24.437    Tester  quality of analyzed history is 31%

Это то, что в журнале.

ниже текст  OnInit

//+------------------------------------------------------------------+
int OnInit()
  {
  

Print ("TEST 222 on init");

//--- create timer
   EventSetTimer(10);
   

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
 
Vladimir Karputov #:

Итак тест.

Берём стандартный советник 'ExpertMACD'

добавляем принт после входа

и перед выходом:


Компилируем. В терминале правый клик во вкладке "Журнал" в окне "Тестер стратегий" и очищаем журнал.

В окне "Тестер стратегий" выбираем наш советник


и запускам тест. Результат - в OnInit побывали один раз:

Сейчас попробую это сделать!

 
Перезапустился и что? Нормально написанный эксперт не должен зависеть от перезапуска.
 
Alexander Kharlamov #:

Это то, что в журнале.

ниже текст  OnInit

Alexander Kharlamov #:

Это то, что в журнале.

ниже текст  OnInit

Vladimir Karputov #:

Итак тест.

Берём стандартный советник 'ExpertMACD'

добавляем принт после входа

и перед выходом:


Компилируем. В терминале правый клик во вкладке "Журнал" в окне "Тестер стратегий" и очищаем журнал.

В окне "Тестер стратегий" выбираем наш советник


и запускам тест. Результат - в OnInit побывали один раз:


Отлично! После проделанных манипуляций все встало на свои места.

Когда в первый раз это увидел сам был в шоке!

Что было не знаю, мучился с этим больше 3х дней. Сейчас все работает нормально, Спасибо!

Прикреплю ниже на всякий случай тот лог (в хорошем качестве), который выдавался при неправильной работе. Вдруг в будущем поможет кому-то или какое-то объяснение появится!

GS      0       18:09:04.675    Core 1  final balance 10000.00 pips
EH      0       18:09:04.675    Core 1  OnTester result 74.23312883435584
FN      0       18:09:04.675    Core 1  2021.05.28 23:59:50   TEST 222 on DE INIT m15_Mas1_InDe[1,300]=0 PravNeactivac=4271
JE      0       18:09:04.675    Core 1  2021.05.28 23:59:50   Выход9999 время=18:17
EM      0       18:09:04.675    Core 1  2021.05.28 23:59:50   EntersAll=4705 countBars=4705
DS      0       18:09:04.675    Core 1  2021.05.28 23:59:50   SumNeiro_M15=210 otvetNeiro_M15=false otvetTesta_M15=false
CE      0       18:09:04.675    Core 1  2021.05.28 23:59:50   FirstNeiroDA_M15=113 SecNeiroDA_M15=119 ThrNeiroDA_M15=137
GH      0       18:09:04.675    Core 1  2021.05.28 23:59:50   sumotvetNeiroNET_M15=4542 Predict_M15=121 sumotvetNeiroDA_M15=163 PredictProcPravActiv_M15=74.23
KF      0       18:09:04.675    Core 1  2021.05.28 23:59:50    NepravNeactivac=271 NepravNeactivacProc=5.97
PJ      0       18:09:04.675    Core 1  2021.05.28 23:59:50    PravNeactivac=4271 PravNeactivacProc=94.03
PP      0       18:09:04.675    Core 1  2021.05.28 23:59:50   Выход 9999 9999 время=18:17 SumNeiroLimit_M15=190.0
FR      0       18:09:04.675    Core 1  2021.05.28 23:59:50   FileOpenInDe OK=58
PI      0       18:09:04.675    Core 1  2021.05.28 23:59:50   FileOpenInDe OK=126
HR      0       18:09:04.675    Core 1  2021.05.28 23:59:50   FileOpenInDe OK=126
CG      0       18:09:04.675    Core 1  IGST,M15: 28342 ticks, 5690 bars generated. Environment synchronized in 0:00:00.268. Test passed in 0:00:01.742 (including ticks preprocessing 0:00:00.015).
OP      0       18:09:04.675    Core 1  IGST,M15: total time from login to stop testing 0:00:02.010 (including 0:00:00.268 for history data synchronization)
DR      2       18:09:04.786    Tester  quality of analyzed history is 6% (23698 minute bars, tick volume errors 2038, spread errors 13760)
QN      0       18:09:05.405    Core 1  calculate profit in pips, initial deposit 10000, leverage 1:1
KG      0       18:09:05.405    Core 1  IGST: symbol to be synchronized
DN      0       18:09:05.405    Core 1  IGST: symbol synchronized already, 14 bytes received
PJ      0       18:09:05.405    Core 1  IGST: load 23 bytes of history data to synchronize in 0:00:00.002
GE      0       18:09:05.405    Core 1  IGST: history synchronized from 2019.01.03 to 2021.11.17
NN      0       18:09:05.405    Core 1  IGST,M15: history cache allocated for 17500 bars and contains 5690 bars from 2020.01.03 11:30 to 2021.05.28 18:15
MO      0       18:09:05.405    Core 1  IGST,M15: history begins from 2020.01.03 11:30
OR      0       18:09:05.405    Core 1  IGST,M15 (FINAM-AO): 1 minutes OHLC ticks generating
PJ      0       18:09:05.405    Core 1  IGST,M15: testing of Experts\Test_my11.ex5 from 2021.05.29 00:00 to 2021.11.17 00:00 started with inputs:
PJ      0       18:09:05.405    Core 1    TakeProfit=20
DI      0       18:09:05.405    Core 1    SumNeiroLimit_M15=190
HP      0       18:09:05.405    Core 1    SumNeiroLimit_H1=190
GH      0       18:09:05.405    Core 1    EtoNeiroForProfitProc=20
QS      0       18:09:05.405    Core 1  2021.05.29 00:00:00   DODOsumotvetNeiroNET_M15=0 sumotvetNeiroDA_M15=0 PravNeactivac=0
HR      0       18:09:05.405    Core 1  2021.05.29 00:00:00   TEST 222 on init
GH      0       18:09:05.405    Core 1  2021.05.29 00:00:00   lastBarUp_M15 initOK строк=0
ES      0       18:09:05.405    Core 1  2021.05.29 00:00:00   in init  lastBarUpDim_M15[0]=  [1]= -995
OE      0       18:09:05.405    Core 1  2021.05.29 00:00:00   FileOpenInDeComm initOK строк=0 старое m15_Mas1_InDe[1,300]=0
QI      0       18:09:05.405    Core 1  2021.05.29 00:00:00    новое m15_Mas1_InDe[1,300]=0
MN      0       18:09:05.405    Core 1  2021.05.29 00:00:00   FileOpenMas1_H1 initOK строк=0
EH      0       18:09:05.405    Core 1  2021.05.29 00:00:00   Posle sumotvetNeiroNET_M15=4542 sumotvetNeiroDA_M15=163 PravNeactivac=4271
IF      0       18:09:05.405    Core 1  2021.05.29 00:00:10   Вход00= EntersAll=0
 
Dmitry Fedoseev #:
Перезапустился и что? Нормально написанный эксперт не должен зависеть от перезапуска.

нормально написанные эксперты еще и засыпать умеют, пару дней ранее прочитал что трейлинг после выходных только заработал)

оставил спящего робота на пол дня, все это время он и проспал, рестарт терминала и начал открывать позиции(не редактировал тогда)

 
Fast235 #:

нормально написанные эксперты еще и засыпать умеют, пару дней ранее прочитал что трейлинг после выходных только заработал)

оставил спящего робота на пол дня, все это время он и проспал, рестарт терминала и начал открывать позиции(не редактировал тогда)

А когда спит, храпит?