Fehler, Irrtümer, Fragen - Seite 2387

 

Fehler in der Standardbibliothek

2019.02.19 13:52:20.974 Test_4G_CB (Si Splice,H1)       zero divide in 'Curve.mqh' (696,60)

Verknüpft mit Code.

      CCurve *A=graphicL.CurveAdd(X,Y,ColorToARGB(Green,256),CURVE_POINTS,"Logist");//Создает и добавляет кривую на график
      A.PointsFill(false);//Устанавливает флаг, указывающий, нужно ли выполнять заливку для точек, определяющих кривую при отрисовке точками. 
      A.PointsType(POINT_CIRCLE);//Устанавливает флаг, указывающий на тип точек, использующихся при отрисовке кривой точками.
      A.TrendLineVisible(true);//Устанавливает флаг, который определяет видимость трендовой линии
      A.TrendLineColor(ColorToARGB(Red,256));//Устанавливает цвет трендовой линии для кривой

Ich verstehe den Grund noch nicht - wahrscheinlich ein Array mit der Koordinate (0;0)...

Die Überprüfung der Array-Größe hat geholfen - es wird nur eine Linie mit mehr als einem Punkt erstellt.
 
Dmitriy Burlachenko:

Hallo zusammen.

Entwickler und Gurus, bitte um Rat. CopyTicksRange im Tester auf historischen Daten im Modus "Alle Ticks" und "Jeder Tick basierend auf echten Ticks" liefert 0 Ticks und den Fehlercode 0 - warum?

MT5 Baujahr 1996. Das Symbol ist RTS-3.19. Der Broker ist Otkrytie. Das Konto ist ein echtes Konto. Der Zeitrahmen ist korrekt. Es gibt die Geschichte für diesen Zeitraum.

"Fehler beim Empfang der Tick-Historie ! Von 2019.02.08 11:16 bis 2019.02.14 23:48. Fehlercode: 0. Der Vorgang wurde erfolgreich abgeschlossen." : )

Gleichzeitig gibt derselbe Code im Testgerät bei echten Daten alle Ticks ehrlich an und funktioniert online ohne Probleme. Was mache ich falsch?
Wie lange dauert der Test? Ist die Zeit dieses Testers später als 2019.02.14 23:48?
 

Aber nein, der Fehler trat an der gleichen Stelle wieder auf...

Wahrscheinlich nur Punkte mit den gleichen Koordinaten... warum diese Prüfung nicht in der Klasse ist...

 
Dmitriy Burlachenko:

Hallo zusammen.

Entwickler und Gurus, bitte um Rat. CopyTicksRange im Tester auf historischen Daten im Modus "Alle Ticks" und "Jeder Tick basierend auf echten Ticks" liefert 0 Ticks und den Fehlercode 0 - warum?

MT5 Baujahr 1996. Das Symbol ist RTS-3.19. Der Broker ist Otkrytie. Das Konto ist ein echtes Konto. Der Zeitrahmen ist korrekt. Es gibt die Geschichte für diesen Zeitraum.

"Fehler beim Empfang der Tick-Historie ! Von 2019.02.08 11:16 bis 2019.02.14 23:48. Fehlercode: 0. Operation erfolgreich abgeschlossen." :)

Gleichzeitig gibt derselbe Code im Testgerät bei echten Daten alle Ticks ehrlich an und funktioniert online ohne Probleme. Was mache ich falsch?

Ich habe einen zerknitterten Expert Advisor geschrieben

//+------------------------------------------------------------------+
//|                                           TestCopyTicksRange.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

datetime ExtNextBar=0;
datetime ExtTimes[];
MqlTick  ExtTicksAll[];
MqlTick  ExtTicksTrade[];
MqlTick  ExtTicksInfo[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ExtNextBar=NextBarTime(TimeCurrent(),_Period);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   datetime from=D'2019.02.08 11:16';
   datetime to=D'2019.02.14 23:48';
   ulong    from_msc=from*1000;
   ulong    to_msc=to*1000;
   int      ticks_trade=CopyTicksRange(_Symbol,ExtTicksTrade,COPY_TICKS_TRADE,from_msc,to_msc);
   int      ticks_info=CopyTicksRange(_Symbol,ExtTicksInfo,COPY_TICKS_INFO,from_msc,to_msc);
   int      ticks_all=CopyTicksRange(_Symbol,ExtTicksAll,COPY_TICKS_ALL,from_msc,to_msc);
   PrintFormat("%s - %s  ticks_trade=%d  ticks_info=%d  ticks_all=%d",TimeToString(from),TimeToString(to),ticks_trade,ticks_info,ticks_all);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(TimeCurrent()<ExtNextBar)
      return;
//---
   ExtNextBar=NextBarTime(TimeCurrent(),_Period);
   int copied=CopyTime(_Symbol,_Period,0,7,ExtTimes);
   if(copied>1)
     {
      ulong from_msc=ExtTimes[0]*1000;
      ulong to_msc=ExtTimes[copied-1]*1000;
      int   ticks_trade=CopyTicksRange(_Symbol,ExtTicksTrade,COPY_TICKS_TRADE,from_msc,to_msc);
      int   ticks_info=CopyTicksRange(_Symbol,ExtTicksInfo,COPY_TICKS_INFO,from_msc,to_msc);
      int   ticks_all=CopyTicksRange(_Symbol,ExtTicksAll,COPY_TICKS_ALL,from_msc,to_msc);
      PrintFormat("%s - %s  ticks_trade=%d  ticks_info=%d  ticks_all=%d",TimeToString(ExtTimes[0]),TimeToString(ExtTimes[copied-1]),ticks_trade,ticks_info,ticks_all);
     }
   else
      PrintFormat("copied=%d  last_error=%d",copied,GetLastError());
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
datetime NextBarTime(datetime last_time,ENUM_TIMEFRAMES period)
  {
   int         period_seconds=PeriodSeconds(period);
   int         shift;
   MqlDateTime str_time;
//---
   switch(period)
     {
      case PERIOD_MN1 :
         TimeToStruct(last_time,str_time);
         str_time.day=1;
         str_time.hour=0;
         str_time.min=0;
         str_time.sec=0;
         str_time.mon++;
         if(str_time.mon>12)
           {
            str_time.mon=1;
            str_time.year++;
           }
         last_time=StructToTime(str_time);
         break;
      case PERIOD_W1 :
         shift=int(last_time%period_seconds);
         shift+=(shift>=(3*86400))?(-3*86400):(4*86400);
         last_time-=shift;
         last_time+=period_seconds;
         break;
      default :
         last_time/=period_seconds;
         last_time++;
         last_time*=period_seconds;
     }
//---
   return(last_time);
  }
//+------------------------------------------------------------------+

In OnDeinit "Testschuss" auf Ihre Daten

Hier ist das Testprotokoll

2019.02.19 15:12:32.360 127.0.0.1       login (build 1996)
2019.02.19 15:12:32.386 Network 3860 bytes of account info loaded
2019.02.19 15:12:32.386 Network 1482 bytes of tester parameters loaded
2019.02.19 15:12:32.386 Network 188 bytes of input parameters loaded
2019.02.19 15:12:32.429 Network 26288 bytes of symbols list loaded
2019.02.19 15:12:32.429 Tester  expert file added: Experts\Tester\TestCopyTicksRange.ex5. 16251 bytes loaded
2019.02.19 15:12:32.446 Tester  initial deposit 100000.00 RUR, leverage 1:100
2019.02.19 15:12:32.451 Tester  successfully initialized
2019.02.19 15:12:32.451 Network 35 Kb of total initialization data received
2019.02.19 15:12:32.451 Tester  Intel Xeon  E5-2630 v4 @ 2.20 GHz, 65457 MB
2019.02.19 15:12:32.455 Symbols RTS-3.19: symbol to be synchronized
2019.02.19 15:12:32.455 Symbols RTS-3.19: symbol synchronized, 3864 bytes of symbol info received
2019.02.19 15:12:32.460 History RTS-3.19: load 31 bytes of history data to synchronize in 0:00:00.003
2019.02.19 15:12:32.460 History RTS-3.19: history synchronized from 2017.05.04 to 2019.02.18
2019.02.19 15:12:32.460 Ticks   RTS-3.19: ticks synchronization started
2019.02.19 15:12:32.467 Ticks   RTS-3.19: load 38 bytes of tick data to synchronize in 0:00:00.000
2019.02.19 15:12:32.467 Ticks   RTS-3.19: history ticks synchronized from 2019.01.03 to 2019.02.15
2019.02.19 15:12:32.500 History RTS-3.19,Daily: history cache allocated for 174 bars and contains 162 bars from 2018.01.03 00:00 to 2019.01.31 00:00
2019.02.19 15:12:32.500 History RTS-3.19,Daily: history begins from 2018.01.03 00:00
2019.02.19 15:12:32.579 Tester  RTS-3.19,Daily (Open-Broker): generating based on real ticks
2019.02.19 15:12:32.579 Tester  RTS-3.19,Daily: testing of Experts\Tester\TestCopyTicksRange.ex5 from 2019.02.01 00:00 to 2019.02.18 00:00 started
2019.02.19 15:12:33.020 Ticks   RTS-3.19 : real ticks begin from 2019.01.03 00:00:00
2019.02.19 15:12:33.780 TestCopyTicksRange (RTS-3.19,D1)        2019.02.04 09:45:01   2019.01.24 00:00 - 2019.02.01 00:00  ticks_trade=946026  ticks_info=309512  ticks_all=1255538
2019.02.19 15:12:34.370 TestCopyTicksRange (RTS-3.19,D1)        2019.02.05 00:00:41   2019.01.25 00:00 - 2019.02.04 00:00  ticks_trade=915869  ticks_info=297066  ticks_all=1212935
2019.02.19 15:12:34.938 TestCopyTicksRange (RTS-3.19,D1)        2019.02.06 00:00:30   2019.01.28 00:00 - 2019.02.05 00:00  ticks_trade=907758  ticks_info=287220  ticks_all=1194978
2019.02.19 15:12:35.517 TestCopyTicksRange (RTS-3.19,D1)        2019.02.07 00:02:28   2019.01.29 00:00 - 2019.02.06 00:00  ticks_trade=897199  ticks_info=280798  ticks_all=1177997
2019.02.19 15:12:36.086 TestCopyTicksRange (RTS-3.19,D1)        2019.02.08 00:03:00   2019.01.30 00:00 - 2019.02.07 00:00  ticks_trade=858459  ticks_info=270151  ticks_all=1128610
2019.02.19 15:12:36.639 TestCopyTicksRange (RTS-3.19,D1)        2019.02.11 09:45:04   2019.01.31 00:00 - 2019.02.08 00:00  ticks_trade=847118  ticks_info=265898  ticks_all=1113016
2019.02.19 15:12:37.160 TestCopyTicksRange (RTS-3.19,D1)        2019.02.12 00:04:45   2019.02.01 00:00 - 2019.02.11 00:00  ticks_trade=804551  ticks_info=248516  ticks_all=1053067
2019.02.19 15:12:37.683 TestCopyTicksRange (RTS-3.19,D1)        2019.02.13 00:00:58   2019.02.04 00:00 - 2019.02.12 00:00  ticks_trade=800227  ticks_info=237735  ticks_all=1037962
2019.02.19 15:12:38.304 TestCopyTicksRange (RTS-3.19,D1)        2019.02.14 00:02:42   2019.02.05 00:00 - 2019.02.13 00:00  ticks_trade=842496  ticks_info=243062  ticks_all=1085558
2019.02.19 15:12:38.992 TestCopyTicksRange (RTS-3.19,D1)        2019.02.15 00:04:54   2019.02.06 00:00 - 2019.02.14 00:00  ticks_trade=922073  ticks_info=258989  ticks_all=1181062
2019.02.19 15:12:39.017 Tester  final balance 100000.00 RUR
2019.02.19 15:12:39.512 TestCopyTicksRange (RTS-3.19,D1)        2019.02.15 23:49:59   2019.02.08 11:16 - 2019.02.14 23:48  ticks_trade=856695  ticks_info=240266  ticks_all=1096961
2019.02.19 15:12:39.578 Tester  RTS-3.19,Daily: 2187070 ticks, 11 bars generated. Environment synchronized in 0:00:00.101. Test passed in 0:00:07.118 (including ticks preprocessing 0:00:00.453).
2019.02.19 15:12:39.578 Tester  RTS-3.19,Daily: total time from login to stop testing 0:00:07.219 (including 0:00:00.101 for history data synchronization)
2019.02.19 15:12:39.578 Tester  570 Mb memory used including 0.47 Mb of history data, 128 Mb of tick data
2019.02.19 15:12:39.578 Tester  log file "E:\MetaTrader5\Client\MetaTrader5Terminal\Final\Tester\Agent-127.0.0.1-3000\logs\20190219.log" written
2019.02.19 15:12:39.594         test Experts\Tester\TestCopyTicksRange.ex5 on RTS-3.19,Daily thread finished
2019.02.19 15:12:44.676 127.0.0.1       prepare for shutdown

Alles wird kopiert.

 
Slava:

Schrieb einen Verifizierungsexperten auf meinen Knien

Es ist schade, dass der vollständige Code nicht zur Reproduktion durch die Meldenden zur Verfügung gestellt wird.

 
Aleksey Vyazmikin:

Aber nein, der Fehler tauchte an der gleichen Stelle wieder auf...

Wahrscheinlich nur Punkte mit denselben Koordinaten... warum diese Prüfung nicht in der Klasse ist...

Diese Prüfung hat geholfen...

int Size_arr_X=ArraySize(X);

   if(Size_arr_X>1)
     {
      int Marker=0;
      for(int i=0;i<Size_arr_X;i++)
        {
         if(X[0]!=X[i] && Y[0]!=Y[i]){Marker=1;break;}
        }
      if(Marker>0)
        {
         A.PointsFill(false);//Устанавливает флаг, указывающий, нужно ли выполнять заливку для точек, определяющих кривую при отрисовке точками. 
         A.PointsType(POINT_CIRCLE);//Устанавливает флаг, указывающий на тип точек, использующихся при отрисовке кривой точками.

         A.TrendLineVisible(true);//Устанавливает флаг, который определяет видимость трендовой линии
         A.TrendLineColor(ColorToARGB(Red,256));//Устанавливает цвет трендовой линии для кривой
        }
     }
 
Slava:

Geschrieben auf dem Knie eines Experten-Checkers

In OnDeinit "Testschuss" auf Ihre Daten

Hier ist das Testprotokoll

Alles wird kopiert.

Ich habe keinen Expert Advisor, ich habe einen Indikator! Ich denke, deshalb ist das Ergebnis auch anders.

 
Slava:
Wie lange dauert der Test? Ist die Zeit dieses Testers später als 2019.02.14 23:48?

Ja, die Zeit des Testers ist später.

 
Dmitriy Burlachenko:

Ich habe keinen Experten, ich habe einen Indikator! Ich denke, das führt zu einem anderen Ergebnis.

Ich habe Ihre Aussage über den Indikator nicht gesehen.
 
Dmitriy Burlachenko:

Ich habe keinen Experten, ich habe einen Indikator! Ich denke, das führt zu einem anderen Ergebnis.

Kein Problem. Hier ist der Indikator

//+------------------------------------------------------------------+
//|                                           TestCopyTicksRange.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
datetime ExtNextBar=0;
datetime ExtTimes[];
MqlTick  ExtTicksAll[];
MqlTick  ExtTicksTrade[];
MqlTick  ExtTicksInfo[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ExtNextBar=NextBarTime(TimeCurrent(),_Period);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| deinitialization function                                        |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   datetime from=D'2019.02.08 11:16';
   datetime to=D'2019.02.14 23:48';
   ulong    from_msc=from*1000;
   ulong    to_msc=to*1000;
   int      ticks_trade=CopyTicksRange(_Symbol,ExtTicksTrade,COPY_TICKS_TRADE,from_msc,to_msc);
   int      ticks_info=CopyTicksRange(_Symbol,ExtTicksInfo,COPY_TICKS_INFO,from_msc,to_msc);
   int      ticks_all=CopyTicksRange(_Symbol,ExtTicksAll,COPY_TICKS_ALL,from_msc,to_msc);
   PrintFormat("%s - %s  ticks_trade=%d  ticks_info=%d  ticks_all=%d",TimeToString(from),TimeToString(to),ticks_trade,ticks_info,ticks_all);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(TimeCurrent()<ExtNextBar)
      return(rates_total);
//---
   ExtNextBar=NextBarTime(TimeCurrent(),_Period);
   int copied=CopyTime(_Symbol,_Period,0,7,ExtTimes);
   if(copied>1)
     {
      ulong from_msc=ExtTimes[0]*1000;
      ulong to_msc=ExtTimes[copied-1]*1000;
      int   ticks_trade=CopyTicksRange(_Symbol,ExtTicksTrade,COPY_TICKS_TRADE,from_msc,to_msc);
      int   ticks_info=CopyTicksRange(_Symbol,ExtTicksInfo,COPY_TICKS_INFO,from_msc,to_msc);
      int   ticks_all=CopyTicksRange(_Symbol,ExtTicksAll,COPY_TICKS_ALL,from_msc,to_msc);
      PrintFormat("%s - %s  ticks_trade=%d  ticks_info=%d  ticks_all=%d",TimeToString(ExtTimes[0]),TimeToString(ExtTimes[copied-1]),ticks_trade,ticks_info,ticks_all);
     }
   else
      PrintFormat("copied=%d  last_error=%d",copied,GetLastError());
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
datetime NextBarTime(datetime last_time,ENUM_TIMEFRAMES period)
  {
   int         period_seconds=PeriodSeconds(period);
   int         shift;
   MqlDateTime str_time;
//---
   switch(period)
     {
      case PERIOD_MN1 :
         TimeToStruct(last_time,str_time);
         str_time.day=1;
         str_time.hour=0;
         str_time.min=0;
         str_time.sec=0;
         str_time.mon++;
         if(str_time.mon>12)
           {
            str_time.mon=1;
            str_time.year++;
           }
         last_time=StructToTime(str_time);
         break;
      case PERIOD_W1 :
         shift=int(last_time%period_seconds);
         shift+=(shift>=(3*86400))?(-3*86400):(4*86400);
         last_time-=shift;
         last_time+=period_seconds;
         break;
      default :
         last_time/=period_seconds;
         last_time++;
         last_time*=period_seconds;
     }
//---
   return(last_time);
  }
//+------------------------------------------------------------------+

Hier sind die Protokolle.

2019.02.19 17:17:41.653 Startup MetaTester 5 x64 build 1996 (18 Feb 2019)
2019.02.19 17:17:41.666 Server  MetaTester 5 started on 127.0.0.1:3000
2019.02.19 17:17:41.666 Startup initialization finished
2019.02.19 17:17:42.116 127.0.0.1       login (build 1996)
2019.02.19 17:17:42.193 Network 3860 bytes of account info loaded
2019.02.19 17:17:42.193 Network 1482 bytes of tester parameters loaded
2019.02.19 17:17:42.193 Network 188 bytes of input parameters loaded
2019.02.19 17:17:42.226 Network 26303 bytes of symbols list loaded
2019.02.19 17:17:42.226 Tester  expert file added: Indicators\TestCopyTicksRange.ex5. 15937 bytes loaded
2019.02.19 17:17:42.261 Tester  successfully initialized
2019.02.19 17:17:42.261 Network 35 Kb of total initialization data received
2019.02.19 17:17:42.261 Tester  Intel Xeon  E5-2630 v4 @ 2.20 GHz, 65457 MB
2019.02.19 17:17:42.286 Symbols RTS-3.19: symbol to be synchronized
2019.02.19 17:17:42.287 Symbols RTS-3.19: symbol synchronized, 3864 bytes of symbol info received
2019.02.19 17:17:42.288 History RTS-3.19: history synchronization started
2019.02.19 17:17:42.294 History RTS-3.19: load 31 bytes of history data to synchronize in 0:00:00.004
2019.02.19 17:17:42.294 History RTS-3.19: history synchronized from 2017.05.04 to 2019.02.18
2019.02.19 17:17:42.294 Ticks   RTS-3.19: ticks synchronization started
2019.02.19 17:17:44.303 Ticks   RTS-3.19: load 38 bytes of tick data to synchronize in 0:00:02.016
2019.02.19 17:17:44.303 Ticks   RTS-3.19: history ticks synchronized from 2019.01.03 to 2019.02.15
2019.02.19 17:17:44.351 History RTS-3.19,Daily: history cache allocated for 174 bars and contains 162 bars from 2018.01.03 00:00 to 2019.01.31 00:00
2019.02.19 17:17:44.351 History RTS-3.19,Daily: history begins from 2018.01.03 00:00
2019.02.19 17:17:44.430 Tester  RTS-3.19,Daily (Open-Broker): generating based on real ticks
2019.02.19 17:17:44.430 Tester  RTS-3.19,Daily: testing of Indicators\TestCopyTicksRange.ex5 from 2019.02.01 00:00 to 2019.02.18 00:00 started
2019.02.19 17:17:44.939 Ticks   RTS-3.19 : real ticks begin from 2019.01.03 00:00:00
2019.02.19 17:17:45.938 TestCopyTicksRange (RTS-3.19,D1)        2019.02.04 09:45:05   2019.01.24 00:00 - 2019.02.01 00:00  ticks_trade=946026  ticks_info=309512  ticks_all=1255538
2019.02.19 17:17:46.741 TestCopyTicksRange (RTS-3.19,D1)        2019.02.05 00:04:00   2019.01.25 00:00 - 2019.02.04 00:00  ticks_trade=915869  ticks_info=297066  ticks_all=1212935
2019.02.19 17:17:47.554 TestCopyTicksRange (RTS-3.19,D1)        2019.02.06 00:00:32   2019.01.28 00:00 - 2019.02.05 00:00  ticks_trade=907758  ticks_info=287220  ticks_all=1194978
2019.02.19 17:17:48.324 TestCopyTicksRange (RTS-3.19,D1)        2019.02.07 00:02:28   2019.01.29 00:00 - 2019.02.06 00:00  ticks_trade=897199  ticks_info=280798  ticks_all=1177997
2019.02.19 17:17:49.128 TestCopyTicksRange (RTS-3.19,D1)        2019.02.08 00:03:17   2019.01.30 00:00 - 2019.02.07 00:00  ticks_trade=858459  ticks_info=270151  ticks_all=1128610
2019.02.19 17:17:49.927 TestCopyTicksRange (RTS-3.19,D1)        2019.02.11 09:45:57   2019.01.31 00:00 - 2019.02.08 00:00  ticks_trade=847118  ticks_info=265898  ticks_all=1113016
2019.02.19 17:17:50.666 TestCopyTicksRange (RTS-3.19,D1)        2019.02.12 09:45:00   2019.02.01 00:00 - 2019.02.11 00:00  ticks_trade=804551  ticks_info=248516  ticks_all=1053067
2019.02.19 17:17:51.380 TestCopyTicksRange (RTS-3.19,D1)        2019.02.13 00:00:59   2019.02.04 00:00 - 2019.02.12 00:00  ticks_trade=800227  ticks_info=237735  ticks_all=1037962
2019.02.19 17:17:52.268 TestCopyTicksRange (RTS-3.19,D1)        2019.02.14 09:46:55   2019.02.05 00:00 - 2019.02.13 00:00  ticks_trade=842496  ticks_info=243062  ticks_all=1085558
2019.02.19 17:17:53.255 TestCopyTicksRange (RTS-3.19,D1)        2019.02.15 09:45:19   2019.02.06 00:00 - 2019.02.14 00:00  ticks_trade=922073  ticks_info=258989  ticks_all=1181062
2019.02.19 17:17:53.460 Tester  RTS-3.19,Daily: 2187070 ticks, 11 bars generated. Environment synchronized in 0:00:02.179. Test passed in 0:00:09.167 (including ticks preprocessing 0:00:00.454).
2019.02.19 17:17:53.460 Tester  RTS-3.19,Daily: total time from login to stop testing 0:00:11.346 (including 0:00:02.179 for history data synchronization)
2019.02.19 17:17:53.460 Tester  585 Mb memory used including 0.47 Mb of history data, 128 Mb of tick data
2019.02.19 17:17:53.460 Tester  log file "E:\MetaTrader5\Client\MetaTrader5Terminal\Final\Tester\Agent-127.0.0.1-3000\logs\20190219.log" written
2019.02.19 17:17:53.476         test Indicators\TestCopyTicksRange.ex5 on RTS-3.19,Daily thread finished
2019.02.19 17:17:56.526 127.0.0.1       prepare for shutdown
2019.02.19 17:18:07.970 Tester  close visual tester window
2019.02.19 17:18:07.970 Tester  shutdown tester machine
2019.02.19 17:18:08.951 Server  MetaTester 5 stopped

True OnDeinit mit Kontrollanforderung hat nicht funktioniert. Wegen der Prüfung des Indikators. OnDeinit nur während der Fehlersuche

Grund der Beschwerde: