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

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


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

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

[img=123524]1.png[/img] [img=123525]Screenshot_3.png[/img]

Итог: Примеры была рассмотрены при использовании Гидры. Данные взяты из QScalp history (преобразованы с использованием Qsh2StockSharp конвертера) Первый день истории строится [b]ПРАВИЛЬНО[/b], но после наступления следующего торгового дня все построение становится некорректным

Screenshot_3.png 57 KB (501) 1.png 197 KB (437) 1.png 206 KB (448) Screenshot_3.png 57 KB (482) 1.png 206 KB (798) Screenshot_3.png 57 KB (866)



Thanks:


1 2  >
Sprite

Avatar
Date: 5/13/2021
Reply


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

Thanks: Greenn

Greenn

Avatar
Date: 5/13/2021
Reply


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

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

Thanks:

Greenn

Avatar
Date: 5/13/2021
Reply


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

Thanks:

Sprite

Avatar
Date: 5/13/2021
Reply


[quote=Greenn;56181] Благодарю за ответ) Получается вы используете только 1 день, когда тестируете стратегию? [/quote]

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

[quote=Greenn;56182]Кстати, при использовании временнЫх свечек кластера правильно отображаются[/quote]

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

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

Thanks: Greenn

Greenn

Avatar
Date: 5/13/2021
Reply


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

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

Thanks:

Sprite

Avatar
Date: 5/13/2021
Reply


[quote=Greenn;56184]Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент) [/quote] Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет "невалидна" только первая свеча в начале сессии, так?

Thanks: Greenn

Greenn

Avatar
Date: 5/14/2021
Reply


[quote=sprite;56185][quote=Greenn;56184]Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент) [/quote] Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет "невалидна" только первая свеча в начале сессии, так?

[/quote]

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

Thanks:

William B

Avatar
Date: 5/14/2021
Reply


[quote=Greenn;56186][quote=sprite;56185][quote=Greenn;56184]Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент) [/quote] Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет "невалидна" только первая свеча в начале сессии, так?

[/quote]

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

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

Thanks:

Greenn

Avatar
Date: 5/14/2021
Reply


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

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

[img=123535]Screenshot_1.png[/img]

Это Гидра:

[img=123537]1.png[/img] [img=123539]Screenshot_4.png[/img] Цифры в кластерах должны совпадать с цифрами левой картинки, но из-за того, что произошла склейка - все кластера [b]ВТОРОГО ДНЯ[/b] принтуются неверно. Два дня которые здесь разобраны представил в виде файла QSH2_S# внизу

Screenshot_1.png 35 KB (458) Screenshot_1.png 35 KB (748) QSH2_S#.rar 800 KB (672) 1.png 155 KB (720) Screenshot_4.png 59 KB (740)
Thanks:

Greenn

Avatar
Date: 5/14/2021
Reply


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

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

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

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

[img=123542]Screenshot_5.png[/img] [img=123543]2.png[/img]

Screenshot_7.png 15 KB (759) Screenshot_5.png 100 KB (735) 2.png 164 KB (807)
Thanks:
1 2  >

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

loading
clippy