БАГ при построении свечей!!!
Atom
13.05.2021
Greenn


Пример был разобран на ТИКОВОМ графике, хотя существует вероятность, что графики строятся неправильно на всех НЕСТАНДАРТНЫХ типах (range, renko итд)

Кластера начинают неправильно принтоваться ПОСЛЕ наступления нового торгового дня (как минимум)


1.png Screenshot_3.png


Итог: Примеры была рассмотрены при использовании Гидры. Данные взяты из QScalp history (преобразованы с использованием Qsh2StockSharp конвертера)
Первый день истории строится ПРАВИЛЬНО, но после наступления следующего торгового дня все построение становится некорректным
Screenshot_3.png 57 KB (290) 1.png 197 KB (240) 1.png 206 KB (248) Screenshot_3.png 57 KB (286) 1.png 206 KB (485) Screenshot_3.png 57 KB (555)



Спасибо:


1 2  >
Sprite

Фотография
Дата: 13.05.2021
Ответить


Насколько я понимаю тут дело в том, что в библиотеке какая-то древняя проблема с закрытием последней свечки сессии/дня, т.е. последняя свечка никогда не принимает значение State == Finished, так как коннектор не знает что сессия закончилась. Вероятно так свечки у вас и сериализовались - незакрытыми.
Я пытался вручную закрывать свечки, отправляя в коннектор сообщения с новыми тиками, менял свойство свечи State, чистил хранилище, в общем много чего перепробовал, но удачные эксперименты ломались с обновлениями версии библиотеки. В итоге я устал поддерживать собственные хаки, забил на это и теперь просто держу такую особенность в голове, когда тестирую историю. Но если надо иметь идеальную историю и дело действительно в том, о чём я говорю, то можете изучить как в хранилище или на лету закрывать свечу.
Спасибо: Greenn

Greenn

Фотография
Дата: 13.05.2021
Ответить


sprite
Насколько я понимаю тут дело в том, что в библиотеке какая-то древняя проблема с закрытием последней свечки сессии/дня, т.е. последняя свечка никогда не принимает значение State == Finished, так как коннектор не знает что сессия закончилась. Вероятно так свечки у вас и сериализовались - незакрытыми.
Я пытался вручную закрывать свечки, отправляя в коннектор сообщения с новыми тиками, менял свойство свечи State, чистил хранилище, в общем много чего перепробовал, но удачные эксперименты ломались с обновлениями версии библиотеки. В итоге я устал поддерживать собственные хаки, забил на это и теперь просто держу такую особенность в голове, когда тестирую историю. Но если надо иметь идеальную историю и дело действительно в том, о чём я говорю, то можете изучить как в хранилище или на лету закрывать свечу.


Благодарю за ответ)
Получается вы используете только 1 день, когда тестируете стратегию?
Спасибо:

Greenn

Фотография
Дата: 13.05.2021
Ответить


Кстати, при использовании временнЫх свечек кластера правильно отображаются
Спасибо:

Sprite

Фотография
Дата: 13.05.2021
Ответить


Greenn

Благодарю за ответ)
Получается вы используете только 1 день, когда тестируете стратегию?


Нет, конечно не один день, но так как вы суммируете кластерные объемы в боксовых свечах, то неверными у вас будут значения только в первой группе от начала сессии. И ещё раз - если я прав (это можно проверить принудительно завершив последнюю свечку сессии), то дальше сами решайте как это побороть, на лету править свечки или править свечки в хранилище. Кстати, попробуйте задать размер бокса равным единице и посмотрите исправится ли ошибка (т.е. Timeframe2Multiplier = 1, Timeframe3Multiplier = 1).

Greenn
Кстати, при использовании временнЫх свечек кластера правильно отображаются


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

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

Спасибо: Greenn

Greenn

Фотография
Дата: 13.05.2021
Ответить


Цитата:
Нет, конечно не один день, но так как вы суммируете кластерные объемы в боксовых свечах, то неверными у вас будут значения только в первой группе от начала сессии. И ещё раз - если я прав (это можно проверить принудительно завершив последнюю свечку сессии), то дальше сами решайте как это побороть, на лету править свечки или править свечки в хранилище. Кстати, попробуйте задать размер бокса равным единице и посмотрите исправится ли ошибка (т.е. Timeframe2Multiplier = 1, Timeframe3Multiplier = 1).


Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент)
Спасибо:

Sprite

Фотография
Дата: 13.05.2021
Ответить


Greenn
Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент)

Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет "невалидна" только первая свеча в начале сессии, так?

Спасибо: Greenn

Greenn

Фотография
Дата: 14.05.2021
Ответить


sprite
Greenn
Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент)

Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет "невалидна" только первая свеча в начале сессии, так?



Я разобрался [laugh]. Благодарю за помощь)
Спасибо:

Юрий Басангов

Фотография
Дата: 14.05.2021
Ответить


Greenn
sprite
Greenn
Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент)

Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет "невалидна" только первая свеча в начале сессии, так?



Я разобрался [laugh]. Благодарю за помощь)


Уважаемые пользователи, я очень рад, что вы разобрались и надеюсь смогли решить проблему. Если это так, то может поделитесь источником этой проблемы, чтобы мы могли поправить библиотеку и устранить её в корне.
Также просьба пояснить как воспроизвести ошибку, т.е. какие настройки необходимо установить, чтобы увидеть сбой. Уточните, вы строили график в Гидре или в Терминале? Если в Терминале, то данные шли напрямую из коннектора? Какой коннектор вы использовали? Квик?

Спасибо:

Greenn

Фотография
Дата: 14.05.2021
Ответить


Цитата:
Уважаемые пользователи, я очень рад, что вы разобрались и надеюсь смогли решить проблему. Если это так, то может поделитесь источником этой проблемы, чтобы мы могли поправить библиотеку и устранить её в корне.
Также просьба пояснить как воспроизвести ошибку, т.е. какие настройки необходимо установить, чтобы увидеть сбой. Уточните, вы строили график в Гидре или в Терминале? Если в Терминале, то данные шли напрямую из коннектора? Какой коннектор вы использовали? Квик?


Добрый день. Суть проблемы состоит в том, что библиотека не может завершить НЕЗАКОНЧЕННУЮ СВЕЧУ. Например рассмотрим самую последнюю свечу первого дня истории графика 200 tick. С точки зрения заполнения она может не успеть закончиться к тому моменту, когда закончится торговый день. То есть условно остановиться на отсчете в 136 tick и иметь состояние "Активна". Но это неверно, потому что тиков в этом торговом дне больше не будет, а значит ее нужно ПРИНУДИТЕЛЬНО закрыть. Если этого не сделать, то она будет склеиваться с тиками следующего дня

Screenshot_1.png

Это Гидра:

1.png Screenshot_4.png
Цифры в кластерах должны совпадать с цифрами левой картинки, но из-за того, что произошла склейка - все кластера ВТОРОГО ДНЯ принтуются неверно.
Два дня которые здесь разобраны представил в виде файла QSH2_S# внизу
Screenshot_1.png 35 KB (272) Screenshot_1.png 35 KB (453) QSH2_S#.rar 800 KB (260) 1.png 155 KB (434) Screenshot_4.png 59 KB (472)
Спасибо:

Greenn

Фотография
Дата: 14.05.2021
Ответить


Что касается Терминала, то там проблема мне непонятна

QUIK connector и данные идут напрямую

Рассмотрим график RIM1 200 tick
Открываем терминал, подключаемся, добавляем свечи и загружаем историю только текущего дня. Параметры загрузки свечей следующие
Screenshot_7.png

Идет загрузка истории и вдруг с какого-то момента начинается неправильный принт кластеров (с 17.15 Санкт-Петербург, UTC+3)

Screenshot_5.png 2.png
Screenshot_7.png 15 KB (496) Screenshot_5.png 100 KB (478) 2.png 164 KB (499)
Спасибо:
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy