Секреты TSLab | Торговые роботы | События
16 Фев

Поставщик исторических данных. Использование и настройка.

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

Поставщик  исторических данных как инструмент.

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

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

  • Котировки должны быть в “правильном” формате.
  • Они должны содержать информацию о ценах и объеме.
  • Необходимо знать шаг цены инструмента и сколько разрядов после десятичной точки.

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

Поставщик исторических данных. Использование и настройка.

Рисунок 1. Использование поставщика исторических данных.

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

 

Получение исторических котировок.

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

 

Настройка поставщика данных

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

Поставщик исторических данных. Использование и настройка.

Рисунок 2. Первый этап настройки исторического поставщика данных.

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

Поставщик исторических данных. Использование и настройка.

Рисунок 3. Второй этап настройки исторического поставщика данных.

Папка – у меня указана папка “FORTS\RI” и в данной папке находятся сразу несколько текстовых файлов. Каждый из текстовых файлов будет представлять собой отдельный инструмент, предоставляемый нашим поставщиком исторических данных. Если у вас в папке находятся сразу 10 текстовых файлов, то у поставщика будет 10 инструментов на выбор. Рисунок 1 представляет собой работу именно с этим поставщиком. Имя у него “RI”.

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

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

Количество знаков – обязательное и важное поле. Вы должны указать сколько знаков после запятой может содержаться в цене инструмента. Если это SI, то будет 0 знаков. Если это SBER то будет 2 знака. Ну, вы поняли. Если указать данную опцию неправильно ничего страшного не случится и цены будут использоваться правильные, но работать будет несколько менее удобно. Как пример, приведу вывод инструмента на график.

    // создаем новую графическую панель и выводим на нее наш инструмент
    var pane = ctx.CreatePane("Main", 100, false);
    pane.UpdatePrecision(PaneSides.RIGHT, sec.Decimals);     // <---- именно Decimals содержит то, 
                                                             // что вы задали в Количество знаков.
    var color = new Color(System.Drawing.Color.Green.ToArgb());
    pane.AddList(sec.ToString(), sec, CandleStyles.BAR_CANDLE, color, PaneSides.RIGHT);

В результате работы этого, совершенно типового, кода у нас будет следующая картинка:

Поставщик исторических данных. Использование и настройка.

Рисунок 4. Результат ошибок в поле Количество знаков.

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

Шаг цены – этот и последующий параметр влияют непосредственно на результаты тестирования и обязательны к правильному заполнению. Для фьючерса РТС это 10, для акций Сбербанка это 0.01. Как это будет влиять на результаты? Сделки совершаемые вашим алгоритмом будут иметь цены выровненные по шагу цены, а значит если стоит 10, то цены будут 1000, 1010, 1020 но никак не 1001, 1005. Если же для фьючерса РТС поставить 1, то будете в тестах получать сделки, которые никогда не могли бы произойти в реале и это заметно скажется на результатах. Предлагаю вам это проверить на любой вашей стратегии где много сделок.

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

Размер лота – тоже важная опция. Если ваш алгоритм в процессе работы пробует наращивать сайз позиции, то размер лота критичен для вас. Если размер лота на бирже для инструмента равен 100, то нельзя тестировать исходя из размера лота 1. Это ведь совсем другая сумма и совсем другой шаг в размере позиции, а значит и другие риски и другие возможные убытки. В общем, поверьте, это действительно важная опция.

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

Валюта – чисто косметическая опция позволяющая видеть результаты тестирования в “правильной” валюте. Нередко бывает что люди ошибаются в том, что они видят в результатах теста. Для фьючерса РТС это пункты и стоит себе напоминать что это они, а не доллары или рубли. Для акций же мы видим чистые рубли и голову ломать не нужно с пересчетами. В общем, по настроению заполняем.

Поставщик исторических данных. Использование и настройка.

Рисунок 5. Результат тестирования с правильной валютой.

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

 

Ну вот, собственно, и все. Используйте историю с умом и тогда реал не будет бить по вам железным молотком.


comments powered by HyperComments

Влад
2016-12-22 00:51:37
Добрый день! Скажите, а есть ли возможность настроить ТсЛаб на постоянное считывание текстового файла с данными, в который котировки будут подгружаться с периодичностью, к примеру в 1 мин? Это было бы удобно как минимум для первоначального тестирования системы, а уж потом покупать коннектор!? Спасибо!
ra81
2016-12-22 21:18:47
а смысл? на виртуальной бирже будут виртуальные сделки. Если вы в виз редакторе соберете скрипт он не может работать криво. Так же просто протестируйте не текстовом источнике и все. Сидеть смотреть как оно виртуально торгует никакого проку нет. Все нюансы вылазят именно на реальных торгах. Хотя вроде бы так сделать можно. Но личного опыта нет ибо пользы в этом никакой не увидел.
Елена
2017-01-01 14:42:20
Казино Вулкан раздают деньги сегодня http://cenforce100.ru/casino-vulkan.php
14
Июл
2017

Доверительное управление. Результаты в июне 2017 года.

Доверительное управление. Результаты в июне 2017 года. Июнь индекс РТС вновь провел преимущественно в боковых движениях, а… »

11
Июн
2017

Доверительное управление. Результаты в мае 2017 года.

Доверительное управление. Результаты в мае 2017 года. В мае “болтанка” индекса РТС продолжилась, на паре… »

7
Май
2017

Доверительное управление. Результаты в апреле 2017 года.

Доверительное управление. Результаты в апреле 2017 года. В апреле мы наблюдали очередной месяц “боковика” по… »

2
Апр
2017

Доверительное управление. Результаты в марте 2017 года.

Доверительное управление. Результаты в марте 2017 года. В марте волатильность на рынке несущественно выросла. Все… »

7
Мар
2017

Доверительное управление. Результаты в феврале 2017 года.

Доверительное управление. Результаты в феврале 2017 года. Февраль был самым коротким торговым месяцем, к тому же… »