Особенности работы с Графиком в TSLab
Использование кешированных данных для построения графика
Все данные, использующиеся для построения графиков, загружаются с сервера брокера и сохраняются в Вашем компьютере в кеше. Кеш используется для построения разных графиков с целью уменьшения объема загружаемых данных и ускорения процесса построения графика. Если отсутствует подключение к серверу, то для построения графика будет использована имеющаяся информация из кеша. Сохранение данных на компьютере, кеширование, происходит с интервалами 1, 5, 15, 30 и 60 минут. В случае использования другого размера интервала, используется кеширование с интервалом в одну минуту.
Внимание! Если график строится с учетом отображения информации в реальном времени, то последняя правая свеча (Ghost Bar) показывает информацию по текущему временному периоду и изменяется с учетом изменения цены на рынке.
Нестандартный таймфрейм
Все нестандартные таймфреймы считаются от 0 часов 0 года.
Особенности исторических данных на серверах брокеров
Внимание! Не рекомендуется использовать тиковый график для разработки и тестирования торговых систем. Делайте это, если Вы понимаете, как работают механизмы биржи и программы, какая работа со временем в тиках ведется. В других случаях не рекомендуется. Рекомендуемый минимальный период для работы с графиками 1 секунда.
Сервер брокера хранит ограниченный объем информации. Если сервер не поддерживает секунды, то секунды программой строятся из тиков (как правило одна сессия).
Как правило стандартные таймфреймы (интервалы), есть на сервере брокера: 1тик, 5сек, 15сек, 30сек, 1мин, 5мин, 15мин, 30мин, 1час, 1день. Эти интервалы TSLab не достраивает в оффлайне (не сжимает). Например, если у Вас есть история с интервалом 1 минута и вы не подключены к брокеру, то построить средствами свойств скрипта интервал 15 минут вы не сможете. При этом построить 14 минут можно (график, которого нет на сервере брокера).
Если появляются разрывы в данных, то докачка секунд и тиков как правило работает только в пределах текущей сессии. (Открыть Вид - График - Свойства - Выбрать инструмент - Таймфрейм - Выбрать дату перезагрузки) Правой кнопкой на графике - в контекстном меню Перезагрузить данные.
Таков механизм работы с поставщиком. Если у Вас есть накопленный кеш тиковых данных, но нет минуток, то 60 секундных данных в офлайн режиме будет больше, чем минутных, потому что минутные это стандарт на сервере, а секундные - нет. В программе доступен поставщик "Кешированные данные". Он находится доступен в поставщиках Исторические данные. Этот поставщик данных умеет читать тиковые кеши. Через него сделайте собственный инструмент. В настройках поставщика Начинать с +, далее название, далее папка, далее выбор инструмента. У данного инструмента из тиковых данных можно будет построить любой таймфрейм.
Работа механизма построения графиков в TSLab
Внимание! Не рекомендуется использовать тиковый график для разработки и тестирования торговых систем. Делайте это, если Вы понимаете, как работают механизмы биржи и программы, какая работа со временем в тиках ведется.
При работе на криптовалютных биржах, МИНИМАЛЬНЫЙ период для разработки алгоритмов, опирающихся на график инструмента 1 секунда. При условии, что машина с программой стоит в одной стойке с биржей или рядом с биржей. При этом подразумевается работа только с лимитными заявками. И подбирать, исходя из ликвидности инструмента. Если у Вас нет возможности поставить свой сервер в одной серверной с биржей, то рассматривать алгоритмы, менее чем 1 минута не рекомендуется. При работе на Московской бирже, старайтесь устанавливать машину с программой рядом с биржей. Здесь нет рекомендаций по минимальным таймфреймам. Работать можно довольно быстро, но здесь следует знать, что быстрая работа наилучшим образом реализуется с коннектором Plaza II и машиной в колокации биржи (работа может вестись от 5мс). При подключении через брокера (не Plaza), таймфрейм менее секунды не рекомендуется. Так как ответы брокера по своим заявкам могут задерживаться до 600-800мс. При работе через Российских брокеров на иностранных площадках лучше изначально разрабатывать алгоритмы от 1 минуты.
Прочитайте дополнительно предыдущую главу Особенности исторических данных на серверах брокеров
Начальные значения
Для получения ранее не вызываемого инструмента на график, программа должна быть подключена к серверу или должен быть создан поставщик офлайн данных. При вызове инструмента на график (Вид-График) или в лаборатории скрипта (Лаб-Скрипты), скачиваются доступные на сервере брокера (биржи) готовые свечи за указанный период в свойствах графика или в свойствах лаборатории скрипта.
Если инструмент уже ранее вызывался, и стояло ограничение ДатаОт, а Вам нужны более глубокие данные, то исторические данные необходимо запросить с сервера по кнопке "Перезагрузить данные" с графика, перед этим сняв ограничение ДатаОт и выбрав Дату перезагрузки. Дата перезагрузки - Дата от которой необходимо перезагрузить данные с сервера.
Данные с барами, при отключении от поставщика данных, сохраняются на жесткий диск в bin.gz файлы в папку НазваниеПоставщикаДанныхCache. Папка находится на одном уровне с папкой логов. Инструменты - Папка с кешами (не касается офлайн поставщика).
Сделки по инструментам
Когда программа подключена к серверу и идут торги, в программу поступают сделки с рынка.
Данные поступают в одном из следующих случаев:
Запущен агент с данным инструментом.
Открыта лаборатория скрипта с данным инструментом и включена опция в свойствах скрипта "Обновлять в режиме реального времени"
Инструменты выведены в таблицу Вид - Котировки.
Сделки запрошены в таблице Вид - Сделки по инструментам.
В режиме агента на основе этих сделок рассчитывается агент, из этих сделок строятся бары. При отключении от поставщика данных из оперативной памяти эти данные записываются в bin.gz файлы в папку НазваниеПоставщикаCacheTrade.
Если программу выключить из диспетчера задач Windows, то данные могут не записаться на жесткий диск. Или записаться с ошибкой, в этом случае при следующем подключении к брокеру, график может перестать обновляться. В этом случае следует удалить bin.gz файл за последний день, при выключенной программе. (очень редкая ситуация, даже в тех случаях, когда выключался свет и компьютер переставал работать резко) В сделках намного больше данных, чем в скаченных барах. Например, только имея сделки можно использовать кластерный анализ и горизонтальные объемы.
Если лаборатория не обновляется в режиме реального времени или агент не обновляется, а приходят только бары в готовом виде, по окончанию таймфрейма, значит сделки не приходят или не включен флаг "Обновл.в режиме реалтайм" в свойствах скрипта, так же в лаборатории может стоять ограничивающая опция ДатаК.
Если не приходят сделки при активном подключении и идут торги на рынке, это повод обратиться в службу поддержки брокера или в нашу службу поддержки.
При старте подключения перезапрашиваются текущие сделки по инструментам за текущий торговый день. На бирже MOEX день начинается в 19:00 и заканчивается в 19:00 Именно за такой период сделки доступны на бирже. У Графика в контекстном меню (по правой кнопке) есть функция "Перезагрузить данные" и в свойствах настройка "Дата перезагрузки" (не касается офлайн поставщиков данных):
Поставьте "Исп.Дату перезагрузки", если в этом есть необходимость.
Правой клавишей на графике - Перезагрузить данные.
При выключенном флаге "Исп.Дату перезагрузки" будет стерт весь кеш, накопленный при работе и закачаны данные, которые есть на сервере. "Исп.Дату перезагрузки" устанавливает дату для кнопки "Перезагрузить данные" в контекстном меню графика. При запросе, весь накопленный кеш, начиная от указанной даты в "Исп. Дату перезагрузки" и по текущую дату будет стерт с жесткого диска, и будет запрошена история с сервера. Таким образом, чтобы была скачана пропущенная дата, необходимо, чтобы это дата попала в диапазон установленной даты "Дата перезагрузки".
Поэтому, если Вы не уверены в том, что делаете или не знаете, какая история баров есть на сервере, то лучше скопировать данные из папки cache и папки cachetrade, и при необходимости вернуть файлы программе в эти папки, после экспериментов. Собственно, если где-то взять такие файлы (у друга), то положив их в папку, при условии, что в списке инструментов поставщика такой инструмент есть, программа эти файлы увидит (после перезагрузки программы).
Поведение опции "Перезагрузить данные".
(На графике правой кнопкой - Перезагрузить данные). Поведение может отличаться, в зависимости от сервера с которым работаете:
Однозначно "ничего не будет работать" с таким поставщиком как QuikLua, так как истории там не много и не по всем инструментам. На таком поставщике загрузка данных из таблицы Обезличенные сделки (в программе TSLab таблица "Сделки по инструментам") может занимать большое количество времени.
На криптобиржах Huobi, Deribit и в Binance сделали историю, прочитайте особенности.
Не будет работать с PLazaII , так как там совсем истории никакой, но с подключением Plaza на интернете и местом физического положения компьютера не экономят. Т.е при этих подключениях будет доступна только та история, которая есть в сделках по инструментам, которые выдает брокер/биржа.
Настройка "Исп.Дату перезагрузки" позволяет четко определить, сколько именно за последние дни нужно загрузить. Работает от указанной даты, до текущей даты. Таким образом, при Перезагрузке данных, не стирается кеш, накопленный за прошлые даты.
Для некоторых поставщиков данных, имеющих хорошие сервера истории, настройкой можно пренебрегать, использовать, как ускоритель закачки данных.
Для этих серверов можно пренебрегать настройкой:
Netinvestor(при подключениях QuikDDE)
IQFeed
Deribit только для фьючерсов perpetual
Пренебрегать осторожно(чего-то может не быть):
Transaq
Alor
С остальными всеми очень осторожно.
В свойствах скрипта тоже есть эта настройка. При восстановлении интернет-связи, перезагрузка всего скрипта будет идти с установленной даты, а не с самого первого тика в кешевых данных инструмента.
Тиковый график с несколькими инструментами
График 5 тиков. В видео видно, как на верхнем графике появляется бар и через некоторое время изменяется.
Что произошло.
Все тиковые графики, кроме 1 тик, невозможно выравнивать по времени. Бары могут приходить внутрь уже закрытых по второму инструменту.
После закрытия бара ликвидного инструмента, может прийти тик менее неликвидного в прошлое, что и видно в фильме выше. Это не касается полноценных баров, например 1 секунда.
Last updated