Экспорт исторических данных в программу TSLab

Рейтинг лучших брокеров бинарных опционов за 2020 год с контролем честности:
  • Бинариум
    Бинариум

    № 1 на рынке бинарных опционов! Идеально подходит для новичков и малоопытных трейдеров. Получите бонус за регистрацию торгового счета:

FAQ Настройка TSLab

В этом посте я собрал особенности настройки TSLab для торговли на боевом сервере. Эти настройки помогут вам избежать многих проблем, с которыми почти все сталкиваются в начале карьеры алготрейдера. Статья будет пополняться новыми советами. Если у вас возникли сложности или дополнения, пишите в комментарии или мне в Skype.

Оптимизация памяти

Если вы смотрели видео уроки на сайте TSLab, то знаете как сократить размер кэша агента чтобы освободить оперативную память и ускорить пересчет. В настройке вашего скрипта перед запуском агента нужно выставить Максимум баров — ограничитель. Я ставлю не более 2000, в зависимости от тайм фрейма. Можно также ограничить количество дней «Макс. дней». Главное, чтобы цифра была больше чем нужно самому медленному индикатору. Проверьте чтобы до и после ограничения ваши сделки совпадали. 10 агентов у меня занимают 1.2 Гб памяти. Также имейте ввиду что со временем TSLab увеличивает потребление памяти и к вечеру уже может занимать 3 Гб, особенно если открывать роботов в лабе на рабочей программе.

Настройка связки TSLab + QUIK

Защита от смены сервера

Настоятельно рекомендую всем установить галочку в QUIK для того чтобы он не менял сервера и не дублировались стоп-заявки.

Настройка подключений QUIK

Не доступен сервер QUIK

Если сервер вашего брокера недоступен (такое иногда бывает), то нужно в списке соединений выбрать другой сервер и попробовать подключиться к нему. Если получилось, то у вас могла остаться стоп-заявки на недоступном сервере. Они там и будут оставаться, пока вы их не отмените. Для этого нужно на каждой заявке в окне QUIK нажать правой кнопкой и выбрать «Сделать своей», после чего она будет перенесена на текущий сервер. После этого можете ее отменить и дать возможность TSLab выставить их заново перезапуском агентов.

Защита от изменения файла конфигурации QUIK

Одной из самых частых проблем у новичков является нарушение связи DDE из за изменения конфигурации окон QUIK. Для того чтобы ее восстановить нужно взять tslab.wnd из поставки и заменить его в папке QUIK, после чего сделать загрузку файла настроек и указать этот файл. Этот файл следует держать в неизменном виде! Для этого нужно зайти в настройки QUIK, перейти в раздел Программа — Файлы настроек и снять галочку с Сохранять настройки в файл при выходе. Данную настройку нужно сделать в самый первый запуск QUIK.

Автоматический запуск с утра

Для того чтобы TSLab самостоятельно подключался с утра без вашего участия необходимо правильно подобрать настройки поставщика данных. Особенно это касается QUIK.
Необходимо настроить расписание подключения. Можно оставить настройки по-умолчанию 9-50 с пн по пт, но я поставил 9-41 в ТСЛаб и 9-40 в QUIK (настройка в меню Доступные соединения). Важно чтобы QUIK подключался раньше TSLab.
В настройках поставщика галочку с «Перезапускать QUIK» нужно снять. Таким образом он будет запущен всегда. Нужно только 1 раз запустить TSLab, нажать Соединить в меню и он запустит QUIK. Произойдет автоматический ввод логина и пароля, если ничего не трогать. Если не произойдет, что-то настроили неправильно. Загружаем настройку tslab.wnd, которая дефолтная или скачанная у брокера, сворачиваем QUIK и больше вообще его не трогаем. Можно только переключать вкладки, не меняя их. С этого момента все будет включаться — отключаться автоматически: в 9-40 QUIK подключается к брокеру, в 9-41 TSLab подключается к QUIK и выставляет заявки. В конце сессии отключается. Раз в неделю перезапускаем все вручную чтобы очистить память.

Ошибка «Превышено время ожидания»

Возникает когда ТсЛаб не может получить подтверждения о выставлении заявки. Проблема в связи между ними, либо в настройках системы. Первое лечится загрузкой tslab.wnd, второе установкой русского лэнгвидж пака в Windows и родного отображения даты/времени в системе. Также нужно поставить пакет обновлений Windows, который отключает переход на зимнее-летнее время. Все это нужно проделать в первую очередь когда впервые запускаете удаленный сервер.

Настройка региональных стандартов Windows Региональные настройки Windows для TSLab

Рейтинг бинарных платформ с русским языком:
  • Бинариум
    Бинариум

    № 1 на рынке бинарных опционов! Идеально подходит для новичков и малоопытных трейдеров. Получите бонус за регистрацию торгового счета:

Профилактика

Ежедневно перед торгами или вечером после торгов открываем в QUIK вкладку позиций и сверяем их с агентами. Вкладки там не двигаем и не закрываем.
Еженедельно перезапускаем TSlab и QUIK, выполняем соединение снова. Это для очистки памяти.

Не выставляются заявки, не обновляются котировки и тд

Проверьте связь между терминалами, загрузите tslab.wnd. Этот файл всегда должен лежать у вас на рабочем столе в своём первозданном виде. При необходимости кидайте его в папку QUIK с перезаписью.

Не обновляются котировки, пропали графики

Такое часто случается при сбое и вылете ТСЛаб. Нарушается работа кэша котировок. После того как запущен ТСЛаб нужно дать минут 5-10 чтобы они загрузились сами. Если этого не произошло, то рядом с агентом нажать кнопку Гр, подождать пока загрузится график, нажать на нем правой кнопкой и выбрать Перезагрузить данные. Это обновит кэш. Если котировки после этого не скачались за какой-то промежуток времени и вы работаете через QUIK, то нужно в QUIK в меню выбрать Перезаказать архив графиков, перед этим отключив ТСЛаб от поставщика. QUIK перезапустится, подключайтесь, проверяйте.

Какой выбрать удаленный сервер VPS/VDS для TSLab?

Выбирайте по отзывам и цене в этом отличном обзоре на Хабре. Лично я использовал Агаву, 1Gb, был недоволен, перешел на UltraVDS его использовал пол-года и был доволен, пока не начались лаги и сбои QUIK, затем перешел на домашний хостинг и отказался от Квика.

Если вы всё же решили найти надежного VPS провайдера для трейдинга, обратите внимание на ruVDS, с которым сотрудничают крупнейшие брокеры. Пишите мне и получите промо-код на скидку 5% на хостинг!

На скриншоте оптимальная конфигурация сервера для TSLab до 10-12 агентов.

Оптимальная конфигурация VDS/VPS для TSLab

Как установить внешние индикаторы

Скачать дополнительные индикаторы можно на официальном форуме программы TSLab. Скачиваем и разархивируем в папку Handlers. Попасть туда можно нажав в меню TSLab Инструменты — Папка с логами и перейти на уровень выше. Перезапустить программу. Индикаторы могут быть 32-битными, 64-битными и универсальными. Для разработки рекомендуется работать в 64-битной версии TSLab, а на рабочем сервере с той, которую поддерживает торговый терминал или коннектор. Например, QUIK сможет работать только с 32-битной версией, а Plaza2 и терминал брокера АЛОР может работать и с 64-битной. Соответственно, индикаторы должны соответствовать версии TSLab. Прошу также принять во внимание что кубик, который работает в тестовом Лабе может не работать в реальном агенте или работать иначе.

Настройка лотов в агенте

При настройке агента вы должны указать портфель, инструмент, а также лотность. Размер позиции будет зависеть от настроек, указанных в блоке открытия позиции скрипта. Вы можете выбрать Управляется алгоритмом, тогда настройку лотов нужно производить в самом скрипте, каждый раз открывая его меняя количество в блоке открытия, когда это необходимо. Можно выбрать вариант В лотах, тогда вы указываете количество лотов уже в агенте, но при этом данное количество будет умножаться на количество, указанное в блоке открытия в скрипте. Это важный момент! Вариант В процентах от портфеля теоретически должен высчитывать количество, исходя из суммы на счете и цены актива или ГО, но на практике с фьючерсами работает не корректно, не рекомендую использовать.

Как настроить менеджер уведомлений

TSLab позволяет настроить рассылку уведомлений о различных событиях на электронную почту. Это удобно чтобы быстро получить сообщение о проблеме с подключением к поставщику данных или о возникновении ошибок в агентах. Нужно зайти в Инструменты — Менеджер уведомлений и создать тип e-mail. Настраивается он не тривиально, настройки работают такие:

Если не работает 25 порт, то попробуйте 587. На Яндексе должно быть аналогично.

Через некоторое время использования Мэйл.ру заблокировал мне отправку сообщений через POP3, потому что программа превысила лимит, перешел на Gmail.

Gmail использует порт 587, сервер smtp.gmail.com. В настройках аккаунта Goolge создайте пароль приложения чтобы не палить свой пароль от ящика, либо создайте отдельный профиль Google.

Кроме настройки типа уведомлений и данных авторизации нужно также добавить фильтры по типу событий и не забыть активировать созданные уведомления галочкой. Подробней можно посмотреть в видео-уроке на сайте tslab.ru. Фильтры обрабатываются по порядку с условием «и». То есть создать в одной настройке два разных типа или категории уведомлений не удастся. Для этого нужно сделать 2 настройки типа email с разными фильтрами. Например, одну настройку для событий категории «Поставщик данных», другую для сообщений типа «Ошибки». Можно также выбрать фильтр «Коды» и перечислить коды сообщений из списка (раздел 2.3.12).

После перезапуска агентов теряется история и статистика

Что делать? Избежать этого никак нельзя. Для ведения статистики нужно заполнять свой торговый журнал. Я делаю это еженедельно. Хочу поделиться журналом для роботов в Excel. В нем вы можете вести свою статистику, смотреть графики вашего депозита и дополнять любыми нужными вам цифрами. Скачать Журнал доходности портфеля.

Где скачать котировки для TSLab и склейка фьючерсов

Скачать архив минутных графиков для TSLab и других торговых систем можно бесплатно через сайт Финам или MFD. Сделать это можно вручную, выгружая файлы частями и склеивая их в блокноте в один файл по порядку. Также есть специальные программы, которые скачают и склеят данные за вас, но программы эти в основном не поддерживаются разработчиками и работают не всегда адекватно. Из рабочих программ могу отметить Cognitum Updater, который обновляет котировки по расписанию с Финам. Если вам понадобятся тиковые данные, то Финам позволяет их скачивать только после 18:00, то есть в нерабочее время и тоже частями. Есть также программа от StockSharp под названием Hydra, которая может экспортировать данные сначала в свой формат, а затем в .txt. Скачать можно на официальном сайте S#.

Для того чтобы загрузить исторические данные в текстовом формате или csv нужно создать текстовый поставщик данных. Инструменты — Менеджер поставщиков данных — Добавить … и выбрать Исторические данные — Текстовые файлы. В окне настроек указать папку где будут храниться склейки, задать валюту «п» — пункт.

Сменить тип отображения графика: свечи, бары, стакан

Если вам привычней видеть на графике агента TSLab бары, то нужно в скрипте кликнуть на связь между Источником и Панелью графика и найти там нужную настройку. Здесь же можно скрыть отображение имени позиции, стопа, тэйка и другие настройки графика.

Какую установить комиссию

Какую брать комиссию, если вы торгуете фьючерсы? С 2020 года Мосбиржа установила относительные комиссии на рынке Фортс. Это значит, что комиссия считается также, как и на акциях — в процентах от стоимости контракта. Это относится к фьючерсам и опционам. Узнать актуальный размер комиссии на сайте Мосбиржи (раздел Группы срочных контрактов и базовые ставки за заключение фьючерсов).

Не стоит забывать что это лишь комиссия биржи. К ней нужно прибавить комиссию вашего брокера. Также рекомендуется умножить полученную комиссию на 2, чтобы проводить стресс-тестирование алгоритма и учесть проскальзывание в алгоритме.

Например: фьючерс рубль-доллар SI относится к группе курс иностранной валюты к российскому рублю.

  • Базовая ставка 0,0014%
  • Комиссия брокера = комиссии биржи, то есть 0,0014%
  • Итоговая комиссия 0,0014*2*2 = 0,0056%, что при курсе 63000 где-то 3,52 руб

Для учёта комиссии в TSLab берём кубик Относительная комиссия. Стоимость денег нам не нужна. Если вам понятней комиссия в рублях, то можно брать Абсолютная комиссия и ставить фиксировано 5, а то и 10 руб комиссии на SI — с запасом.

TSLab 2.0 скачать

В данный момент версия в статусе beta и скачать последнюю сборку можно на форуме. Отвечу на основные вопросы:

  • Ключ от версии 1.2 подходит.
  • Поддержку можно получить на форуме и через тикеты поддержки.
  • Через QUIK работать можно, скоро обещают связь через LUA.
  • Опционы работают в Transaq и Алор трейд точно.
  • Алгоритмы со стандартными кубиками из 1.2 открываются и работают без проблем. Обратная совместимость из TSLab 2.0 и 1.2 отсутствует.

Обучение TSLab

Рекомендации и отзывы по продуктам школы только положительные!

Экспорт котировок. Как закачать историю котировок

Для любого трейдера важно знание что его торговая система работает. Можно конечно верить на слово, но это больно, может быть очень больно. Я не раз уже писал не верьте никому и мне тоже.

Берите торговую стратегию и проверяйте её на истории. Но для этого нужно как минимум иметь эту историю. Статья как раз и посвщена этому вопросу.

Источник котировок

Прежде чем это делать необходимо найти источник этих котировок, где они лежат. Скачать их, желательно бесплатно и привести их к виду который понимает наша программа технического анализа.На видео я показываю как это сделать в программе Ninja Trader. Рассказываю и показываю какой формат должен быть у исторических данных, как и где можно получить интересующую нас историю котировок. Все это показываю на примере закачивания истории торгов фьючерса на индекс РТС, аналогично можно поступить с любым торговым инструментом, forex, бинарных опционов и т.д. База данных в финаме огромная, лежит бесплатно, надо лишь научится ей пользоваться. При загрузке исторических данных есть много подводных камней, что-то не так сделал и данные будут кривыми. Я постарался показать возможные ошибки и дал методику как убедиться, что все правильно сделано.

  1. Идем на сайт Финама. Ищем там раздел экспорта котировок http://www.finam.ru/profile/mosbirzha-fyuchersy/rts/export/
  2. Выбираем интересующий нас торговый инструмент и настраиваем экспорт.
  3. Полностью (точно) получить нужный нам формат исторических данных для экспорта из в программу NinjaTrader не получится. Нужно будет править файл руками. Нам необходимо получить текстовый файл следующего вида

20200616 100000;88130.0000000;88130.0000000;87200.0000000;87240.0000000;1306
20200616 100100;87250.0000000;87320.0000000;87170.0000000;87260.0000000;4725
20200616 100200;87270.0000000;87350.0000000;87230.0000000;87300.0000000;2954
20200616 100300;87300.0000000;87300.0000000;87190.0000000;87230.0000000;4170

20200616 — Дата шиворот на выворот. ГГГГ.ММ.ДД

100000 — Время ЧЧ.ММ.СС

Затем идет Open;High;Low;Close;Volume поля разделены знаком «;»

Для окончательной правки нам понадобится программа

Обязательно после завершения экспорта котировок проверьте все данные, особенно время открытия / закрытия свечей. Наиболее просто это сделать открыв программу Quik (для акций и фьючерсов торгующихся на МОЭХ). Просто сравните то что у вас получилось и то что было накануне, если 1 свечка точно соответствует всем данным, то все остальные можете уже не проверять.

Нужно один раз подготовить историю, подготовить хорошо, что бы потом можно было её использовать множество раз…

Удачи в исследовании и поиске Святого Грааля.

Подготовка исторических данных 100% качества для тестирования стратегий и советников

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

Как правило, у большинства брокеров качество котировок колеблется в районе от 90 до 96%. Терминал MT4 и так не слишком точный инструмент, поэтому добавлять еще 4-10% лишней неточности — не наш вариант. Наш выбор — котировки 100% качества. Где и каким образом их взять, как обработать и получить гарантированно качественный результат — в нашем сегодняшнем материале.

Типы исторических данных

Основной тип исторических данных, без которого просто не получится провести тестирование – это, естественно, данные по ценам. Исторические ценовые данные могут быть получены для различных периодов и из разных источников. Наиболее распространенные – для дневных, минутных и тиковых графиков. Как правило, глубже всего история именно для дневных графиков – ее можно получить, начиная с 1971 года (более длительную историю не поддерживает терминал MetaTrader). Минутные данные, как правило, идут максимум с 1999 — 1998 года, а тики в основном не ранее, чем с 2004 — 2007 года.

Как правило, для любого периода данные выглядят следующим образом: дата свечи, время, цена открытия, наивысшая цена, наинизшая цена, цена закрытия и тиковый объем. В некоторых источниках котировок тиковый объем может отсутствовать. Также для периодов от D1 и выше часто не указывают время открытия свечи или же не указывают максимальные и минимальные цены. Тиковые котировки отличаются от котировок, сконвертированных в определенный период. В таких котировках вы можете найти дату, время с точностью до секунд, цены Ask и Bid.

Помимо цены иногда могут понадобиться и некоторые специфические данные – например по выходу макроэкономических показателей, вроде уровня инфляции, цен на жилье или данных по безработице определенных стран, а также еще более специфические, вроде солнечной активности или мнения трейдеров относительно того или иного инструмента.

Вообще же, как правило, поиск необычных данных часто открывает интересные и выгодные возможности, на которых можно построить свою систему торговли и получать прибыль. У нас на форуме есть торговый робот, который анализирует данные из myfxbook об открытых трейдерами позициях и работает против них.

Временные масштабы данных

Данные можно использовать в своих естественных временных рамках, или же пересчитать их в другой временной масштаб. В зависимости от стратегии вам могут потребоваться различные таймфреймы, от М1 или даже тиков, до D1 или MN1. Из данных коротких таймфреймов можно легко сделать данные более длинных, но никак не наоборот. Например, из данных периода М1 мы легко можем получить и М5, и Н1, и D1. Именно поэтому важно иметь качественную базу данных именно М1 котировок.

Но М1 – не самый мелкий масштаб, ведь есть еще и тиковые данные. Тик – это не постоянная единица времени, иногда тики бывают очень частыми, особенно во время выхода новостей, а иногда, например, ночью, имеют большие временные промежутки друг между другом. Тиковая история в основном необходима для тестирования новостных советников, hft стратегий (использование которых вообще невозможно на платформе МТ4 или МТ5), а также для советников, использующих различные расчеты внутри свечей.

Но для таких советников слишком велико влияние брокеров, о чем я писал в этой статье. Если советник не пипсует по полпункта, нет никакой нужды тестировать его на тиковых данных – это очень долго и ресурсозатратно. К тому же бесплатные тиковые данные, которые можно найти в сети, не самого хорошего качества и за не слишком длительный период времени, а платные стоят довольно приличных денег – далеко не факт, что такие вложения вообще у вас окупятся.

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

Сколько нужно данных? Чем больше, тем лучше. Дело в том, что чем больше сделок в тесте, тем меньше риск «подгонки», тем более статистически весомый результат и тем больше вероятность того, что ваша система продолжит работать так же в будущем, как работала в прошлом. Поэтому очень желательно использовать всю доступную историю.

Выбор таймфрейма

Что касается таймфрейма, используемого для работы, то тут дело вкуса. При работе на низких периодах вроде М5 или М15, уходит много времени на тесты, к тому же такие системы очень требовательны к качеству котировок, сильно брокерозависимы и на конечный результат прилично влияют издержки, такие как спред, свопы, проскальзывания, комиссии.

С другой стороны, торговля при помощи подобных систем более динамична, ведь они могут совершать десятки сделок в день. Из-за относительно коротких стопов можно обойтись депозитом всего в 100 долларов. Как следствие, прирост депозита, как правило, более стремительный, чем у долгосрочных систем. Хотя и чаще всего более короткий – чем ниже период работы системы, тем она получается, как правило, менее стабильной.

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

Еще одна проблема – для долгосрочных систем необходимо достаточно большое количество исторических данных. Плюс на тех же дневных графиках стопы даже размером в два ATR получаются порой довольно большими, и чтобы соблюдать правильный мани менеджмент может не хватить и 2 000 долларов. Кроме того, при работе на высоких таймфреймах, как правило, используют портфели систем, чтобы сгладить кривую доходности. Тем не менее, выдерживать психологически десятки открытых сделок, болтающихся то в плюс, то в минус целыми неделями — довольно нелегко.

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

Качество исторических данных

Одной из распространенных причин получения недостоверных результатов при тестировании советника в тестере стратегий терминала MetaTrader 4 являются проблемы с целостностью исторических котировок. В силу разных причин в истории цен, имеющейся в наличии в терминале, могут присутствовать «дыры», которые приводят к разрывам в ценовом потоке, не имеющим ничего общего с реальностью. Надо ли говорить, что тестировать советник по таким котировкам не имеет большого смысла?

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

Ошибки в данных могут принимать несколько различных форм. Довольно часто при торговле попадаются тики с явно ошибочными ценами, просто невозможными. Например, цена на секунду взлетает до небес, а затем, в следующую секунду, возвращается обратно. Это так называемая «шпилька», которыми еще буквально несколько лет назад грешили почти все брокеры. Такая ошибка может привести к сделке с огромной прибылью или убытком. А если таких «шпилек» в данных много, то тест любой системы будет далек от реальности. Особенно это касается тестов различных сеточных стратегий, где «шпилька» — это гарантированный слив депозита, и, как следствие, тест не проходит фильтр.

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

Ну и самая распространенная ошибка — это пропуск данных. Просто по каким-то причинам определенный отрезок времени в базу не записывается, образуя разрывы котировок. Чаще всего такая проблема встречается в праздники, на Новый Год и в ночные периоды. Чем «дырявее» график, тем меньше реальности в тестах. Эта проблема также решается заполнением пробелов из других источников.

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

Какими, на мой взгляд, должны быть качественные исторические данные?

Качественные исторические данные формируются из баров периода М1. Все, что выше, дальше отодвигает нас от точности воспроизведения поведения советника. При формировании истории котировок лучше всего использовать котировки М1. Более того, в идеале тестирование советников лучше всего проводить по котировкам М1. При этом необходимо убедиться, что в самом коде советника жестко заданы периоды, а не выставлен период по умолчанию (Period()), иначе вы получите совсем не те результаты, на которые рассчитывали, ведь алгоритм будет работать не так, как планировалось.

Также стоит помнить, что советник просто обязан работать именно на открытии свечи. Для этого, как правило, в код советника прописывают специальную функцию, которая разрешает торговлю только когда открывается новая свеча заданного таймфрейма. Для того, чтобы делать надежные тесты не по закрытию свечи, вам будут нужны качественные тики и специальный софт, позволяющий проводить такие тесты. Если этого у вас нет — терминал будет сам придумывать то, что творилось внутри свечей. Сами понимаете — он может напридумывать все, что угодно.

Такие данные не имеют существенных провалов, то есть так называемых «дыр». Это зависит в первую очередь от поставщика котировок – насколько бесперебойно работало оборудование, сохраняющее исторические данные.

Такие котировки не имеют пропусков единичных или нескольких баров. В идеале нужно иметь стопроцентную полноту котировок (не путать с качеством моделирования). 100% полнота истории минутных котировок, на мой взгляд, необходима потому, что из минутки формируются последующие таймфреймы и отсутствие некоторых минутных баров, в конечном итоге, порождает «кривые» бары более высоких таймфреймов.

Сразу хочу обратить внимание, что мало в каком ДЦ есть собственная длительная история котировок в открытом доступе, особенно это касается котировок маленьких таймфреймов. О том, где можно взять исторические данные, мы говорили в этой статье.

Анализ дыр на истории котировок

Узнать качество графика поможет скрипт history_data_analysis.

Этот код выявляет в данных истории отсутствующие бары («дыры») и разрывы (большие дыры), определяет их размер, длительность и гэп. Работает на всех инструментах и предназначен для внутредневных графиков, поэтому таймфрейм ограничен периодом H4.

При анализе учитываются только выходные дни (суббота и воскресение — 48 часов), остальные моменты код считает дырами или разрывами. Для удобства работы на графике в коде предусмотрен фильтр, где можно задать количество отсутствующих баров на таймфреймах (M1,5,15,30), которые код будет игнорировать как дыры, количество отсутствующих баров (минимальное значение), которое код считал бы разрывом (по умолчанию 20 баров), а также количество отсутствующих пипсов, которые код будет игнорировать как гэп. После запуска скрипта и окончания его работы вы увидите сообщение:

Для примера я провел тестирование качества котировок пары EURUSD Alpari:

Ну и для примера сделаем такой же тест для котировок Dukascopy EURUSD M1:

Как вы можете убедиться, использовать для тестирования лучше всего данные от Dukascopy — общее качество котировок тут находится в районе 99,55%. Всего 0,45% пропусков и разрывов, очень неплохой результат. Тем не менее, у нас по-прежнему 4662 разрыва – не хватает почти двадцать пять тысяч баров и целых 39740 пунктов. А поэтому — для максимально достоверных тестов эту проблему придется устранять.

Доведение качества котировок до 100%

1. Я рекомендую для базовой истории котировок использовать данные от Ducaskopy, в них мало всего дыр и их потом меньше придется «латать». Для этого можно воспользоваться любой вспомогательной программой, которая загружает тики Ducaskopy. Я рекомендую Tickstory Lite.

2. После закачки тиков в программе Tickstory Lite, нажмите правой кнопкой мыши на интересующей вас валютной паре и выберите пункт «Экспорт в файл»:

3. Заполните поля с настройками:

4. Откройте каталог данных:

5. В каталоге данных находим папку history, затем находим нужную папку по названию нашего сервера:

6. Удаляем все hst файлы нужной валютной пары.

7. Экспортируйте скачанные котировки в терминал, нажав F2, выбрав нужную валютную пару, период М1 и нажав кнопку «Импорт»:

8. Откройте график валютной пары периода М1.

9. Проведите тест качества при помощи скрипта history_data_analysis. По полученному в результате тестирования текстовому файлу нужно найти наиболее критичные места. Затем эти критичные места удаляются. Их мы будем позже восполнять котировками из других источников (ставить так называемые «заплатки»).

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

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

11. Прежде всего ваши данные для заплаток нужно привести к формату csv, если они у вас в hst формате, и в этом поможет скрипт hst2csv.

12. Затем эти данные из других источников нужно привести к правильному времени, а именно выставить для них тот же GMTOffset, что и у вашего брокера, и у корректируемых котировок. Не стоит упускать из виду, так это информацию о том, какой точно сдвиг относительно GMT у конкретного источника котировок, менялся ли он когда-либо и использовался ли перевод на зимнее/летнее время. Например, котировки Alpari до 2020 года имели GMT+2, а после 2020 – GMT+3.

Чтобы это сделать, вам потребуется отдельный терминал. В него нужно по очереди загружать котировки каждого из источников, изменять время GMT при помощи скрипта GMTconverter, который я написал, когда обнаружил, что по какой-то причине в сети подобных скриптов нет. Скрипт вы сможете найти/скачать в конце статьи. Также вы можете при импорте скачанных котировок в отдельный терминал указать нужный GMT, но иногда это не работает. Для того, чтобы указать нужный GMT при импорте котировок, нужно указать «Сдвиг» в часах. Затем эти котировки нужно экспортировать, нажав кнопку экспорт. Таким образом, котировки сохранятся в нужном формате и с нужным вам GMT.

13. После приведения котировок к нужному виду просто открываем наш файл с нашим тестом качества и источник заплаток, который мы получили. Причем открывать файлы нужно именно в Блокноте, так как Excel может не открыть файл целиком, если истории довольно много.

14. Находим каждый из проблемных отрезков в файле для заплаток и переносим куски в отдельно открытый файл Блокнота:

15. Если в одном из источников не хватает данных, пробуем найти в других источниках.

16. Далее сохраняем подготовленный файл в формате csv. Просто меняем расширение файла с txt на csv.

17. Импортируем в терминал к котировкам Ducascopy. Удаленные участки автоматически восстановятся из подготовленного нами файла.

18. После долгой и кропотливой работы по импорту заплаток нужно закрыть терминал и открыть его снова, чтобы залатанная история подгрузилась. Снова набрасываем скрипт history_data_analysis и смотрим на результат нашей работы.

19. Теперь приходит очередь второго скрипта AllMinutes_Step1. Что он делает? Дело в том, что те минутные бары, в которых ничего не происходило и не было никаких цен, терминал автоматически пропускает. Скрипт осуществляет техническое наполнение пропущенных баров для обеспечения в последующем правильной генерации свечей более высоких таймфреймов. Итак, бросаем его на график и включаем вкладку «Эксперты». Это вкладка нам нужна, чтобы увидеть сообщение о завершении работы этого скрипта и его краткий отчет.

20. Как только появилось сообщение о завершении работы скрипта, нужно открыть автономный график (Файл — Открыть автономно — ALLEURUSD1):

21. Бросаем на открывшийся график первый скрипт history_data_analysis. Получаем отчет, к которому мы вернемся несколько позднее.

22. Далее в работу запускаем третий скрипт — hst2csv. Дело в том, что предыдущий скрипт в процессе своей работы не просто заполнил на графике в автономном режиме все пропущенные бары, но еще и сформировал такую же полную базу котировок в формате hst. Файл образовался в папке истории и имеет название «ALLEURUSD1». Запускаем на автономном графике скрипт history_data_analysis. Теперь нам придется этот файл ALLEURUSD1.hst переформатировать в управляемый (с точки зрения сдвигов времени) формат .csv, что собственно и будет делать скрипт hst2csv.

23. А теперь вернемся к отчету, сделанному по результатам анализа автономного графика. Это необходимо для того, чтобы отследить те минимальные пробелы, которые могут быть не замечены скриптом. Такое случается не всегда, но иногда бывает. Скрипт нашел и заполнил тысячи одиноких баров, но, увы, мог несколько и пропустить. А поэтому этот недочет придется устранять вручную.

В принципе, это несложно — в отчете в таблице указаны конкретные координаты этих пропусков. Поэтому работа очень похожа на ту, что мы делали в пункте 14. В общем, заходим в папку «Файлы». Открываем «ALLEURUSD1.csv» при помощи программы Блокнот. Используя функцию «поиск», оказываемся в нужной дате. Заполняем пропущенные бары последней известной ценой, не забывая изменять время баров.

24. Открываем в терминале архив котировок (F2), удаляем всю хранящуюся в нем историю формата hst, после чего загружаем этот новый сконвертированный файл. Снова закрываем и открываем терминал. Открываем график, в нашем случае EURUSD M1 и делаем контрольный замер скриптом history_data_analysis на случай, если мы что-то упустили.

25. Дело осталось за малым — за скриптом period_converter_ALL. С ним вообще все просто — бросаем на график и смотрим в верхний левый угол — пока там бегут цифры, скрипт еще работает. Как только движение в том углу прекратится, значит работа завершена. И в конце последовательно переключаем все таймфреймы, чтобы они подгрузились.

Заключение

Вот и все — в нашем терминале теперь котировки 100% качества. Можно получить максимально точное тестирование и хорошую гарантию достоверности результатов, если есть вспомогательные таймфреймы периода М1, которые на 100% покрывают исследуемый период.

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

Получите бонус за открытие торгового счета:
  • Бинариум
    Бинариум

    № 1 на рынке бинарных опционов! Идеально подходит для новичков и малоопытных трейдеров. Получите бонус за регистрацию торгового счета:

Добавить комментарий