Тиковый и секундный график Binance
Last updated
Last updated
Внимание! Не рекомендуется использовать тиковый график для разработки и тестирования торговых систем на криптовалютных биржах. Делайте это, если Вы понимаете, как работают механизмы биржи и программы, какая работа со временем в тиках ведется и за какой промежуток времени Вам поступают пачки с тиками (среднее время прихода пачки). В других случаях не рекомендуется.
МИНИМАЛЬНЫЙ период для разработки алгоритмов, опирающихся на график инструмента 1 секунда. - на криптовалютных биржах. При этом подразумевается работа только с лимитными заявками. И подбирать, исходя из ликвидности инструмента. И подразумевается, что торговая машина стоит не далеко от сервера биржи. Сервера биржи находятся в Токио. Для биржи Binance желательно разрабатывать алгоритмы от 15 секунд и выше.
Когда могут потребоваться тики?
Тики позволяют работать с такими данными, как Кластерный и объемный анализ.
Загрузка пропущенных тиков во время работы осуществляется с помощью встроенной функции скачивания пропущенных данных с графика.
работает по параметру Глубина загрузки тиков,мин в настройках поставщика данных.
Работает настройка при подключении к бирже, от последней известной даты уже кешированных данных в bin файлах программы. То есть от последнего сохраненного тика до текущей даты.
При отключении от поставщика данных или согласно настройкам поставщика данных, программа сохраняет накопленные во время работы агентов и загруженные тики в Bin файлы. В папку со всеми сохраненными данными легко попасть из программы: Инструменты - Папка с кешами.
Найдите папку НазваниеПоставщикаCacheTrades
Путь до папки: К примеру, поставщик данных в менеджере подключений называется BinanceFutures А пользователь windows TSLab В таком случае получим путь: C:\Users\TSLab\AppData\Local\TSLab\TSLab 2.0\BinanceFuturesCacheTrades
В этой папке сохраняются тиковые данные, например, файл BTCUSDT.02.09.2022.bin.gz В файле сохранены тиковые данные по инструменту за второе сентября 2022 года.
Интересующий Вас инструмент с последней датой и является местом, откуда сработает загрузка тиков, даже при большом параметре Глубина загрузки тиков,мин. То есть, если у меня последние тиковые данные за 02.09.2022, то загрузка будет идти от этой даты до текущего дня.
Если инструмент запрашивается с графика впервые, будет загружено столько, сколько указано в параметре Глубина загрузки тиков,мин
Если стоит 0 минут, загрузятся тики за последние 20 минут.
Механизм активируется при старте поставщика данных ! Поэтому до окончания загрузки данных поставщик будет в статусе Download/Загрузка
Ограничение в программе, не более 3000 дней. Для загрузки большой истории требуется много оперативной памяти.
Биржа позволяет загружать тики всей истории.
Как это можно сделать в программе, исходя из того функционала, который имеется, кратко:
1. В настройках поставщика данных установить параметр Глубина загрузки тиков,мин на большое значение, например 4300000. Настройка "Не сохр.тики" должна быть выключена.
2. Открыть простой график Вид - График. В свойствах выбрать инструмент. Выбрать тиковый таймфрейм, например, 100 тиков. Выключить настройки ДатаОт и ДатаК
3. Открыть папки с кешевыми данными. Сохранить конфигурацию программы. Закрыть программу.
4. В папке CacheTrades и Cache удалить по интересующему инструменту секундные и тиковые данные.
5. Запустить программу. Подключиться к бирже. Запустится механизм загрузки исторических тиковых данных.
6. Ожидание загрузки может быть очень длительным, если выбран большой период.
7. От поставщика данных можно отключиться в любой момент времени. Для того, чтобы поставщик сохранил загруженное на диск в файлы и далее перезагрузить программу, чтобы снять накопленный кеш в оперативной памяти.
8. При следующем подключении, не меняя каких либо настроек программа начнет загрузку с последнего сохранненного тика. Таким образом, при ограниченных ресурсах компьютера можно загрузить любые данные.
9. В настройках поставщика данных вернуть значение загрузки данных, например, 1440. В этом случае при каждом подключении тики будут загружаться за один день или от последнего загруженного тика, если он есть.
Если нужен секундный график: При выключении поставщика данных тиковый кеш из оперативной памяти сбрасывается в BIN файлы на жесткий диск. При следующем подключении, программа сможет собрать любой секундный(и любой другой) график. Первую сборку секундного графика необходимо сделать на всей доступной тиковой истории. После загрузки тиков, в графике выберите нужный таймфрейм. Например, 5 секунд. Выключите параметры Дата от и ДатаК и параметр Дата перезагрузки в свойствах скрипта. На графике правой кнопкой - Перезагрузить Данные. Программа из всех доступных тиковых данных соберет 5 секундные бары. А при отключении поставщика, программа из оперативной памяти запишет в bin файл 5 секундный график, в папку НазваниеПостащикаCache. Так как Вы загрузили все тики, то можно построить абсолютно любой таймфрейм и кешировать его в файлы. Если при первой сборке секунд ошиблись с датами, используйте стандартную перезагрузку данных с графика, с использованием даты перезагрузки.(Попробуйте удалить файл секундного графика при проблемах кеширования из тиков в секунды или в любой другой таймфрейм) Пример:
Нужна история для ZECUSDT за месяц. Установил Глубина загрузки тиков,мин 43200
Открыл вид - график, выключил ограничение ДатаК и ДатаОт. Выбрал инструмент и тиковый таймфрейм.
Инструменты - папка с кешами, перешел в папку cachetrades
Сохранил конфигурацию программы и Закрыл программу
В папке запустил поиск по инструменту ZECUSDT и удалил все найденные файлы(мне нужен только месяц) инструмента из папки с тиковыми данными.
Далее перешел в папку cache с барными данными. В папке Cache программа уже закешировала 5 секундные бары, для быстрой работы с таймфреймом. Удалил этот файл
При запуске программы открылся пустой график, BinanceFutures поставщик отключен. Я запускаю поставщика.
Пошла долгая загрузка тиков, при этом поставщик данных все время, пока длится загрузка тиков, будет находиться в состоянии download/Загрузка.
В данном конкретном примере запрос происходил с графика, запрос можно сделать из окна котировок. Вид -> Котировки. Для этого в настройках поставщика данных включите "Подписка на сделки с котир." В этом случае, если будет выбрано N-нное количество инструментов, запрос пойдет по ним всем. Учитывайте оперативную память и время. Вся тиковая история BTCUSDT загружается приблизительно за две недели. Загрузка таких данных может быть очень длительной, поэтому программу при таком запросе стоит оставить в покое. До тех пор, пока поставщик данных не перейдет в состояние Подключен. Или до того момента, когда ручное отключение поставика данных не станет необходимостью, при ограниченных ресурсах компьютера. При больших запросах тиков контроль можно осуществлять в лог файле программы. Инструменты - Папка с логами. Файл tslab.log Строка запроса данных при загрузке тиков с сервера выглядит следующим образом: 17:39:19.39[94]DEBUG:[BinanceFutures_Mischenko.LoadTrades] XRPBUSD: lastTradeTime=05.10.2021 21:24:22; load fromId=2429643; loaded trades=1000:
При загрузке активно используется оперативная память. Если Вы видите, что по диспетчеру задач оперативная память занята при скачивании тиков, это не означает, что памяти больше нет. При загрузке тиков есть кеш и он очень большой. Windows и NET сами следят за его очисткой. После отключения поставщика данных не обязательно перезагружать программу. Можно на некоторое время запустить на компьютере ресурсную задачу, например видеохостинг в браузере. Кеш памяти в TSLab будет очищен и браузер можно будет выключить, чтобы продолжить дальнейшую загрузку тиковых данных.
Сохранил конфигурацию программы и Закрыл программу. При запуске программа загрузилась с конфигурацией, в которой открыт график без каких либо ограничений по датам. Так как у меня много поставщиков, поставщик при выключении программы был выключен, чтобы мой запрос с Binance был не в момент, когда запускаются все поставщики.