Тиковые данные — это запись каждого отдельного изменения цены по инструменту, с меткой времени и собственными 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Сначала запросите тиковую историю инструмента за всё окно, затем прочитайте вкладку «Тики» и убедитесь, что возвращённый диапазон его действительно покрывает.
2Записывайте номер модели рядом с названием источника. «Каждый тик» и «каждый тик на основе реальных тиков» стоят в одном выпадающем списке через строку и описывают два разных эксперимента.
3На Model 4 оставьте поле спреда в тестере в покое, а комиссию добавьте руками. Прогон Spread=10 против Spread=100 здесь дал одинаковые тик-в-тик спреды.
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 (опубликован)
303
1,35
9,92 %
99 %
PASS
Импортированные тики, Model 0
351
1,13
18,18 %
99 %
FAIL
Импортированные тики, Model 4 на реальных тиках
345
1,11
18,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 на сгенерированных, — а второй перестал проходить свой фильтр ровно в тот момент, когда сменился источник.
Как понять, на каких тиковых данных сделан опубликованный бэктест?
Три поля, по порядку: название модели, которое напечатал тестер, символ, которым шла торговля, и поставщик за этим символом. Название пользовательского символа обычно и выдаёт, что тики были импортированы. Если карточка показывает процент и прилагательное, но ни одного из этих трёх полей, считайте утверждение непроверенным, а не ложным.