Errores, fallos, preguntas - página 2387

 

Error en la biblioteca estándar

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

Vinculado al código.

      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));//Устанавливает цвет трендовой линии для кривой

Todavía no entiendo la razón - probablemente un array con coordenadas (0;0)...

La comprobación del tamaño de la matriz ayudó - sólo construye una línea con más de un punto.
 
Dmitriy Burlachenko:

Hola a todos.

Desarrolladores y gurús, por favor, aconsejen. CopyTicksRange en el probador en datos históricos en modo "Todos los ticks" y "Cada tick basado en ticks reales" devuelve 0 ticks y código de error 0 - ¿por qué?

MT5 build 1996. El símbolo es RTS-3.19. El corredor es Otkrytie. La cuenta es una cuenta real. El marco temporal es correcto. Ahí está la historia de este periodo.

"¡Error al recibir el historial de garrapatas ! De 2019.02.08 11:16 a 2019.02.14 23:48. Código de error: 0. Operación completada con éxito" :)

Al mismo tiempo, el mismo código da honestamente todos los ticks en el probador en datos reales y en línea funciona sin problemas. ¿Qué estoy haciendo mal?
¿Cuál es el tiempo de prueba? ¿Esta hora de prueba es posterior a 2019.02.14 23:48?
 

Pero no, el error volvió a aparecer en el mismo lugar...

Probablemente sólo los puntos con las mismas coordenadas... por qué este cheque no está en la clase...

 
Dmitriy Burlachenko:

Hola a todos.

Desarrolladores y gurús, por favor, aconsejen. CopyTicksRange en el probador en datos históricos en modo "Todos los ticks" y "Cada tick basado en ticks reales" devuelve 0 ticks y código de error 0 - ¿por qué?

MT5 build 1996. El símbolo es RTS-3.19. El corredor es Otkrytie. La cuenta es una cuenta real. El marco temporal es correcto. Ahí está la historia de este periodo.

"¡Error al recibir el historial de garrapatas ! De 2019.02.08 11:16 a 2019.02.14 23:48. Código de error: 0. Operación completada con éxito" :)

Al mismo tiempo, el mismo código da honestamente todos los ticks en el probador en datos reales y en línea funciona sin problemas. ¿Qué estoy haciendo mal?

He escrito un Asesor Experto arrugado

//+------------------------------------------------------------------+
//|                                           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);
  }
//+------------------------------------------------------------------+

En OnDeinit "tiro de prueba" en sus fechas

Aquí está el registro de la prueba

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

Todo está copiado.

 
Slava:

Escribió un experto en verificación sobre mis rodillas

Es una mierda que el código completo no esté disponible para su reproducción por parte de los informantes.

 
Aleksey Vyazmikin:

Pero no, el error volvió a aparecer en el mismo lugar...

Probablemente sólo los puntos con las mismas coordenadas... por qué este cheque no está en la clase...

Esta comprobación ayudó...

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:

Escrito en la rodilla de un revisor experto

En OnDeinit "tiro de prueba" en sus fechas

Aquí está el registro de pruebas

Todo está copiado.

No tengo un Asesor Experto, ¡tengo un indicador! Creo que por eso el resultado es diferente.

 
Slava:
¿Cuál es el tiempo de prueba? ¿Esta hora de prueba es posterior a 2019.02.14 23:48?

Sí, el tiempo de prueba es más tarde.

 
Dmitriy Burlachenko:

No tengo un experto, ¡tengo un indicador! Creo que eso hace que el resultado sea diferente.

No he visto su declaración sobre el indicador
 
Dmitriy Burlachenko:

No tengo un experto, ¡tengo un indicador! Creo que eso hace que el resultado sea diferente.

No hay problema. Este es el indicador

//+------------------------------------------------------------------+
//|                                           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);
  }
//+------------------------------------------------------------------+

Aquí están los registros.

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 con solicitud de control no funcionó. Debido a las pruebas del indicador. OnDeinit sólo durante la depuración