Внимательно посмотрите в первый столбец моих скринов и поймёте что это один и тот же тест!!!
Переходите в журнал. Правый клик - очистить.
Запускаете тест и точку останова ставите на выходе из 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)
Переходите в журнал. Правый клик - очистить.
Запускаете тест и точку останова ставите на выходе из 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); } //+------------------------------------------------------------------+
Итак тест.
Берём стандартный советник 'ExpertMACD'
добавляем принт после входа
и перед выходом:
Компилируем. В терминале правый клик во вкладке "Журнал" в окне "Тестер стратегий" и очищаем журнал.
В окне "Тестер стратегий" выбираем наш советник
и запускам тест. Результат - в OnInit побывали один раз:
Сейчас попробую это сделать!
Итак тест.
Берём стандартный советник '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
Перезапустился и что? Нормально написанный эксперт не должен зависеть от перезапуска.
нормально написанные эксперты еще и засыпать умеют, пару дней ранее прочитал что трейлинг после выходных только заработал)
оставил спящего робота на пол дня, все это время он и проспал, рестарт терминала и начал открывать позиции(не редактировал тогда)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
)
Прикрепляю скрины
это фрагмент OnInit()
первый вход в инит. Он правильный, с этой даты запускаю эксперта на тестирование.
второй вход в инит.
Кто нибудь может подскажет!
В чем может быть дело, Как бы избавиться от этой проблемы? Переменные обнуляются во время второго инита.
брокер Финам. Тикер ISKJ но пробовал разные и другие тикеры.
В тексте самого эксперта ничего криминального нет. В конце я вообще затер всю программу - не помогло ((