Errors, bugs, questions - page 2387

 

Error in the standard library

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

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

Don't understand the reason yet - probably an array with coordinate (0;0)...

Checking for array size helped - only builds a line with more than one point.
 
Dmitriy Burlachenko:

Hi all.

Developers and gurus, please advise. CopyTicksRange in tester on historical data in "All ticks" and "Every tick based on real ticks" mode returns 0 ticks and error code 0 - why?

MT5 build 1996. The symbol is RTS-3.19. The broker is Otkrytie. The account is a real account. The time frame is correct. There is the history for this period.

"Error receiving tick history ! From 2019.02.08 11:16 to 2019.02.14 23:48. Error code: 0. Operation completed successfully." :)

At the same time, the same code honestly gives all ticks in tester on real data and online works without problems. What am I doing wrong?
What is the tester time? Is this tester time later than 2019.02.14 23:48?
 

But no, the error came up again in the same place...

Probably only points with the same coordinates... why this check is not in the class...

 
Dmitriy Burlachenko:

Hi all.

Developers and gurus, please advise. CopyTicksRange in tester on historical data in "All ticks" and "Every tick based on real ticks" mode returns 0 ticks and error code 0 - why?

MT5 build 1996. The symbol is RTS-3.19. The broker is Otkrytie. The account is a real account. The time frame is correct. There is the history for this period.

"Error receiving tick history ! From 2019.02.08 11:16 to 2019.02.14 23:48. Error code: 0. Operation completed successfully." :)

At the same time, the same code honestly gives all ticks in tester on real data and online works without problems. What am I doing wrong?

I have written a crumpled up Expert Advisor

//+------------------------------------------------------------------+
//|                                           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 "test shot" on your dates

Here is the test log

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

Everything is copied.

 
Slava:

Wrote a verification expert on my knees

It sucks that the full code is not made available for reproduction by those reporting.

 
Aleksey Vyazmikin:

But no, the error came up again in the same place...

Probably only points with the same coordinates... why this check is not in the class...

This check helped...

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:

Written on the knee of an expert checker

In OnDeinit "test shot" on your dates

Here is the testing log

Everything is copied.

I don't have an Expert Advisor, I have an indicator! I think that's why the result is different.

 
Slava:
What is the tester time? Is this tester time later than 2019.02.14 23:48?

Yes, the tester time is later.

 
Dmitriy Burlachenko:

I don't have an expert, I have an indicator! I think that makes for a different result.

I did not see your statement about the indicator
 
Dmitriy Burlachenko:

I don't have an expert, I have an indicator! I think that makes for a different result.

No problem. Here is the indicator

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

Here are the logs.

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 with control request didn't work. Because of the testing of the indicator. OnDeinit only during debugging

Reason: