﻿<?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">Время для значения индикатора в IndicatorManager</title>
  <id>~/topic/2604/vremya-dlya-znacheniya-indikatora-v-indicatormanager/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-07T13:57:54Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2604" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/18332/</id>
    <title type="text">Moadip: Можно так попробовать. SimpleMovingAverage _longSma = new SimpleMovingAverage { Length = 20 ...</title>
    <published>2012-04-18T00:59:10Z</published>
    <updated>2012-04-18T00:59:10Z</updated>
    <author>
      <name>ra81</name>
      <uri>https://stocksharp.ru/users/16581/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(18329)" rel="nofollow" target="_blank"&gt;Moadip&lt;/a&gt;:&lt;/strong&gt;
Можно так попробовать.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;SimpleMovingAverage _longSma = new SimpleMovingAverage { Length = 20 };

_series = new CandleSeries(typeof(TimeFrameCandle), _instr1, _timeFrame);
_candleManager.Start(_series);

_indicatorManager.RegisterIndicator(_longSma, new CandleSeriesIndicatorSource(_series, candle =&amp;gt; candle.ClosePrice));

_longSma.Changed += (value, indicatorValue) =&amp;gt;
                        {
                            var price = indicatorValue.GetValue&amp;lt;decimal&amp;gt;();
                            var time = _series.GetCandle(1).OpenTime;
                            ...
                        };
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;Ну да, такой вариант приемлем и может работать. Кроме такого я ничего придумать собственно и не смог сам. Криво косо, но вполне можно использовать.
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/18330/</id>
    <title type="text">Moadip: Можно так попробовать. SimpleMovingAverage _longSma = new SimpleMovingAverage { Length = 20 ...</title>
    <published>2012-04-17T20:54:33Z</published>
    <updated>2012-04-17T20:54:33Z</updated>
    <author>
      <name>JackSparrow</name>
      <uri>https://stocksharp.ru/users/27783/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(18329)" rel="nofollow" target="_blank"&gt;Moadip&lt;/a&gt;:&lt;/strong&gt;
Можно так попробовать.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;SimpleMovingAverage _longSma = new SimpleMovingAverage { Length = 20 };

_series = new CandleSeries(typeof(TimeFrameCandle), _instr1, _timeFrame);
_candleManager.Start(_series);

_indicatorManager.RegisterIndicator(_longSma, new CandleSeriesIndicatorSource(_series, candle =&amp;gt; candle.ClosePrice));

_longSma.Changed += (value, indicatorValue) =&amp;gt;
                        {
                            var price = indicatorValue.GetValue&amp;lt;decimal&amp;gt;();
                            var time = _series.GetCandle(1).OpenTime;
                            ...
                        };
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;Вариант не плохой но он не будет работать на склейке с историей, а потом сам бог велел брать аргументы из сигнатур событий а не из сопутствующих источников, хотя на реалтайме работать будет.
Можно и индекс в менеджере во временной параметр переварачивать.
Но по мне чтоб долго не мучаться проще уже событие иницировать в Strategy.OnProcess и IndicatorEvensArgs сделать, так еще и в оболочку и в график легко данные отдавать
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/18329/</id>
    <title type="text">Можно так попробовать. SimpleMovingAverage _longSma = new SimpleMovingAverage { Length = 20 }; _seri...</title>
    <published>2012-04-17T19:52:48Z</published>
    <updated>2012-04-17T19:52:48Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Можно так попробовать.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
    SimpleMovingAverage _longSma = new SimpleMovingAverage { Length = 20 };

    _series = new CandleSeries(typeof(TimeFrameCandle), _instr1, _timeFrame);
    _candleManager.Start(_series);

    _indicatorManager.RegisterIndicator(_longSma, new CandleSeriesIndicatorSource(_series, candle =&amp;gt; candle.ClosePrice));

    _longSma.Changed += (value, indicatorValue) =&amp;gt;
                            {
                                var price = indicatorValue.GetValue&amp;lt;decimal&amp;gt;();
                                var time = _series.GetCandle(1).OpenTime;
                                ...
                            };

&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/18321/</id>
    <title type="text">ra81: Проблема собственно вот в чем. У нас есть SimpleMovingAverage, и IndicatorManager, а так же ес...</title>
    <published>2012-04-17T13:58:22Z</published>
    <updated>2012-04-17T14:16:28Z</updated>
    <author>
      <name>JackSparrow</name>
      <uri>https://stocksharp.ru/users/27783/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(18297)" rel="nofollow" target="_blank"&gt;ra81&lt;/a&gt;:&lt;/strong&gt;
Проблема собственно вот в чем. У нас есть SimpleMovingAverage, и IndicatorManager, а так же есть CandleManager.&lt;/p&gt;
&lt;p&gt;Допустим мы настроили источник данных для IndicatorManager, и он теперь получает свечки от CandleManager. Затем мы зарегистрировали SimpleMovingAverage в IndicatorManager и скользящая начала пересчитываться с каждым новым значением свечки.
НО вот встает вопрос. Мы подписались на событие SimpleMovingAverage.Changed и можем получать уведомления о новых данных индикатора. Например мы рисуем его на графике или еще что. А как получить время?? Значение то у нас будет, а время события? Или привязка к свечке по которой считалось все это дело? На лицо факт, что нет связки Входящее значение - исходящее значение. А хочется иметь. Хотябы для автоматической отрисовки на графике.&lt;/p&gt;
&lt;p&gt;Если кто нашел выход напишите пожалуйста, а если кто планирует дорабатывать индикаторы, учтите сей факт.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;К Разработчикам:
по сути _value в IIndicatorValue должен быть парой Значение\Время, и значение переопределяться в реализация в зависимости от типа как это сейчас делается, а время останется временем.
Иначе приходится в своем коде костыли подставлять, придумывать свои события и аргументы к ним&lt;/p&gt;
&lt;p&gt;(в начале предлагал к LastValue приделать LastValueTime )&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/18323/</id>
    <title type="text">Хорошее предложение, причем делов немного выйдет </title>
    <published>2012-04-17T14:10:48Z</published>
    <updated>2012-04-17T14:10:48Z</updated>
    <author>
      <name>OvcharenkoVI</name>
      <uri>https://stocksharp.ru/users/390/</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/18297/</id>
    <title type="text">Проблема собственно вот в чем. У нас есть SimpleMovingAverage, и IndicatorManager, а так же есть Can...</title>
    <published>2012-04-17T01:26:21Z</published>
    <updated>2012-04-17T01:26:21Z</updated>
    <author>
      <name>ra81</name>
      <uri>https://stocksharp.ru/users/16581/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Проблема собственно вот в чем. У нас есть SimpleMovingAverage, и IndicatorManager, а так же есть CandleManager.&lt;/p&gt;
&lt;p&gt;Допустим мы настроили источник данных для IndicatorManager, и он теперь получает свечки от CandleManager. Затем мы зарегистрировали SimpleMovingAverage в IndicatorManager и скользящая начала пересчитываться с каждым новым значением свечки.
НО вот встает вопрос. Мы подписались на событие SimpleMovingAverage.Changed и можем получать уведомления о новых данных индикатора. Например мы рисуем его на графике или еще что. А как получить время?? Значение то у нас будет, а время события? Или привязка к свечке по которой считалось все это дело? На лицо факт, что нет связки Входящее значение - исходящее значение. А хочется иметь. Хотябы для автоматической отрисовки на графике.&lt;/p&gt;
&lt;p&gt;Если кто нашел выход напишите пожалуйста, а если кто планирует дорабатывать индикаторы, учтите сей факт.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>