Категория
Технические
Уровень
Средний
Где применяется
БэктестингОценка советника

Тиковые данные

Тиковые данные — это запись каждого отдельного изменения цены по инструменту, с меткой времени и собственными bid и ask; именно её MT5 воспроизводит в модели «каждый тик на основе реальных тиков» вместо того, чтобы выдумывать путь между барами.

также: история тиков, реальные тиковые данные

Обновлено · Проверено

Простыми словами

Баровые данные хранят четыре цены на свечу: открытие, максимум, минимум и закрытие. Тиковые данные хранят всё, что между ними, — каждое изменение цены, по порядку, вместе со спредом, который стоял в тот момент. Разница между ними что-то решает только тогда, когда сделка открывается и закрывается внутри бара, а именно там и живёт большая часть рекламы советников.

Почему это важно

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

  • Они устанавливают порядок событий внутри бара. Если реальный маршрут задел стоп раньше цели, выдуманный маршрут, задевший их в обратном порядке, переворачивает знак сделки.
  • Они несут спред, который действительно стоял в каждый момент. В одном здешнем прогоне на реальных тиках по USD/JPY тиковый файл содержал 227 различных значений спреда от 10 до 350 пунктов, и ни одно фиксированное число за этот диапазон не отвечает.
  • Они требуют реального запаса в терминале. Всем одиннадцати опубликованным здесь прогонам на реальных тиках понадобился пользовательский символ, собранный из импортированного архива; ни один брокерский символ каталога до модели реальных тиков так и не добрался.
  • Они не самый большой рычаг. Смена источника данных при неизменной модели увела один из наших прогонов с профит-фактора 1,35 на 1,13; последующий переход того же источника со сгенерированных тиков на реальные сдвинул его ещё на 0,02.

Как проверять стратегию с его помощью

Где применяется

  • Тестер стратегий → Настройки → Моделирование, где «каждый тик на основе реальных тиков» ('Every tick based on real ticks', Model 4) воспроизводит записанный маршрут, а простое «каждый тик» ('Every tick', Model 0) генерирует его из баров M1.
  • Вид → Символы (Ctrl+U) → вкладка «Тики», где вы запрашиваете тиковую историю инструмента за нужный период, прежде чем тестер вообще сможет к ней прикоснуться.
  • При сборке пользовательского символа из импортированного тикового архива — именно так каждый прогон на реальных тиках в этом каталоге получил свои данные.
  • При повторном прогоне готовой стратегии на втором источнике тиков, чтобы выяснить, принадлежит результат правилам или данным.

Как выглядит надёжный результат

  • Карточка называет источник тиков и модель тестера на одном дыхании, так что читатель может пересобрать прогон, а не верить ему.
  • Тиковая история действительно покрывает окно. Каждый опубликованный здесь прогон, кроме одного, открывается 2019-01-01 — на источниках, которые дотягиваются так далеко назад.
  • И bid, и ask переживают импорт, поэтому тестер исполняет по записанному спреду, а не по подставленной вместо него константе.
  • Второй источник воспроизводит результат — а если нет, карточка говорит, какой из них не прошёл.

Тревожные признаки

  • «Реальные тиковые данные» без названного поставщика. Поставщик и оказывается той половиной утверждения, которая решает исход.
  • Процент качества истории, которым машут как доказательством реальных тиков. Один прогон на Model 0 в этом каталоге напечатал 100 %.
  • Окно теста, которое открывается раньше тиков источника: оно тихо возвращает ранние годы интерполяции.
  • Фиксированный спред, выставленный поверх тиковых данных. На Model 4 тестер всё равно игнорирует это поле, так что настройка вводит в заблуждение скорее автора, чем читателя.

Бэктест против реальной торговли

  • Тиковые данные закрепляют ценовой путь и не трогают исполнение. Задержка, реквоты, частичные исполнения и собственная политика брокера по-прежнему остаются вне тестера.
  • Записанный спред принадлежит тому, кто его записал. Другой брокер, котирующий тот же момент, может отличаться существенно — прежде всего вне основных сессий.
  • Проскальзывание в файл не попадает никогда. Тестер исполняет по записанной цене; реальный ордер приходит долей секунды позже и берёт то, что там окажется.
  • Ожидайте, что оставшаяся часть разрыва будет касаться исполнения, а не цен, — разрыв уже и куда предсказуемее того, который оставляют после себя баровые данные.

Рекомендуемый способ проверки

  1. 1Сначала запросите тиковую историю инструмента за всё окно, затем прочитайте вкладку «Тики» и убедитесь, что возвращённый диапазон его действительно покрывает.
  2. 2Записывайте номер модели рядом с названием источника. «Каждый тик» и «каждый тик на основе реальных тиков» стоят в одном выпадающем списке через строку и описывают два разных эксперимента.
  3. 3На Model 4 оставьте поле спреда в тестере в покое, а комиссию добавьте руками. Прогон Spread=10 против Spread=100 здесь дал одинаковые тик-в-тик спреды.
  4. 4Прежде чем верить цифре, повторите прогон на втором источнике. Расхождение между источниками — это и есть результат, а не помеха.

Пример

Один советник, одно окно, три прогона. TidewellSlack торгует GBP/JPY на M15 с 2019-01-01, и мы прогнали его тремя способами, чтобы развести две вещи, которые карточки регулярно складывают вместе: откуда берутся тики и воспроизводит их тестер или выдумывает.

История M1 брокера, Model 0 (опубликованный прогон)
PF 1,35, максимальная просадка 9,92 %
303 сделки, качество истории 99 %, и он проходит наш фильтр.
Импортированные тики, всё ещё Model 0
PF 1,13, максимальная просадка 18,18 %
351 сделка. Менялся только источник.
Импортированные тики, Model 4 на реальных тиках
PF 1,11, максимальная просадка 18,20 %
345 сделок. Менялась только модель.

Два прогона из трёх не проходят наш собственный фильтр, а выживший — тот, что шёл на сгенерированных тиках. Именно поэтому карточка публикует свой символ и номер модели, а не прилагательное «реальные».

Расчёт Смена источника: −0,22 профит-фактора и +8,26 пункта просадки. Переход на реальные тики поверх этого: −0,02 и +0,02.

Результат Источник данных сдвинул результат в одиннадцать раз дальше, чем модель тиков

Как это читать

Читайте тиковые данные сперва против времени удержания, а уже потом против источника. Чем мельче ваша цель относительно бара, тем большую часть исхода решил маршрут внутри него, — но именно источник решает, какая часть этого исхода перенесётся хоть куда-нибудь ещё.

Диапазон Что означает
Внутридневной или скальперский советник, реальные тики, поставщик назван Защитимый случай. Маршрут записан, и посторонний человек может пересобрать прогон по одной лишь карточке.
Многодневная свинг-система на тиках, сгенерированных из баров Обычно достаточно. Внутренний маршрут одного бара редко решает судьбу сделки, которую держат неделю.
Реальные тики, но из одного-единственного источника Половина ответа. Наш прогон по GBP/JPY прошёл на одном источнике и не прошёл на другом при одинаковых правилах и одинаковом окне.
«Реальные тики» без поставщика и без номера модели Непроверяемо, и два недостающих поля — ровно те два, которые решают цифру.
  • Прежде чем выбирать модель, подтвердите диапазон, который вернула вкладка «Тики». Окно, открывающееся раньше тиков источника, для ранних лет откатывается к интерполяции и всё равно сообщает одну цифру за весь прогон.
  • Сохраняйте bid и ask. На Model 4 тестер берёт спред из тикового файла и игнорирует набранное вами число — 227 различных значений от 10 до 350 пунктов в одном прогоне по USD/JPY, и ни одно из них не совпадает с настроенным.
  • Посчитайте, как редко спред вообще кто-то измеряет. Ровно один из 23 опубликованных здесь прогонов несёт измеренное среднее — 19,14 пункта, записанные внутри тестера, — и этот прогон идёт на Model 0.
  • Считайте второй источник экспериментом, а не повинностью. Согласие источников повышает бэктест на тиковых данных до доказательства; расхождение учит большему.

Одиннадцать из 23 опубликованных здесь прогонов используют Model 4 и двенадцать — Model 0, и каждый прогон на Model 4 несёт суффикс _DUKA в названии символа, потому что импортированные тики могут жить только на пользовательском символе. Десять из этих одиннадцати манифестов до сих пор называют в поле источника цен историю M1 брокера — остаток той линии, из которой они мигрировали. Читайте номер модели и символ; проза вокруг них стареет быстрее.

Частые ошибки

Купиться на модель тиков и не заметить источник тиков

Модель — это одна строка выпадающего списка, а источник — запись совсем другого рынка. В прогоне по GBP/JPY выше смена источника стоила 0,22 профит-фактора и удвоила просадку, тогда как переход на реальные тики на том же источнике стоил 0,02. Карточка, называющая свою модель, но не своего поставщика, сообщила вам меньшую половину.

Читать цифру качества истории как доказательство реальных тиков

Процент измеряет, насколько полно история покрыла окно, а не то, какая модель её произвела. Теневой прогон на Model 0 за KestrelHover напечатал 100 % — ту же цифру, что напечатал его собрат на реальных тиках. Число, до которого дотягиваются обе модели, различить их не может.

Выставлять фиксированный спред поверх тиковых данных

На Model 4 тестер исполняет по собственной разнице ask минус bid из тикового файла и поле игнорирует полностью; один и тот же тест по USD/JPY при Spread=10 и затем при Spread=100 вернул одинаковые тик-в-тик спреды. Настройка не меняет в прогоне ничего и тихо меняет то, что автор считает измеренным.

Тестировать окно, которое тики не покрывают

Тест с 2015 года на источнике, чьи тики начинаются в 2019-м, интерполирует ранние годы, воспроизводит поздние и сообщает об обоих как об одном результате. Вкладка «Тики» указывает диапазон, который у неё есть; тестер никогда не предупредит вас, что ваше окно его перелетело.

Ждать, что реальные тики закроют разрыв с реальной торговлей

Они закрывают ценовую половину и оставляют исполнительную нетронутой. Задержка, реквоты, частичные исполнения и политика брокера остаются вне симуляции, поэтому прогон на реальных тиках остаётся оптимистичным рассказом о том, какими были бы исполнения, — просто оптимистичным рассказом, построенным на пути, который действительно был.

Подробнее

Три прогона, по одной переменной за раз

TidewellSlack — GBP/JPY, M15, с 2019-01-01СделкиПрофит-факторМаксимальная просадкаКачество историиНаш фильтр
История M1 брокера, Model 0 (опубликован)3031,359,92 %99 %PASS
Импортированные тики, Model 03511,1318,18 %99 %FAIL
Импортированные тики, Model 4 на реальных тиках3451,1118,20 %100 %FAIL

Между первой и второй строкой меняются данные и больше ничего: те же правила, то же окно, та же модель тестера. Профит-фактор падает на 0,22, а просадка примерно удваивается. Между второй и третьей меняется модель и больше ничего — сгенерированные тики уступают место записанным из того же архива, — и профит-фактор падает на 0,02, тогда как просадка сдвигается на две сотых пункта. Обе строки на импортированных тиках наш фильтр не проходят; выживший — прогон на сгенерированных тиках.

Этот порядок не универсален, и это самая честная часть истории. KestrelHover пошёл в другую сторону: 291 сделка и профит-фактор 1,33 на реальных тиках против 292 сделок и 1,30 на сгенерированных тиках брокера, и оба прогона прошли. Иногда источник — это вся история, а иногда всего лишь шум, и узнать это можно, только прогнав дважды. Прочитайте карточку TidewellSlack рядом с той — и мысль договорит себя сама.

Реальные тики стоят вам пользовательского символа

Одиннадцать из 23 опубликованных здесь прогонов используют Model 4 и двенадцать — Model 0. Каждый без исключения прогон на Model 4 торгует символом, чьё название заканчивается на _DUKA, потому что импортированные тики не могут жить на собственном символе брокера: вы создаёте пользовательский символ в окне символов и импортируете архив в него. Ни один брокерский символ этого каталога до модели реальных тиков так и не добрался — и это практическая причина, по которой столько опубликованных бэктестов ею не пользуются: режим бесплатен, а запас за ним — нет.

Заодно это ломает привычный короткий путь — довериться проценту. Теневой прогон на Model 0 за KestrelHover напечатал 100 % качества истории, ту же цифру, что напечатал его собрат на реальных тиках, так что различить их по этому числу нельзя. Качество моделирования отвечает на другой вопрос — насколько полно история покрыла окно — и отвечает на него для обеих моделей.

Спред — та половина, которую никто не проверяет

Второй подарок тиковых данных — записанные bid и ask, и именно его выбрасывают чаще всего. На Model 4 тестер исполняет по разнице ask минус bid каждого отдельного тика и игнорирует настроенный вами спред: один и тот же тест по USD/JPY при Spread=10 и затем при Spread=100 дал одинаковые тик-в-тик спреды, 227 различных значений в диапазоне от 10 до 350 пунктов. Поле выглядит как регулятор, а ведёт себя как комментарий.

Возникающие издержки почти никто тоже не измеряет. Ровно один из 23 прогонов здесь приводит измеренное среднее значение спреда — 19,14 пункта, записанные внутри тестера, — и этот прогон идёт на Model 0, а не на реальных тиках. Так что честное прочтение большинства заявлений о реальных тиках, включая несколько наших собственных, звучит так: маршрут был записан, а стоимость его прохождения так и не подсчитали.

Часто задаваемые вопросы

Нужны ли реальные тиковые данные, чтобы протестировать советника на истории?
Зависит от того, как долго стратегия держит позицию. Всему, что открывается и закрывается внутри дня, стоит идти на реальных тиках: маршрут внутри бара решает слишком много его сделок, чтобы его додумывать. Свинг-система, держащая позиции днями, разницы почти не заметит. В любом случае называйте источник: в нашем тесте по GBP/JPY смена источника сдвинула профит-фактор на 0,22, а переход на реальные тики — на 0,02.
Откуда берутся тиковые данные в MT5?
Из двух мест. Брокеры MetaTrader хранят тиковую историю на своих серверах, и терминал скачивает её через Вид → Символы (Ctrl+U) → «Тики» для выбранного инструмента и периода. Независимые поставщики публикуют тиковые архивы, которые вы импортируете на пользовательский символ. Каждый прогон на реальных тиках в этом каталоге пошёл вторым путём — поэтому каждый из них несёт суффикс _DUKA в названии символа.
Почему два источника тиков дают разные результаты бэктеста?
Потому что каждый источник — это запись одной площадки, а цены, прежде всего спреды, между площадками различаются. Один и тот же советник по GBP/JPY за одно и то же окно набрал профит-фактор 1,35 на собственной истории брокера и 1,13 на импортированном архиве, а максимальная просадка выросла с 9,92 % до 18,18 %. Сравнение двух источников — самый дешёвый тест на устойчивость из доступных.
Делают ли реальные тиковые данные бэктест точным?
Они делают ценовой ряд достоверным, а это не одно и то же. Исполнение остаётся вне тестера, и выбранный вами источник всё равно доминирует. Два наших советника, прогнанные обоими способами, оказались в противоположных местах: один почти не сдвинулся — 291 сделка и профит-фактор 1,33 на реальных тиках против 292 сделок и 1,30 на сгенерированных, — а второй перестал проходить свой фильтр ровно в тот момент, когда сменился источник.
Как понять, на каких тиковых данных сделан опубликованный бэктест?
Три поля, по порядку: название модели, которое напечатал тестер, символ, которым шла торговля, и поставщик за этим символом. Название пользовательского символа обычно и выдаёт, что тики были импортированы. Если карточка показывает процент и прилагательное, но ни одного из этих трёх полей, считайте утверждение непроверенным, а не ложным.