Тиковые котировки в МТ4

 
Здравствуйте, у меня возник вопрос в большей части к разработчикам платформы. Все больше систем требуют молниеносного исполнения и тиковых котировок. Стандартный МТ4 удовлетворить эти требования не может и поэтому многие прибегают к сторонней утилите - TDS2, которая «подсовует» в терминал тиковые котировки Dukascopy. Слава Богу эти самые котировки наиболее отвечают требованиям большинства трейдеров, однако:

Как мы знаем, в каждой секунде содержится несколько тиков, а в момент повышенной волатильности их количество может достигать десятков, при это в стандартном Тестере стратегий мы видим торговые операции с частотой в 1сек, но никак не тик: получается, что тестер, даже если ему «подсунуть» тиковые котировки всё равно выполняет операции с посекундным, а не миллисекундным шагом?
 
Ivan Pochta:
Здравствуйте, у меня возник вопрос в большей части к разработчикам платформы. Все больше систем требуют молниеносного исполнения и тиковых котировок. Стандартный МТ4 удовлетворить эти требования не может и поэтому многие прибегают к сторонней утилите - TDS2, которая «подсовует» в терминал тиковые котировки Dukascopy. Слава Богу эти самые котировки наиболее отвечают требованиям большинства трейдеров, однако:

Как мы знаем, в каждой секунде содержится несколько тиков, а в момент повышенной волатильности их количество может достигать десятков, при это в стандартном Тестере стратегий мы видим торговые операции с частотой в 1сек, но никак не тик: получается, что тестер, даже если ему «подсунуть» тиковые котировки всё равно выполняет операции с посекундным, а не миллисекундным шагом?

Как вы это видите и где?

 
Ivan Pochta:
Здравствуйте, у меня возник вопрос в большей части к разработчикам платформы. Все больше систем требуют молниеносного исполнения и тиковых котировок. Стандартный МТ4 удовлетворить эти требования не может и поэтому многие прибегают к сторонней утилите - TDS2, которая «подсовует» в терминал тиковые котировки Dukascopy. Слава Богу эти самые котировки наиболее отвечают требованиям большинства трейдеров, однако:

Как мы знаем, в каждой секунде содержится несколько тиков, а в момент повышенной волатильности их количество может достигать десятков, при это в стандартном Тестере стратегий мы видим торговые операции с частотой в 1сек, но никак не тик: получается, что тестер, даже если ему «подсунуть» тиковые котировки всё равно выполняет операции с посекундным, а не миллисекундным шагом?

Тики которые попали в промежуток между одной секундой пропускаются в тестере ?

 
Vladimir Zubov:

Тики которые попали в промежуток между одной секундой пропускаются в тестере ?


Сейчас проверю, не должно быть такого

 
Vladimir Zubov:

Тики которые попали в промежуток между одной секундой пропускаются в тестере ?

Вот это и хочу уточнить: информацию о миллисекундах выводит только сообщение, генерируемое TDS2 (например, при включении скольжения). Я очень долго ломал голову из-за коллосального отличия тиковых систем и в итоге переписал сов для тестов на МТ5 - проблема ушла.

В любом случае не хочется устраивать здесь дискуссию и спор: кто дурак, а кто нет, а просто выслушать представителей Метаквотов, так как им лучше известно, нежели нам.

Но уже 3 месяца бьюсь над этой проблемой у различных советников и пришел именно к такому выводу.
 
А вообще недоверие к тиковым тестам на МТ4 появилось после того, как Тикстори и ТДС2 показали разные результаты при одинаковых котировках и настройках, а затем и разные версии ТДС2...
 
Ivan Pochta:
Вот это и хочу уточнить: информацию о миллисекундах выводит только сообщение, генерируемое TDS2 (например, при включении скольжения). Я очень долго ломал голову из-за коллосального отличия тиковых систем и в итоге переписал сов для тестов на МТ5 - проблема ушла.

В любом случае не хочется устраивать здесь дискуссию и спор: кто дурак, а кто нет, а просто выслушать представителей Метаквотов, так как им лучше известно, нежели нам.

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

А они не обязаны давать ответ как будет идти тестирование в MT4 при использовании сторонней надстройки в терминале МТ. Остается "методом научного тыка" искать ответ для себя.

 
Vladimir Zubov:

А они не обязаны давать ответ как будет идти тестирование в MT4 при использовании сторонней надстройки в терминале МТ. Остается "методом научного тыка" искать ответ для себя.

Никто не говорит об обязанностях. Речь идет о том, что многие ударились в тестирование по тикам, а по факту для многих систем оно отвечает действительности не более, чем на 50%... :( 
 
Ivan Pochta:
Никто не говорит об обязанностях. Речь идет о том, что многие ударились в тестирование по тикам, а по факту для многих систем оно отвечает действительности не более, чем на 50%... :( 

В этом и есть обман тестирования в МТ4 с качестром 99.9% суть такого тестирования только красивая цифра, которая не отвечает реальности.

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

А так как таймер в тестере не работает МТ4 то для тестера выбирать режим void OnTick() для тестирования, а для демки и реала использовать таймер в одну секунду.

Метод конечно костыльный, но правдоподобие тестера и реала будет максимальное.

 
Alexey Volchanskiy:

Сейчас проверю, не должно быть такого


Проверил, есть фигня, но другого рода. То ли тестер чего-то придумывает лишнего, то ли tickstory некорректно создает .fxt. Данные с дукаса:

2018.01.11 19:22:17.692,1.20432,1.20437

2018.01.11 19:22:18.197,1.20432,1.20436

2018.01.11 19:22:19.699,1.20432,1.20435

2018.01.11 19:22:20.157,1.2043,1.20433

2018.01.11 19:22:20.261,1.20428,1.20432

2018.01.11 19:22:21.067,1.20429,1.20432

2018.01.11 19:22:21.624,1.20428,1.20432

2018.01.11 19:22:25.334,1.20427,1.20431

-----------

Через tickstory создан .fxt файл, вот что на выходе в тестере в этот временной период

2018.01.14 19:22:29.600 2018.01.11 20:02:30  SaveTicks EURUSD,M1: 19:22:29:600   Bid=1.20372   Ask=1.2039

2018.01.14 19:22:29.600 2018.01.11 20:02:30  SaveTicks EURUSD,M1: 19:22:29:600   Bid=1.20372   Ask=1.2039

2018.01.14 19:22:29.345 2018.01.11 13:32:53  SaveTicks EURUSD,M1: 19:22:29:345   Bid=1.20297   Ask=1.20315

2018.01.14 19:22:29.345 2018.01.11 13:32:52  SaveTicks EURUSD,M1: 19:22:29:345   Bid=1.20296   Ask=1.20314

2018.01.14 19:22:29.345 2018.01.11 13:32:52  SaveTicks EURUSD,M1: 19:22:29:345   Bid=1.20295   Ask=1.20313

2018.01.14 19:22:29.345 2018.01.11 13:32:52  SaveTicks EURUSD,M1: 19:22:29:345   Bid=1.20291   Ask=1.20309

2018.01.14 19:22:29.345 2018.01.11 13:32:52  SaveTicks EURUSD,M1: 19:22:29:345   Bid=1.20289   Ask=1.20307

2018.01.14 19:22:29.345 2018.01.11 13:32:52  SaveTicks EURUSD,M1: 19:22:29:345   Bid=1.20291   Ask=1.20309

2018.01.14 19:22:29.345 2018.01.11 13:32:51  SaveTicks EURUSD,M1: 19:22:29:345   Bid=1.20293   Ask=1.20311

2018.01.14 19:22:29.345 2018.01.11 13:32:51  SaveTicks EURUSD,M1: 19:22:29:345   Bid=1.20295   Ask=1.20313

2018.01.14 19:22:29.100 2018.01.11 07:34:02  SaveTicks EURUSD,M1: 19:22:29:100   Bid=1.1938   Ask=1.19398

2018.01.14 19:22:29.100 2018.01.11 07:34:02  SaveTicks EURUSD,M1: 19:22:29:100   Bid=1.19382   Ask=1.194

2018.01.14 19:22:29.100 2018.01.11 07:34:01  SaveTicks EURUSD,M1: 19:22:29:100   Bid=1.1938   Ask=1.19398

2018.01.14 19:22:29.100 2018.01.11 07:34:01  SaveTicks EURUSD,M1: 19:22:29:100   Bid=1.19379   Ask=1.19397

2018.01.14 19:22:29.100 2018.01.11 07:34:01  SaveTicks EURUSD,M1: 19:22:29:100   Bid=1.19375   Ask=1.19393

2018.01.14 19:22:29.100 2018.01.11 07:34:01  SaveTicks EURUSD,M1: 19:22:29:100   Bid=1.19375   Ask=1.19393

2018.01.14 19:22:29.100 2018.01.11 07:34:00  SaveTicks EURUSD,M1: 19:22:29:100   Bid=1.19375   Ask=1.19393

2018.01.14 19:22:29.100 2018.01.11 07:34:00  SaveTicks EURUSD,M1: 19:22:29:100   Bid=1.19373   Ask=1.19391

2018.01.14 19:22:28.851 2018.01.10 21:50:00  SaveTicks EURUSD,M1: 19:22:28:851   Bid=1.19506   Ask=1.19524

2018.01.14 19:22:28.851 2018.01.10 21:49:56  SaveTicks EURUSD,M1: 19:22:28:851   Bid=1.19508   Ask=1.19526

2018.01.14 19:22:28.851 2018.01.10 21:49:56  SaveTicks EURUSD,M1: 19:22:28:851   Bid=1.19508   Ask=1.19526

2018.01.14 19:22:28.851 2018.01.10 21:49:55  SaveTicks EURUSD,M1: 19:22:28:851   Bid=1.19508   Ask=1.19526

2018.01.14 19:22:28.851 2018.01.10 21:49:55  SaveTicks EURUSD,M1: 19:22:28:851   Bid=1.19508   Ask=1.19526


 

И собственно код, которым выводил и мерил

void OnTick()
{
    static SYSTEMTIME st;
    GetLocalTime(st);
    Print(st.wHour, ":", st.wMinute, ":", st.wSecond, ":", st.wMilliseconds, "   Bid=", NormalizeDouble(Bid, _Digits), "   Ask=", NormalizeDouble(Ask, _Digits));