Почему CopyTicks/CopyTicksRange показывают разные результаты на МТ5 и на Тестере?

 

Можно подумать, что разработчики CopyTicks сделали специально, чтобы на тестере тиковые данные скачивались до начала даты тестирования.

А если при CopyTicksRange задаем начало и конец скачивания, то на МТ5 нормально работает, а на тестере никак не хочет.

Всё это так чтобы предотвратить мошенничество, или я что-то неправильно делаю?


int OnInit()
{
   MqlTick tick[];  

//   datetime start=D'2019.12.17 00:00:00';
//   datetime   end=D'2019.12.19 00:00:00';
//   int k=CopyTicksRange(_Symbol,tick, COPY_TICKS_INFO, start*1000,end*1000);

   int k=CopyTicks(_Symbol,tick, COPY_TICKS_INFO, 0,0);
   
   Print("k=",k); if(k<=0) return(INIT_FAILED);
   Print(tick[0].time,"   ",tick[k-1].time);  
   Print("-----------------------------------------------");

    for(int i=k-6; i<k; i++)
    {
       Print(i,". ",tick[i].ask,"   ",tick[i].bid,"    ", tick[i].time);
    }
   Print("-----------------------------------------------");
 
      return(INIT_SUCCEEDED);
}


Вот результаты для  CopyTicksRange

   datetime start=D'2019.12.17 00:00:00';
   datetime   end=D'2019.12.19 00:00:00';
   int k=CopyTicksRange(_Symbol,tick, COPY_TICKS_INFO, start*1000,end*1000);

На  МТ5

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) k=161005

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) 2019.12.17 00:05:00   2019.12.18 23:58:58

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) -----------------------------------------------

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) 160999. 1.11146   1.11124    2019.12.18 23:58:49

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) 161000. 1.11145   1.11124    2019.12.18 23:58:49

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) 161001. 1.11144   1.11124    2019.12.18 23:58:49

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) 161002. 1.11145   1.11124    2019.12.18 23:58:54

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) 161003. 1.11144   1.11124    2019.12.18 23:58:57

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) 161004. 1.11143   1.11124    2019.12.18 23:58:58

2019.12.22 11:51:46.581 Tick (EURUSD.m,H1) -----------------------------------------------


Тоже самое на тестере

2019.12.22 11:49:52.174 Core 1 EURUSD.m,M1: testing of Experts\Tick.ex5 from 2019.12.17 00:00 to 2019.12.22 00:00 started

2019.12.22 11:49:52.174 Core 1 2019.12.17 00:00:00   k=0

2019.12.22 11:49:52.174 Core 1 tester stopped because OnInit returns non-zero code

2019.12.22 11:49:52.174 Core 1 log file "C:\Users\User\AppData\Roaming\MetaQuotes\Tester\0922A56CC3B5FB9BF1851938DA831C16\Agent-127.0.0.1-3000\logs\20191222.log" written

2019.12.22 11:49:52.180 Core 1 connection closed


 
Если Вы тестируете с 2019.12.01 по 2019.12.20, то будет закачан история с 2018.01.01 по 2019.12.20 и тики точно в диапазоне тестирования, то есть с 2019.12.01 по 2019.12.20. Вы можете посмотреть, как синхронизирована история и как синхронизированы тики в логах тестерного агента.

OnInit запускается на тестерную дату 2019.01.01 0:00:00 и тиков на этот момент просто нету
 
Slava:
Если Вы тестируете с 2019.12.01 по 2019.12.20, то будет закачан история с 2018.01.01 по 2019.12.20 и тики точно в диапазоне тестирования, то есть с 2019.12.01 по 2019.12.20. Вы можете посмотреть, как синхронизирована история и как синхронизированы тики в логах тестерного агента.

OnInit запускается на тестерную дату 2019.01.01 0:00:00 и тиков на этот момент просто нету

Спасибо за ответ, но я не очень то понял как всё это работает и почему так работает.

У меня такой вопрос: почему на тестере тиковая история скачивается только до начала даты тестирования ?

Вот есть такой пример:

int OnInit()
{
   MqlTick tick[];  

  datetime start=D'2019.03.06 00:00:00';

  int k=CopyTicks(_Symbol,tick, COPY_TICKS_INFO, start*1000, 200000000);
   
   Print("k=",k); if(k<=0) return(INIT_FAILED);
   Print(tick[0].time,"   ",tick[k-1].time);  
   Print("-----------------------------------------------");

    for(int i=k-6; i<k; i++)
    {
       Print(i,". ",tick[i].ask,"   ",tick[i].bid,"    ", tick[i].time);
    }
   Print("-----------------------------------------------");
 
      return(INIT_SUCCEEDED);
}

И вот результаты:

на МТ5

2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      k=19627650
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      2019.03.06 00:00:12   2019.12.20 23:58:58
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      -----------------------------------------------
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      19627644. 1.10763   1.10745    2019.12.20 23:58:53
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      19627645. 1.10764   1.10745    2019.12.20 23:58:56
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      19627646. 1.10764   1.10746    2019.12.20 23:58:57
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      19627647. 1.10765   1.10746    2019.12.20 23:58:57
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      19627648. 1.10766   1.10747    2019.12.20 23:58:58
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      19627649. 1.10767   1.10747    2019.12.20 23:58:58
2019.12.22 15:23:55.849 Tick (EURUSD.m,M1)      -----------------------------------------------


на тестере

2019.12.22 15:43:52.404 Core 1  EURUSD.m: history ticks synchronized from 2015.01.02 to 2019.12.20
2019.12.22 15:43:52.404 Core 1  EURUSD.m,M1: history cache allocated for 732844 bars and contains 695814 bars from 2018.01.02 10:00 to 2019.11.15 23:58
2019.12.22 15:43:52.404 Core 1  EURUSD.m,M1: history begins from 2018.01.02 10:00
2019.12.22 15:43:52.404 Core 1  EURUSD.m,M1 (RoboForex-MetaTrader 5): generating based on real ticks
2019.12.22 15:43:52.404 Core 1  EURUSD.m,M1: testing of Experts\Tick.ex5 from 2019.11.17 00:00 to 2019.12.22 00:00 started
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   k=17520461
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   2019.03.06 00:00:12   2019.11.15 23:58:59
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   -----------------------------------------------
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   17520455. 1.10549   1.10514    2019.11.15 23:58:47
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   17520456. 1.1055   1.10514    2019.11.15 23:58:49
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   17520457. 1.1055   1.10515    2019.11.15 23:58:49
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   17520458. 1.1055   1.10512    2019.11.15 23:58:59
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   17520459. 1.1055   1.10514    2019.11.15 23:58:59
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   17520460. 1.1055   1.10515    2019.11.15 23:58:59
2019.12.22 15:43:52.404 Core 1  2019.11.17 00:00:00   -----------------------------------------------
 
Потому что на тестере тиковая история нужна только для формирования новых баров и для подачи реального тика в OnTick. Это 99.9 процентов использования.

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

И попробуйте копировать тики не из OnInit. На момент OnInit база тиков может быть ещё не поднята.
 
Slava:
Потому что на тестере тиковая история нужна только для формирования новых баров и для подачи реального тика в OnTick. Это 99.9 процентов использования.

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

И попробуйте копировать тики не из OnInit. На момент OnInit база тиков может быть ещё не поднята.

Меня интересует чтобы тиковая история скачивалась до текущей даты, как это происходит на МТ5, а не глубина.

Если скачивание делается из OnTick, то та же картина: тики скачиваются до начала даты тестирования. Я использую тестирование только на реальных тиках и для меня никакие бары не существуют.

Бары нужны только для масштаба, чтобы отобразить графики, а не для торговли.

Получается что на тестере получить тиковую историю до текущей даты не возможно ?

 
Petros Shatakhtsyan:

Меня интересует чтобы тиковая история скачивалась до текущей даты, как это происходит на МТ5, а не глубина.

Если скачивание делается из OnTick, то та же картина: тики скачиваются до начала даты тестирования. Я использую тестирование только на реальных тиках и для меня никакие бары не существуют.

Бары нужны только для масштаба, чтобы отобразить графики, а не для торговли.

Получается что на тестере получить тиковую историю до текущей даты не возможно ?

На тестере получить тиковую историю до текущей даты возможно. Ещё раз повторю, попробуйте сделать это не из OnInit. Во-вторых, соответствующая тиковая история уже должна быть доступна тестерному агенту.
 
Slava:
На тестере получить тиковую историю до текущей даты возможно. Ещё раз повторю, попробуйте сделать это не из OnInit. Во-вторых, соответствующая тиковая история уже должна быть доступна тестерному агенту.

Тот же пример вставил в OnTick. Тики скачаются до начала даты тестирования. 

Если мы в CopyTicksRange задаем даты начала и конец скачивания, то на тестере они не должны зависеть, какие даты начало и конец тестирования выбраны. Т.е. эти функции на тестере не работают так, как на МТ5.

 
Petros Shatakhtsyan:

Тот же пример вставил в OnTick. Тики скачаются до начала даты тестирования. 

Если мы в CopyTicksRange задаем даты начала и конец скачивания, то на тестере они не должны зависеть, какие даты начало и конец тестирования выбраны. Т.е. эти функции на тестере не работают так, как на МТ5.

доброго дня. Поясните понятия "на тестере" и "на МТ5".

не понятно их отличие...

 

Добрался до компьютера с клиентским терминалом.

Вот проверочный эксперт

int ExtTicksCounter;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   MqlTick ticks[100];
   int cnt=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,100);
   if(cnt>0)
      PrintFormat("OnInit: copied %d ticks from %s.%03d",cnt,TimeToString(ticks[0].time,TIME_DATE|TIME_SECONDS),ticks[0].time_msc%1000);
//---
   ExtTicksCounter=0;
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Print("OnDeinit with code ",reason);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick ticks[100];
   int cnt=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,100);
   if(cnt>0 && cnt<=100 && ExtTicksCounter<=200)
      PrintFormat("OnTick: copied %d ticks from %s.%03d, ExtCounter=%d",cnt,TimeToString(ticks[0].time,TIME_DATE|TIME_SECONDS),ticks[0].time_msc%1000,ExtTicksCounter);
//---
   ExtTicksCounter++;
  }
//+------------------------------------------------------------------+

Вот настройки тестирования

[Tester]
Expert=Tester\TestCopyTicks.ex5
Symbol=EURUSD
Period=M5
Optimization=0
Model=4
FromDate=2019.01.01
ToDate=2019.10.01
ForwardMode=0
Deposit=10000
Currency=USD
ProfitInPips=0
Leverage=100
ExecutionMode=0
OptimizationCriterion=0
Visual=1
[TesterInputs]

Вот полный лог тестирования.

2019.12.23 09:25:05.599 Startup MetaTester 5 x64 build 2284 (18 Dec 2019)
2019.12.23 09:25:05.601 Optimization    54126 Mb available, 100 blocks set for ticks generating
2019.12.23 09:25:05.602 Server  MetaTester 5 started on 127.0.0.1:3000
2019.12.23 09:25:05.602 Startup initialization finished
2019.12.23 09:25:06.065 127.0.0.1       login (build 2284)
2019.12.23 09:25:06.071 Network 4372 bytes of account info loaded
2019.12.23 09:25:06.071 Network 1482 bytes of tester parameters loaded
2019.12.23 09:25:06.071 Network 188 bytes of input parameters loaded
2019.12.23 09:25:06.072 Network 685 bytes of symbols list loaded
2019.12.23 09:25:06.072 Tester  expert file added: Experts\Tester\TestCopyTicks.ex5. 14760 bytes loaded
2019.12.23 09:25:06.086 Tester  54112 Mb available, 676 blocks set for ticks generating
2019.12.23 09:25:06.086 Tester  initial deposit 10000.00 USD, leverage 1:100
2019.12.23 09:25:06.092 Tester  successfully initialized
2019.12.23 09:25:06.092 Network 15 Kb of total initialization data received
2019.12.23 09:25:06.093 Tester  Intel Xeon  E5-2630 v4 @ 2.20GHz, 65457 MB
2019.12.23 09:25:06.116 Symbols EURUSD: symbol to be synchronized
2019.12.23 09:25:06.116 Symbols EURUSD: symbol synchronized, 3720 bytes of symbol info received
2019.12.23 09:25:06.123 History EURUSD: history synchronization started
2019.12.23 09:25:06.128 History EURUSD: load 27 bytes of history data to synchronize in 0:00:00.003
2019.12.23 09:25:06.128 History EURUSD: history synchronized from 2009.01.02 to 2019.11.29
2019.12.23 09:25:06.136 Ticks   EURUSD: ticks synchronization started
2019.12.23 09:25:06.138 Ticks   EURUSD: load 34 bytes of tick data to synchronize in 0:00:00.000
2019.12.23 09:25:06.138 Ticks   EURUSD: history ticks synchronized from 2011.12.19 to 2019.11.29
2019.12.23 09:25:06.305 History EURUSD,M5: history cache allocated for 130600 bars and contains 74431 bars from 2018.01.02 00:00 to 2018.12.31 22:55
2019.12.23 09:25:06.305 History EURUSD,M5: history begins from 2018.01.02 00:00
2019.12.23 09:25:06.348 Tester  EURUSD,M5 (MetaQuotes-Demo): generating based on real ticks
2019.12.23 09:25:06.348 Tester  EURUSD,M5: testing of Experts\Tester\TestCopyTicks.ex5 from 2019.01.01 00:00 to 2019.10.01 00:00 started
2019.12.23 09:25:06.382 TestCopyTicks (EURUSD,M5)       2019.01.01 00:00:00   OnInit: copied 100 ticks from 2018.12.31 22:59:09.562
2019.12.23 09:25:06.549 Ticks   EURUSD : 2019.01.09 23:59 - all the real ticks discarded within a day
2019.12.23 09:25:06.549 Ticks   EURUSD : 2019.01.09 23:59 - 115463 tick prices mismatch for 1440 minute bars
2019.12.23 09:25:06.569 Ticks   EURUSD : 2019.01.10 23:59 - all the real ticks discarded within a day
2019.12.23 09:25:06.569 Ticks   EURUSD : 2019.01.10 23:59 - 108510 tick prices mismatch for 1440 minute bars
2019.12.23 09:25:06.589 Ticks   EURUSD : 2019.01.11 23:59 - all the real ticks discarded within a day
2019.12.23 09:25:06.589 Ticks   EURUSD : 2019.01.11 23:59 - 110360 tick prices mismatch for 1439 minute bars
2019.12.23 09:25:08.261 Ticks   EURUSD : 2019.07.08 23:59 - real ticks absent for 1 minutes out of 1435 total minute bars within a day
2019.12.23 09:25:08.261 Ticks   EURUSD : 2019.07.08 23:59 - real ticks discarded for 1434 minutes out of 1435 total minute bars within a day
2019.12.23 09:25:08.261 Ticks   EURUSD : 2019.07.08 23:59 - 24810 tick prices mismatch for 1434 minute bars
2019.12.23 09:25:08.971 Ticks   EURUSD : real ticks begin from 2011.12.19 00:00:00
2019.12.23 09:25:08.971 Ticks   EURUSD : 2019.01.01 00:00 - 2019.10.01 00:00  real ticks absent for 1 minutes of 278604 total minute bars, every tick generation used
2019.12.23 09:25:08.971 Ticks   EURUSD : 2019.01.01 00:00 - 2019.10.01 00:00  real ticks discarded for 5753 minutes of 278604 total minute bars, every tick generation used
2019.12.23 09:25:08.971 Ticks   EURUSD : 2019.01.01 00:00 - 2019.10.01 00:00  real ticks discarded for 3 whole days
2019.12.23 09:25:08.971 Ticks   EURUSD : 2019.01.01 00:00 - 2019.10.01 00:00  tick prices of 359143 ticks not matched for 5753 minute bars
2019.12.23 09:25:09.018 TestCopyTicks (EURUSD,M5)       2019.01.02 06:00:34   OnTick: copied 100 ticks from 2018.12.31 22:59:09.562, ExtCounter=0
2019.12.23 09:25:09.046 TestCopyTicks (EURUSD,M5)       2019.01.02 06:00:34   OnTick: copied 100 ticks from 2018.12.31 22:59:09.831, ExtCounter=1
2019.12.23 09:25:09.073 TestCopyTicks (EURUSD,M5)       2019.01.02 06:00:35   OnTick: copied 100 ticks from 2018.12.31 22:59:12.442, ExtCounter=2
2019.12.23 09:25:09.101 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:00   OnTick: copied 100 ticks from 2018.12.31 22:59:14.033, ExtCounter=3
2019.12.23 09:25:09.151 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:00   OnTick: copied 100 ticks from 2018.12.31 22:59:15.582, ExtCounter=4
2019.12.23 09:25:09.184 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:00   OnTick: copied 100 ticks from 2018.12.31 22:59:15.655, ExtCounter=5
2019.12.23 09:25:09.216 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:10   OnTick: copied 100 ticks from 2018.12.31 22:59:15.786, ExtCounter=6
2019.12.23 09:25:09.268 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:10   OnTick: copied 100 ticks from 2018.12.31 22:59:16.508, ExtCounter=7
2019.12.23 09:25:09.301 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:10   OnTick: copied 100 ticks from 2018.12.31 22:59:17.528, ExtCounter=8
2019.12.23 09:25:09.334 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:10   OnTick: copied 100 ticks from 2018.12.31 22:59:17.587, ExtCounter=9
2019.12.23 09:25:09.387 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:10   OnTick: copied 100 ticks from 2018.12.31 22:59:17.731, ExtCounter=10
2019.12.23 09:25:09.421 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:10   OnTick: copied 100 ticks from 2018.12.31 22:59:18.563, ExtCounter=11
2019.12.23 09:25:09.455 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:13   OnTick: copied 100 ticks from 2018.12.31 22:59:18.999, ExtCounter=12
2019.12.23 09:25:09.491 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:13   OnTick: copied 100 ticks from 2018.12.31 22:59:21.498, ExtCounter=13
2019.12.23 09:25:09.524 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:14   OnTick: copied 100 ticks from 2018.12.31 22:59:21.548, ExtCounter=14
2019.12.23 09:25:09.557 TestCopyTicks (EURUSD,M5)       2019.01.02 06:01:14   OnTick: copied 100 ticks from 2018.12.31 22:59:21.659, ExtCounter=15
...
2019.12.23 09:25:12.442 TestCopyTicks (EURUSD,M5)       2019.01.02 06:03:36   OnTick: copied 100 ticks from 2019.01.02 06:00:34.179, ExtCounter=99
2019.12.23 09:25:12.442 TestCopyTicks (EURUSD,M5)       2019.01.02 06:03:37   OnTick: copied 100 ticks from 2019.01.02 06:00:34.785, ExtCounter=100
2019.12.23 09:25:12.442 TestCopyTicks (EURUSD,M5)       2019.01.02 06:03:37   OnTick: copied 100 ticks from 2019.01.02 06:00:35.885, ExtCounter=101
2019.12.23 09:25:12.442 TestCopyTicks (EURUSD,M5)       2019.01.02 06:03:37   OnTick: copied 100 ticks from 2019.01.02 06:01:00.021, ExtCounter=102
2019.12.23 09:25:12.442 TestCopyTicks (EURUSD,M5)       2019.01.02 06:03:37   OnTick: copied 100 ticks from 2019.01.02 06:01:00.119, ExtCounter=103
...
2019.12.23 09:25:12.443 TestCopyTicks (EURUSD,M5)       2019.01.02 06:09:49   OnTick: copied 100 ticks from 2019.01.02 06:03:37.317, ExtCounter=200
2019.12.23 09:25:41.311 Tester  final balance 10000.00 USD
2019.12.23 09:25:41.311 TestCopyTicks (EURUSD,M5)       2019.09.30 23:59:58   OnDeinit with code 1
2019.12.23 09:25:41.324 Tester  EURUSD,M5: 16464989 ticks, 55757 bars generated. Environment synchronized in 0:00:00.053. Test passed in 0:00:35.205 (including ticks preprocessing 0:00:02.578).
2019.12.23 09:25:41.324 Tester  EURUSD,M5: total time from login to stop testing 0:00:35.258 (including 0:00:00.053 for history data synchronization)
2019.12.23 09:25:41.324 Tester  643 Mb memory used including 7 Mb of history data, 384 Mb of tick data
2019.12.23 09:25:41.324 Tester  log file "xxxxxxxxxxxxxxxxxxxxxxxxxxx\Tester\Agent-127.0.0.1-3000\logs\20191223.log" written
2019.12.23 09:25:41.324         test Experts\Tester\TestCopyTicks.ex5 on EURUSD,M5 thread finished
2019.12.23 09:25:41.351 127.0.0.1       prepare for shutdown

Прекрасно видно, что тики копируются и в OnInit, потому что до этого они быди закачаны в процессе предыдущих тестирований

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Roman Shiredchenko:

доброго дня. Поясните понятия "на тестере" и "на МТ5".

не понятно их отличие...

Отличие в том, что на МТ5 текущее время, это серверное время, который показывает TimeCurrent().

А на тестере, если запросить время в OnInit, то значение TimeCurrent() совпадает со значением даты начала тестирования.

Если мы скачиваем тиковые данные на МТ5, то всё понятно когда мы задаем дату начала копирования, работает нормально.

А на тестере начальное значение даты CopyTicks(CopyTicksRange) должно быть меньше, чем значение  TimeCurrent(), независимо от того откуда мы запрашиваем эти тики из OnInit или OnTick.


 
Slava:

Добрался до компьютера с клиентским терминалом.

Вот проверочный эксперт

Вот настройки тестирования

Вот полный лог тестирования.

Прекрасно видно, что тики копируются и в OnInit, потому что до этого они быди закачаны в процессе предыдущих тестирований

Спасибо за ответ.  Но пока я посмотрю ваш пример, скажите пожалуйста, мое объяснение которое дал выше, правильно или нет ? 

Причина обращения: