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


БАГ при построении свечей!!!
Atom
5/13/2021


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

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


1.png Screenshot_3.png


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



Thanks:


1 2  >
Sprite

Avatar
Date: 5/13/2021
Reply


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

Greenn

Avatar
Date: 5/13/2021
Reply


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


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

Greenn

Avatar
Date: 5/13/2021
Reply


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

Sprite

Avatar
Date: 5/13/2021
Reply


Greenn Go to

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


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

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


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

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

Thanks: Greenn

Greenn

Avatar
Date: 5/13/2021
Reply


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


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

Sprite

Avatar
Date: 5/13/2021
Reply


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

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

Thanks: Greenn

Greenn

Avatar
Date: 5/14/2021
Reply


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

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



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

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

Avatar
Date: 5/14/2021
Reply


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

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



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


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

Thanks:

Greenn

Avatar
Date: 5/14/2021
Reply


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


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

Screenshot_1.png

Это Гидра:

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

Greenn

Avatar
Date: 5/14/2021
Reply


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

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

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

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

Screenshot_5.png 2.png
Screenshot_7.png 15 KB (419) Screenshot_5.png 100 KB (397) 2.png 164 KB (409)
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy