Skip to main content

Переработка конвертера графиков


С этим модулем в терминале есть целый ряд проблем: невозможно построить кастомные таймфреймы с произвольным значением из-за странной логики, которая требует кратности таймфрейма 24 часам (суткам) и 168 часам (неделе). При попытке построить, например, ТФ H15 или H32 вы получите не график, а сплошную ошибку.

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

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

Каким на мой взгляд должен быть правильный конвертер таймфреймов: 

1) отсутствуют ограничения на предельный размер таймфрейма. Можно построить 2 недели, 3 месяца, полгода и так далее. Хоть в одну свечу можно график ужать

2) есть возможность выбрать базовый таймфрейм (донор) для построения более старшего. То есть когда можно, например, построить range график из тиков, а можно также из секунд или минут. Это решает сразу два вопроса: позволит сэкономить ресурсы (не нужно всегда грузить миллионы тиков) и уберет эффект "забора", который периодически возникает на экстремально быстрых движениях цены при построении графиков из тиков.

3) отсутствует требование по целостной кратности по отношению к каким-то старшим таймфреймам, как сейчас таймы должны кратно и нацело умещаться в сутки (24 часа) и неделю (168 часов), из-за чего в конце дня построение обрывается и в результате на выходе - рванина. То есть можно строить любые таймы: 15 часов, 32 часа и так далее. Так будут получаться корректные как временные, так и все прочие графики

Более подробное описание проблем и примеров правильных решений - в переписке с саппортом.

Status: Rejected3 comments

Log in to comment and vote

Comments3

  • ATAS user

    Team•

    Apr 5, 2024

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

    • mdmtr

      •

      Apr 5, 2024

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

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

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

    • mdmtr

      •

      Apr 5, 2024

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