﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">БАГ при построении свечей!!!</title>
  <id>~/topic/15847/bag-pri-postroenii-svechei!!!/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-03T20:25:20Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=15847" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/56194/</id>
    <title type="text">[quote=sprite;56193][quote=Greenn;56189]Цифры в кластерах должны совпадать с цифрами левой картинки,...</title>
    <published>2021-05-14T15:45:24Z</published>
    <updated>2021-05-14T15:45:24Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=sprite;56193][quote=Greenn;56189]Цифры в кластерах должны совпадать с цифрами левой картинки, но из-за того, что произошла склейка - все кластера [b]ВТОРОГО ДНЯ[/b] принтуются неверно.[/quote]&lt;/p&gt;
&lt;p&gt;Строго говоря это не верное утверждение. &amp;quot;Нетаймфрейм&amp;quot; свечки в библиотеке рисуются верно, но вы хотите их завершать не по той логике, которая в них встроена.
Т.е если взять ваш пример 200 тиков: Логика свечки - свечка должна закончиться, когда будет набрано 200 тиков и время тут ни при чём. Ваша логика - свечка должна закончиться в конце сессии, не зависимо от того сколько тиков пройдено.&lt;/p&gt;
&lt;p&gt;И да, я тоже хотел заканчивать свечки в конце сессии и поэтому я и строю свои свечки для рынков где это нужно.[/quote]&lt;/p&gt;
&lt;p&gt;Все верно, если мы говорим про Гидру.
Но пример с Терминалом (2 пост) говорит об обратном. Почему произошел сбой принта ни с того ни сего? Почему с 17.15 кластера принтуются некорректно? Магическая магия.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56193/</id>
    <title type="text">[quote=Greenn;56189]Цифры в кластерах должны совпадать с цифрами левой картинки, но из-за того, что ...</title>
    <published>2021-05-14T15:33:11Z</published>
    <updated>2021-05-14T15:37:00Z</updated>
    <author>
      <name>Sprite</name>
      <uri>https://stocksharp.ru/users/104190/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=Greenn;56189]Цифры в кластерах должны совпадать с цифрами левой картинки, но из-за того, что произошла склейка - все кластера [b]ВТОРОГО ДНЯ[/b] принтуются неверно.[/quote]&lt;/p&gt;
&lt;p&gt;Строго говоря это не верное утверждение. &amp;quot;Нетаймфрейм&amp;quot; свечки в библиотеке рисуются верно, но вы хотите их завершать не по той логике, которая в них встроена.
Т.е если взять ваш пример 200 тиков: Логика свечки - свечка должна закончиться, когда будет набрано 200 тиков и время тут ни при чём. Ваша логика - свечка должна закончиться в конце сессии, не зависимо от того сколько тиков пройдено.&lt;/p&gt;
&lt;p&gt;И да, я тоже хотел заканчивать свечки в конце сессии и поэтому я и строю свои свечки для рынков где это нужно.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56191/</id>
    <title type="text">[quote=Greenn;56184]Я и хотел узнать, как вы обходите этот момент) [/quote] Я - вот так, в кэндлбилд...</title>
    <published>2021-05-14T15:14:01Z</published>
    <updated>2021-05-14T15:32:31Z</updated>
    <author>
      <name>Sprite</name>
      <uri>https://stocksharp.ru/users/104190/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=Greenn;56184]Я и хотел узнать, как вы обходите этот момент) [/quote]
Я - вот так, в кэндлбилдере:
protected override bool IsCandleFinishedBeforeChange(ICandleBuilderSubscription subscription, RangeXVCandleMessage candle, ICandleBuilderValueTransform transform)
{
................
if (transform.Time.Day != candle.OpenTime.Day)
{
return true;
}&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56192/</id>
    <title type="text">[quote=sprite;56191][quote=Greenn;56184]Я и хотел узнать, как вы обходите этот момент) [/quote] Я - ...</title>
    <published>2021-05-14T15:21:15Z</published>
    <updated>2021-05-14T15:21:15Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=sprite;56191][quote=Greenn;56184]Я и хотел узнать, как вы обходите этот момент) [/quote]
Я - вот так, в кэндлбилдере:
protected override bool IsCandleFinishedBeforeChange(ICandleBuilderSubscription subscription, RangeXVCandleMessage candle, ICandleBuilderValueTransform transform)
{
................
if (transform.Time.Day != candle.OpenTime.Day)
{
return true;
}[/quote]&lt;/p&gt;
&lt;p&gt;Благодарю.
Я все проблемы описал чуть выше. Может больше не придется бороться со свечками[laugh]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56190/</id>
    <title type="text">Что касается [b]Терминала[/b], то там проблема мне непонятна QUIK connector и данные идут напрямую Р...</title>
    <published>2021-05-14T14:38:54Z</published>
    <updated>2021-05-14T15:17:40Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Что касается [b]Терминала[/b], то там проблема мне непонятна&lt;/p&gt;
&lt;p&gt;QUIK connector и данные идут напрямую&lt;/p&gt;
&lt;p&gt;Рассмотрим график [b]RIM1 200 tick[/b]
Открываем терминал, подключаемся, добавляем свечи и загружаем историю только [b]текущего дня[/b]. Параметры загрузки свечей следующие
[img=123541]Screenshot_7.png[/img]&lt;/p&gt;
&lt;p&gt;Идет загрузка истории и вдруг с какого-то момента начинается неправильный принт кластеров (с 17.15 Санкт-Петербург, UTC+3)&lt;/p&gt;
&lt;p&gt;[img=123542]Screenshot_5.png[/img] [img=123543]2.png[/img]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56189/</id>
    <title type="text">[quote]Уважаемые пользователи, я очень рад, что вы разобрались и надеюсь смогли решить проблему. Есл...</title>
    <published>2021-05-14T14:30:58Z</published>
    <updated>2021-05-14T14:31:27Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote]Уважаемые пользователи, я очень рад, что вы разобрались и надеюсь смогли решить проблему. Если это так, то может поделитесь источником этой проблемы, чтобы мы могли поправить библиотеку и устранить её в корне.
Также просьба пояснить как воспроизвести ошибку, т.е. какие настройки необходимо установить, чтобы увидеть сбой. Уточните, вы строили график в Гидре или в Терминале? Если в Терминале, то данные шли напрямую из коннектора? Какой коннектор вы использовали? Квик?[/quote]&lt;/p&gt;
&lt;p&gt;Добрый день. Суть проблемы состоит в том, что библиотека не может завершить [b]НЕЗАКОНЧЕННУЮ СВЕЧУ[/b]. Например рассмотрим самую последнюю свечу первого дня истории графика [b]200 tick[/b]. С точки зрения заполнения она может не успеть закончиться к тому моменту, [b]когда закончится торговый день[/b]. То есть условно остановиться на отсчете в 136 tick и иметь состояние &amp;quot;Активна&amp;quot;. Но это неверно, потому что тиков в этом торговом дне больше не будет, а значит ее нужно [b]ПРИНУДИТЕЛЬНО [/b]закрыть. Если этого не сделать, то она будет склеиваться с тиками следующего дня&lt;/p&gt;
&lt;p&gt;[img=123535]Screenshot_1.png[/img]&lt;/p&gt;
&lt;p&gt;Это Гидра:&lt;/p&gt;
&lt;p&gt;[img=123537]1.png[/img] [img=123539]Screenshot_4.png[/img]
Цифры в кластерах должны совпадать с цифрами левой картинки, но из-за того, что произошла склейка - все кластера [b]ВТОРОГО ДНЯ[/b] принтуются неверно.
Два дня которые здесь разобраны представил в виде файла QSH2_S# внизу&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56188/</id>
    <title type="text">[quote=Greenn;56186][quote=sprite;56185][quote=Greenn;56184]Да, но это касается только ТФ свечей. Ес...</title>
    <published>2021-05-14T12:11:38Z</published>
    <updated>2021-05-14T12:11:38Z</updated>
    <author>
      <name>William B</name>
      <uri>https://stocksharp.ru/users/7/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=Greenn;56186][quote=sprite;56185][quote=Greenn;56184]Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент) [/quote]
Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет &amp;quot;невалидна&amp;quot; только первая свеча в начале сессии, так?&lt;/p&gt;
&lt;p&gt;[/quote]&lt;/p&gt;
&lt;p&gt;Я разобрался [laugh]. Благодарю за помощь) [/quote]&lt;/p&gt;
&lt;p&gt;Уважаемые пользователи, я очень рад, что вы разобрались и надеюсь смогли решить проблему. Если это так, то может поделитесь источником этой проблемы, чтобы мы могли поправить библиотеку и устранить её в корне.
Также просьба пояснить как воспроизвести ошибку, т.е. какие настройки необходимо установить, чтобы увидеть сбой. Уточните, вы строили график в Гидре или в Терминале? Если в Терминале, то данные шли напрямую из коннектора? Какой коннектор вы использовали? Квик?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56186/</id>
    <title type="text">[quote=sprite;56185][quote=Greenn;56184]Да, но это касается только ТФ свечей. Если же брать другие (...</title>
    <published>2021-05-14T07:11:27Z</published>
    <updated>2021-05-14T07:11:27Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=sprite;56185][quote=Greenn;56184]Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент) [/quote]
Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет &amp;quot;невалидна&amp;quot; только первая свеча в начале сессии, так?&lt;/p&gt;
&lt;p&gt;[/quote]&lt;/p&gt;
&lt;p&gt;Я разобрался [laugh]. Благодарю за помощь)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56185/</id>
    <title type="text">[quote=Greenn;56184]Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (напр...</title>
    <published>2021-05-13T20:47:54Z</published>
    <updated>2021-05-13T20:47:54Z</updated>
    <author>
      <name>Sprite</name>
      <uri>https://stocksharp.ru/users/104190/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=Greenn;56184]Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент) [/quote]
Мне кажется мы не понимаем друг друга. Если вы сделаете Timeframe2Multiplier = 1, Timeframe3Multiplier = 1 то у вас будет &amp;quot;невалидна&amp;quot; только первая свеча в начале сессии, так?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56184/</id>
    <title type="text">[quote]Нет, конечно не один день, но так как вы суммируете кластерные объемы в боксовых свечах, то н...</title>
    <published>2021-05-13T19:47:17Z</published>
    <updated>2021-05-13T19:47:17Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote]Нет, конечно не один день, но так как вы суммируете кластерные объемы в боксовых свечах, то неверными у вас будут значения только в первой группе от начала сессии. И ещё раз - если я прав (это можно проверить принудительно завершив последнюю свечку сессии), то дальше сами решайте как это побороть, на лету править свечки или править свечки в хранилище. Кстати, попробуйте задать размер бокса равным единице и посмотрите исправится ли ошибка (т.е. Timeframe2Multiplier = 1, Timeframe3Multiplier = 1).[/quote]&lt;/p&gt;
&lt;p&gt;Да, но это касается только ТФ свечей. Если же брать другие (не ТФ) графики (например 200 tick), то там валидна только серия свечей ДО следующего дня, т.е. история длиной в 1 день. Дальше наступает следующий день и все ломается. Я и хотел узнать, как вы обходите этот момент)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56183/</id>
    <title type="text">[quote=Greenn;56181] Благодарю за ответ) Получается вы используете только 1 день, когда тестируете с...</title>
    <published>2021-05-13T19:11:52Z</published>
    <updated>2021-05-13T19:16:52Z</updated>
    <author>
      <name>Sprite</name>
      <uri>https://stocksharp.ru/users/104190/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=Greenn;56181]
Благодарю за ответ)
Получается вы используете только 1 день, когда тестируете стратегию?
[/quote]&lt;/p&gt;
&lt;p&gt;Нет, конечно не один день, но так как вы суммируете кластерные объемы в боксовых свечах, то неверными у вас будут значения только в первой группе от начала сессии. И ещё раз - если я прав (это можно проверить принудительно завершив последнюю свечку сессии), то дальше сами решайте как это побороть, на лету править свечки или править свечки в хранилище. Кстати, попробуйте задать размер бокса равным единице и посмотрите исправится ли ошибка (т.е. Timeframe2Multiplier = 1, Timeframe3Multiplier = 1).&lt;/p&gt;
&lt;p&gt;[quote=Greenn;56182]Кстати, при использовании временнЫх свечек кластера правильно отображаются[/quote]&lt;/p&gt;
&lt;p&gt;Да, потому что логика завершения таймфрейм свечей в библиотеке завязана на времени. В общем по фото трудно поставить диагноз, но в качестве идеи куда можно покопать - я предложил.&lt;/p&gt;
&lt;p&gt;Еще есть такая бага - если у вас в хранилище есть несколько свечей с одинаковым временем начала и конца (т.е. когда точности горизонтальной шкалы графика не хватает рисовать быстрее секунды), то вообще всё поедет.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56182/</id>
    <title type="text">Кстати, при использовании временнЫх свечек кластера правильно отображаются </title>
    <published>2021-05-13T18:21:14Z</published>
    <updated>2021-05-13T18:21:14Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Кстати, при использовании временнЫх свечек кластера правильно отображаются&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56181/</id>
    <title type="text">[quote=sprite;56180]Насколько я понимаю тут дело в том, что в библиотеке какая-то древняя проблема с...</title>
    <published>2021-05-13T17:32:07Z</published>
    <updated>2021-05-13T17:32:07Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[quote=sprite;56180]Насколько я понимаю тут дело в том, что в библиотеке какая-то древняя проблема с закрытием последней свечки сессии/дня, т.е. последняя свечка никогда не принимает значение State == Finished, так как коннектор не знает что сессия закончилась. Вероятно так свечки у вас и сериализовались - незакрытыми.
Я пытался вручную закрывать свечки, отправляя в коннектор сообщения с новыми тиками, менял свойство свечи State, чистил хранилище, в общем много чего перепробовал, но удачные эксперименты ломались с обновлениями версии библиотеки. В итоге я устал поддерживать собственные хаки, забил на это и теперь просто держу такую особенность в голове, когда тестирую историю. Но если надо иметь идеальную историю и дело действительно в том, о чём я говорю, то можете изучить как в хранилище или на лету закрывать свечу.[/quote]&lt;/p&gt;
&lt;p&gt;Благодарю за ответ)
Получается вы используете только 1 день, когда тестируете стратегию?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56180/</id>
    <title type="text">Насколько я понимаю тут дело в том, что в библиотеке какая-то древняя проблема с закрытием последней...</title>
    <published>2021-05-13T17:18:41Z</published>
    <updated>2021-05-13T17:18:41Z</updated>
    <author>
      <name>Sprite</name>
      <uri>https://stocksharp.ru/users/104190/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Насколько я понимаю тут дело в том, что в библиотеке какая-то древняя проблема с закрытием последней свечки сессии/дня, т.е. последняя свечка никогда не принимает значение State == Finished, так как коннектор не знает что сессия закончилась. Вероятно так свечки у вас и сериализовались - незакрытыми.
Я пытался вручную закрывать свечки, отправляя в коннектор сообщения с новыми тиками, менял свойство свечи State, чистил хранилище, в общем много чего перепробовал, но удачные эксперименты ломались с обновлениями версии библиотеки. В итоге я устал поддерживать собственные хаки, забил на это и теперь просто держу такую особенность в голове, когда тестирую историю. Но если надо иметь идеальную историю и дело действительно в том, о чём я говорю, то можете изучить как в хранилище или на лету закрывать свечу.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56177/</id>
    <title type="text">[b]Пример был разобран на ТИКОВОМ графике, хотя существует вероятность, что графики строятся неправи...</title>
    <published>2021-05-13T16:48:36Z</published>
    <updated>2021-05-13T16:49:24Z</updated>
    <author>
      <name>Greenn</name>
      <uri>https://stocksharp.ru/users/99877/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;[b]Пример был разобран на ТИКОВОМ графике, хотя существует вероятность, что графики строятся неправильно на всех НЕСТАНДАРТНЫХ типах (range, renko итд)[/b]&lt;/p&gt;
&lt;p&gt;Кластера начинают неправильно принтоваться ПОСЛЕ наступления нового торгового дня ([b]как минимум[/b])&lt;/p&gt;
&lt;p&gt;[img=123524]1.png[/img] [img=123525]Screenshot_3.png[/img]&lt;/p&gt;
&lt;p&gt;Итог: Примеры была рассмотрены при использовании Гидры. Данные взяты из QScalp history (преобразованы с использованием  Qsh2StockSharp конвертера)
Первый день истории строится [b]ПРАВИЛЬНО[/b], но после наступления следующего торгового дня все построение становится некорректным&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>