Тестируем 'CopyTicks' - страница 47

 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.10
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 
prostotrader #:

Последние данные

https://www.mql5.com/ru/forum/381623#comment_25821280

Никто это смотреть и разбирать не будет. Пока не будет сравнительного анализа биржевых тиков и MT5, разговор пустой. Т.к. всегда можно сказать, что это именно биржа транслирует брокеру кривые данные.

 
fxsaber #:

Никто это смотреть и разбирать не будет. Пока не будет сравнительного анализа биржевых тиков и MT5, разговор пустой. Т.к. всегда можно сказать, что это именно биржа транслирует брокеру кривые данные.

Есть вещи, которые не требуют внешнего подтверждения, если просто внимательно посмотреть...


 
prostotrader #:

Есть вещи, которые не требуют внешнего подтверждения, если просто внимательно посмотреть...

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Тестируем 'CopyTicks'

fxsaber, 2021.11.12 08:05

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

 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.12
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 

Смотрим пошагово видео

https://www.mql5.com/ru/forum/381623/page2#comment_25878109

Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.12
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.17
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 

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


Например, нужно узнать, какой тик был актуален 2022.04.29 23:00:00.000. На скрине он выделен.


Единственное решение, что пришло в голову.

bool GetActualTick( const string Symb, const ulong time, MqlTick &Tick, int Amount = 20 )
{
  MqlTick Ticks[];
  
  int Offset = 500;
  int Res = 0;
  
  while (!::IsStopped() && (Res <= 0) && (bool)Amount--)
    Res = ::CopyTicksRange(Symb, Ticks, COPY_TICKS_INFO, time - (Offset <<= 1), time);
    
  if (Res > 0)
    Tick = Ticks[Res - 1];
  
  return(Res > 0);
}

void OnStart()
{
  MqlTick Tick[1];
  
  if (GetActualTick(_Symbol, D'2022.04.29 23:00' * 1000, Tick[0]))
    ArrayPrint(Tick);
}
 
fxsaber #:

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


Например, нужно узнать, какой тик был актуален 2022.04.29 23:00:00.000. На скрине он выделен.


Единственное решение, что пришло в голову.

Красиво сделали, мне до этого в голову не приходило, что так можно.

Я бы вот так поправил - смысл тот же, только за 1 раз.

 bool GetActualTick( const string Symb, const ulong time, MqlTick &Tick, int Sec = 30 )
{
  MqlTick Ticks[];
   
  int Res = ::CopyTicksRange(Symb, Ticks, COPY_TICKS_INFO, time - Sec*1000, time);
    
  if (Res > 0)
    Tick = Ticks[Res - 1];
  
  return(Res > 0);
}

void OnStart()
{
  MqlTick Tick[1];
  
  if (GetActualTick(_Symbol, D'2022.04.29 18:00' * 1000, Tick[0]))
    ArrayPrint(Tick);
}  

С такой задачей сталкивался только на истории при необходимости синхронизации >=2 тиковых массивов и вот здесь. Но в обоих случаях синхронизация идет уже по готовым массивам, выгруженных за 1 раз. И там и там синхронизировал путем поочередной сдвижки индексов. Смотрю какое время (в будущем) ближайшее и сдвигаю индекс по этому инструменту ++. 

 
Andrey Miguzov #:

Я бы вот так поправил - смысл тот же, только за 1 раз.

К сожалению, не угадать интервал между соседними тиками. Иногда сильно больше полуминуты.

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