вести ByBit Charts

вести ByBit Charts

1 апреля 2024, 00:51
Maxim Kuznetsov
0
36

beta подрастает к релизу и обзаводится новыми новшествами :-)

нелишний раз напоминаю - чарты ByByt будут доступны в платформе MetaTrader 5

Вслед за https://www.mql5.com/ru/blogs/post/756894 идёт работа над релизом.

Пойман "за живое" и заборот неприятный баг (не вполне мой, редкий, сложно ловимый, но всё-же):

порой МетaTrader мастерски трёт историю инструмента. Теперь синхронизатор ByBitSync перепроверяет "а не затёрта ли трудами добытая история к чёртовой матери"  и при малейших сомнениях перекачивает её заново.

Добавляется поток 1ms и торговая лента.

Историю ленты конечно девать некуда, но цена last и volume_real в MqlTick будут выставляться оттуда. В публичной beta volume_real соотносился с объёмом из стакана. Теперь как по спецификации будет объёмом последней сделки. Как side-effect пропадают зазря данные bid1volume, ask1volume (объёмы в стакане по границам спреда).

На нём-же попробован более быстрый парсер json, к релизу прочие части переведу на него

В ATcl (интерпретатор tcl) добавляется поддержка типов ulong и long long.

Самому tcl по барабану, он в случае переполнения long переходит на рассчёты в wide/big int, где не ограничено число разрядов, а вот интерфейсу mql<->tcl приходится отдельно рассказывать :-) 

Понадобилось при измерении времени, чтобы корректно в Mql получать результат "clock microseconds" (системное время в микросекундах)

Самыми медленными частями оказались:

         ВНЕЗАПНО: CustomRatesUpdate() обновляющий одну последнюю свечу. Иногда (редко, но) втормаживает аж до 2-х секунд. По невыясненным пока причинам, подозреваю что связано с кешированием в терминале, пересчётом таймфреймов и сбросом базы на диск. Потому что действительно редко, подряд несколько раз и потом часами опять всё гладко и быстро.

вполне ожидаемо, цикл перебора чартов : for(long chart=ChartFirst();chart!=0; chart=ChartNext(chart)).. Но оказалось что может на несколько секунд. Что там за это время терминал делает непонятно. (может валюту майнит, нет других соображений про причину такой занятости :-) ). Полностью от этого цикла не избавиться, но к релизу он будет прерываться/отменяться при "перерасходе времени". Или придётся добавлять ещё один сервис, контролирующий чарты.  

Публичную версию и интерпретатор tcl можно скачать по ссылкам из недавнего анонса https://www.mql5.com/ru/blogs/post/756894