﻿<?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">Отрисовка индикаторов на истории и онлайн.</title>
  <id>~/topic/8999/otrisovka-indikatorov-na-istorii-i-onlain_/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-10T13:19:54Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=8999" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/42281/</id>
    <title type="text">Спасибо информация передана. </title>
    <published>2018-01-14T16:01:27Z</published>
    <updated>2018-01-14T16:01:27Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</uri>
      <email>info@stocksharp.com</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.com/posts/m/42252/</id>
    <title type="text">Здравствуйте. История приходит из Quik&amp;apos;а. Если исторические свечи имеют статус Finished то smaValue....</title>
    <published>2018-01-11T18:35:05Z</published>
    <updated>2018-01-11T18:35:05Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.com/users/98279/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Здравствуйте. История приходит из Quik'а. Если исторические свечи имеют статус Finished то smaValue.IsFinal будет всегда true так как:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;smaValue.IsFinal = candle.State == CandleStates.Finished;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Соответственно если мы явно указываем какое значение брать за расчет то все должно рисоваться нормально, но рисуется вот так:
&lt;img src="https://pp.userapi.com/c840239/v840239699/5d727/BlRpH7ztt-Y.jpg" alt="" /&gt;
Если значение IsFinal не работает в этом случае то для чего оно?
Вот код отрисовки:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;            _candleManager.Processing += (series, candle) =&amp;gt;
            {
                if (series != _series)
                    return;

                // Рассчитываем значение индикатора
                var smaValue = _sma.Process(candle);
                //Если свеча закончена то берем текущее значение за расчет и фиксируем по оси X
                smaValue.IsFinal = candle.State == CandleStates.Active;

                // Создаем экземпляр класса ChartDrawData - класс, где группируются данные для отрисовки  
                var data = new ChartDrawData();

                // chartItem - набор элементов, привязанных к одной точке на шкале X
                var chartItem = data.Group(candle.OpenTime).Add(_candleElement, candle);
                chartItem.Add(_indicatorElement, smaValue);

                // Безопасно отрисовываем элементы на графике
                this.GuiSync(() =&amp;gt; Chart.Draw(data));

            };

&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/42248/</id>
    <title type="text">В хранилище хранятся только сформированные свечи. </title>
    <published>2018-01-11T17:16:26Z</published>
    <updated>2018-01-11T17:16:26Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</uri>
      <email>info@stocksharp.com</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.com/posts/m/42241/</id>
    <title type="text">Добрый день! Возмем индикатор SMA _sma = new SimpleMovingAverage() { Length = 10 }; .... var smaValu...</title>
    <published>2018-01-10T23:05:50Z</published>
    <updated>2018-01-10T23:05:50Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.com/users/98279/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день! Возмем индикатор SMA&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; _sma = new SimpleMovingAverage() { Length = 10 };
....
var smaValue = _sma.Process(candle);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Далее если указать для smaValue.IsFinal = true то текущее значение будет браться за расчет и фиксироваться по оси x. То есть можно указать вот так:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;smaValue.IsFinal = candle.State == CandleStates.Finished;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Это будет логично. Если свеча закрыта то рассчитываем индикатор и фиксируем на оси x.&lt;/p&gt;
&lt;p&gt;От сюда вопрос: Почему это не работает при загрузке истории?
Ведь у исторических свечей так же есть состояние Finished и Active.
Если не отфильтровывать историю от реалтайма то индикатор убегает вперед свечек.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>