﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Дефект в пользователе кастомного строителя свечей(думаю, в CandleManager)</title>
  <id>~/topic/3129/defekt-v-polzovatele-kastomnogo-stroitelya-svechei(dumayu-v-candlemanager)/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-04T17:32:09Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3129" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/22493/</id>
    <title type="text">Наверно уже не смогу проверить - я долго химичил со своей реализацией CandleBuilder (был ряд других ...</title>
    <published>2012-11-13T19:54:41Z</published>
    <updated>2012-11-13T19:55:49Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.com/users/26822/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Наверно уже не смогу проверить - я долго химичил со своей реализацией CandleBuilder (был ряд других проблем), так реализация, которая есть сейчас не страдает такими проблемами и на 4.1.4 :) попробую найти старую ревизию, воспроизвести на 4.1.4, потом на 4.1.6&lt;br /&gt;&lt;br /&gt;Я смотрю, на 4.1.6 устранился еще один дефект (я о нем не писал): &lt;br /&gt;если в создании новой свечи я полю OpenTime присваивал значение из сделки, но в один прекрасный момент серия ранее сформированных свечей очищалась&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
protected override RangeHLCandle CreateCandle(StockSharp.Algo.Candles.CandleSeries series, ICandleBuilderSourceValue value)
        {
            RangeHLCandle candle = new RangeHLCandle
                                       {
                                           Range = (decimal) series.Arg
                                       };
            FirstInitCandle(series, candle, value);
            

            candle.OpenTime = value.Time;
            candle.CloseTime = value.Time;
            candle.LowTime = value.Time;

            if (prevClose == 0)
                return candle;

            candle.OpenPrice = prevClose;

            this.AddInfoLog(String.Format(&amp;quot;Created, Open = {0}&amp;quot;, candle.OpenPrice));
            return candle;
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Мне приходилось комментировать candle.OpenTime = value.Time;. Сейчас вроде все работает, завтра тоже перепроверю на 4.1.4&lt;br /&gt;Я так понял, починили работу CandleBuilder с  RawConvertableCandleBuilderSource&amp;lt;Trade&amp;gt; ?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22489/</id>
    <title type="text">Проверьте на 4.1.6</title>
    <published>2012-11-13T18:56:01Z</published>
    <updated>2012-11-13T18:56:01Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Проверьте на 4.1.6</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22200/</id>
    <title type="text">Коллеги, проблему то я обошел. Но ведь бага есть это факт. Надо в коде закладываться фикс в дальнейш...</title>
    <published>2012-11-01T19:03:32Z</published>
    <updated>2012-11-01T19:03:32Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.com/users/26822/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Коллеги,&lt;br /&gt;проблему то я обошел. Но ведь бага есть это факт. Надо в коде закладываться фикс в дальнейших версиях?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22182/</id>
    <title type="text">Вкратце - если после CreateCandle IsCandleFinishedBeforeChange выдал true (то есть не дошло до Updat...</title>
    <published>2012-10-31T21:10:45Z</published>
    <updated>2012-10-31T21:10:45Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.com/users/26822/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Вкратце - если после CreateCandle IsCandleFinishedBeforeChange выдал true (то есть не дошло до UpdateCande) в следующий CreateCandle придет ровно то же value, что и в предыдущий CreateCandle</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22181/</id>
    <title type="text">Так два раза подряд приходит значение v3 в CreateCandle :) Что же тут правильного?</title>
    <published>2012-10-31T21:08:20Z</published>
    <updated>2012-10-31T21:08:20Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.com/users/26822/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Так два раза подряд приходит значение v3 в CreateCandle :) Что же тут правильного?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22180/</id>
    <title type="text">так, вот , в ситуации, когда сразу после CreateCandle(value1) срабатывает IsCandleFinishedBeforeChan...</title>
    <published>2012-10-31T21:00:46Z</published>
    <updated>2012-10-31T21:00:46Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Tauler &lt;a href="https://stocksharp.com/posts/m/22173/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;так, вот , в ситуации, когда сразу после CreateCandle(value1) срабатывает IsCandleFinishedBeforeChange(свеча, значение)= истина, в следующий вызов CreateCandle снова приходит value1 (то есть предыдущее значение)!&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;И это правильное решение. Если свечка старая, и ее не надо обновлять. Range свечки кстати поддерживаются и так стандартно.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22177/</id>
    <title type="text">Вот лог 2012.10.31 23:07:45.499| |RangeHLCandleBuilder|Создана свеча(CreateCandle), value.ID = 1 201...</title>
    <published>2012-10-31T19:10:39Z</published>
    <updated>2012-10-31T19:10:39Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.com/users/26822/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Вот лог&lt;br /&gt;&lt;br /&gt;2012.10.31 23:07:45.499|       |RangeHLCandleBuilder|Создана свеча(CreateCandle), value.ID = 1&lt;br /&gt;2012.10.31 23:07:45.553|       |RangeHLCandleBuilder|Cвеча обновлена(UpdateCandle), value.ID = 1&lt;br /&gt;2012.10.31 23:07:45.556|       |RangeHLCandleBuilder|Cвеча обновлена(UpdateCandle), value.ID = 2&lt;br /&gt;&lt;span class="highlight"&gt;2012.10.31 23:07:45.556|       |RangeHLCandleBuilder|Cвеча готова(IsCandleFinishedBeforeChange == true), value.ID = 3&lt;br /&gt;2012.10.31 23:07:45.556|       |RangeHLCandleBuilder|Создана свеча(CreateCandle), value.ID = 3&lt;br /&gt;2012.10.31 23:07:45.557|       |RangeHLCandleBuilder|Cвеча готова(IsCandleFinishedBeforeChange == true),, value.ID  = 3&lt;br /&gt;2012.10.31 23:07:45.557|       |RangeHLCandleBuilder|Создана свеча(CreateCandle), value.ID = 3&lt;br /&gt;2012.10.31 23:07:45.557|       |RangeHLCandleBuilder|Cвеча обновлена(UpdateCandle), value.ID = 3&lt;/span&gt;&lt;br /&gt;2012.10.31 23:07:45.558|       |RangeHLCandleBuilder|Cвеча готова(IsCandleFinishedBeforeChange == true),, value.ID  = 4&lt;br /&gt;2012.10.31 23:07:45.558|       |RangeHLCandleBuilder|Создана свеча(CreateCandle), value.ID = 4&lt;br /&gt;2012.10.31 23:07:45.558|       |RangeHLCandleBuilder|Cвеча готова(IsCandleFinishedBeforeChange == true),, value.ID  = 4&lt;br /&gt;2012.10.31 23:07:45.558|       |RangeHLCandleBuilder|Создана свеча(CreateCandle), value.ID = 4&lt;br /&gt;2012.10.31 23:07:45.558|       |RangeHLCandleBuilder|Cвеча обновлена(UpdateCandle), value.ID = 4&lt;br /&gt;2012.10.31 23:07:45.558|       |RangeHLCandleBuilder|Cвеча готова(IsCandleFinishedBeforeChange == true),, value.ID  = 5</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22176/</id>
    <title type="text">на 4.1.5 то же самое</title>
    <published>2012-10-31T18:52:04Z</published>
    <updated>2012-10-31T18:52:04Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.com/users/26822/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">на 4.1.5 то же самое</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22174/</id>
    <title type="text">Опишу последовательность вызова методов MyCandleBulder : CandleBuilder упростил вызовы. v3 - это пар...</title>
    <published>2012-10-31T18:38:12Z</published>
    <updated>2012-10-31T18:38:12Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.com/users/26822/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Опишу последовательность вызова методов MyCandleBulder : CandleBuilder&amp;lt;MyCandle&amp;gt;&lt;br /&gt;&lt;br /&gt;упростил вызовы. v3 - это параметр ICandleBuilderSourceValue value&lt;br /&gt;&lt;br /&gt;CreateCandle(v1)&lt;br /&gt;IsCandleFinishedBeforeChange(v1) = false&lt;br /&gt;UpdateCandle(v1)&lt;br /&gt;IsCandleFinishedBeforeChange(v2) = false&lt;br /&gt;UpdateCandle(v2)&lt;br /&gt;IsCandleFinishedBeforeChange(v3) = true&lt;br /&gt;CreateCandle(v3)&lt;br /&gt;IsCandleFinishedBeforeChange(v3) = true&lt;br /&gt;&lt;span class="highlight"&gt;CreateCandle(v3)  -- снова значение номер 3!&lt;/span&gt;&lt;br /&gt;IsCandleFinishedBeforeChange(v3) = false&lt;br /&gt;UpdateCandle(v3)&lt;br /&gt;ну и так далее</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22173/</id>
    <title type="text">Коллеги, по-моему нашел ошибку в использовании кастомного строителя свечей (наследника CandleBuilder...</title>
    <published>2012-10-31T18:09:26Z</published>
    <updated>2012-10-31T18:31:15Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.com/users/26822/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Коллеги,&lt;br /&gt;по-моему нашел ошибку в использовании кастомного строителя свечей (наследника CandleBuilder&amp;lt;of Type&amp;gt;)&lt;br /&gt;&lt;br /&gt;как я понял, алгоритм, который использования CandeBulder следующий:&lt;br /&gt;&lt;br /&gt;1. CreateCandle (значение)&lt;br /&gt;2. IsCandleFinishedBeforeChange(свеча, значение)&lt;br /&gt;если истина,то п.1 со следующим value&lt;br /&gt;если ложь, то&lt;br /&gt;3.UpdateCandle(candle, value)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;так, вот , в ситуации, когда сразу после CreateCandle(value1) срабатывает IsCandleFinishedBeforeChange(свеча, значение)= истина, в следующий вызов CreateCandle снова приходит value1 (то есть предыдущее значение)!&lt;br /&gt;&lt;br /&gt;Если же хотя бы раз отрабатывает UpdateCandle, то все работает правильно.&lt;br /&gt;&lt;br /&gt;Из-за этого получается лишняя свечка (в моем строителе), либо вообще возможен бесконечный цикл с одним и тем же value.&lt;br /&gt;&lt;br /&gt;Это так срабатывает на 4.1.4</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>