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

 
Igorz2006:
Спасибо, буду разбираться

Просмотрите также этот ответ на Ваш вопрос:

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

Универсальный советник для крипто биржы не под одну пару!

Vladimir Karputov, 2020.05.18 14:29

Вам нужно подключиться к торговому серверу, который транслирует котировки криптовалюты, а затем выполнить

Скачивание ценовой истории #


 
установил мт4, упрощает задачу
 

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

MT5 и скорость в боевом исполнении

fxsaber, 2020.06.01 11:43

По какой причине этот советник не алертит?
const MqlTick GetMarketWatchTick( void )
{
  MqlTick Tick = {0};
  
  ::SymbolInfoTick(_Symbol, Tick);
  
  return(Tick);
}

const MqlTick GetLastHistoryTick()
{
  MqlTick Tick[1];
  
  ::CopyTicks(_Symbol, Tick, COPY_TICKS_ALL, 0, 1);
  
  return(Tick[0]);
}

void OnTick()
{
  if (GetMarketWatchTick().time_msc > GetLastHistoryTick().time_msc) // Тик из Обзора рынка свежее, чем последний тик из истории.
    Alert("Hello!");
}


В то же время эта же проверка, зашитая в боевой торговый советник на том же Терминале, Алертит. В чем может быть причина?

 

В предыдущих сериях.

Слева запрос на боевом Терминале 10-ти секундного интервала текущих суток. Боевой - работает несколько суток, на каждом тике вызывает CopyTicks* для получения свежих тиков.

Справа - только что запущенный Терминал, запрос тех же 10-ти секунд.

Видно, что справа на пять тиков больше. Т.е. на боевом Терминале БД тиков формируется с ошибками.

Будьте бдительны! MT5 пропускает свои же исторические тики, которые приходили (проверял) в OnTick через SymbolInfoTick.

 
fxsaber:

В предыдущих сериях.


Будьте бдительны! MT5 пропускает свои же исторические тики, которые приходили (проверял) в OnTick через SymbolInfoTick.

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

 
fxsaber:

В предыдущих сериях.

Слева запрос на боевом Терминале 10-ти секундного интервала текущих суток. Боевой - работает несколько суток, на каждом тике вызывает CopyTicks* для получения свежих тиков.

Справа - только что запущенный Терминал, запрос тех же 10-ти секунд.

Видно, что справа на пять тиков больше. Т.е. на боевом Терминале БД тиков формируется с ошибками.

Будьте бдительны! MT5 пропускает свои же исторические тики, которые приходили (проверял) в OnTick через SymbolInfoTick.

На первый взгляд, больше похоже на баг, чем на осознанную фильтрацию с какими-то целями (пропавшие тики вроде бы особо не выделяются). Или ошибаюсь?

 
Maksim Emeliashin:

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

Aleksey Nikolayev:

На первый взгляд, больше похоже на баг, чем на осознанную фильтрацию с какими-то целями (пропавшие тики вроде бы особо не выделяются). Или ошибаюсь?

Терминал за текущие сутки при отсутствии обрывов связи сам формирует БД тиков. Так гораздо быстрее и экономнее.

Но в этом алгоритме формирования БД тиков содержится ошибка.

 
fxsaber:

Терминал за текущие сутки при отсутствии обрывов связи сам формирует БД тиков. Так гораздо быстрее и экономнее.

Но в этом алгоритме формирования БД тиков содержится ошибка.

А если запросить в конце суток, пропуск уже есть?

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

Если бы правильные тики были в памяти, записать их без ошибок было бы не сложно. Скорее, где-то ошибка в проверке целостности или в сборе.

 
Andrey Khatimlianskii:

А если запросить в конце суток, пропуск уже есть?

Вроде, первый запрос за прошедшие сутки обновляет БД тиков через синхронизацию с сервером.

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

Если бы правильные тики были в памяти, записать их без ошибок было бы не сложно. Скорее, где-то ошибка в проверке целостности или в сборе.

SymbolInfoTick поймал, как минимум, один тик, которого не оказалось в БД.

 
fxsaber:

Вроде, первый запрос за прошедшие сутки обновляет БД тиков через синхронизацию с сервером.

SymbolInfoTick поймал, как минимум, один тик, которого не оказалось в БД.

Тут только @renat сможет ответить. Или @Slava