﻿<?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-04-22T06:17:15Z</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">Можно так попробовать. SimpleMovingAverage _longSma = new SimpleMovingAverage { Length = 20 }; _seri...</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;div class="quote"&gt;&lt;span class="quotetitle"&gt;Moadip &lt;a href="https://stocksharp.ru/posts/m/18329/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Можно так попробовать.&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&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">Можно так попробовать. SimpleMovingAverage _longSma = new SimpleMovingAverage { Length = 20 }; _seri...</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;div class="quote"&gt;&lt;span class="quotetitle"&gt;Moadip &lt;a href="https://stocksharp.ru/posts/m/18329/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Можно так попробовать.&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Вариант не плохой но он не будет работать на склейке с историей, а потом сам бог велел брать аргументы из сигнатур событий а не из сопутствующих источников, хотя на реалтайме работать будет.&lt;br /&gt;Можно и индекс в менеджере во временной параметр переварачивать.&lt;br /&gt;Но по мне чтоб долго не мучаться проще уже событие иницировать в Strategy.OnProcess и IndicatorEvensArgs сделать, так еще и в оболочку и в график легко данные отдавать</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;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&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">Проблема собственно вот в чем. У нас есть SimpleMovingAverage, и IndicatorManager, а так же есть Can...</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;div class="quote"&gt;&lt;span class="quotetitle"&gt;ra81 &lt;a href="https://stocksharp.ru/posts/m/18297/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Проблема собственно вот в чем. У нас есть SimpleMovingAverage, и IndicatorManager, а так же есть CandleManager.&lt;br /&gt;&lt;br /&gt;Допустим мы настроили источник данных для IndicatorManager, и он теперь получает свечки от CandleManager. Затем мы зарегистрировали SimpleMovingAverage в IndicatorManager и скользящая начала пересчитываться с каждым новым значением свечки. &lt;br /&gt;НО вот встает вопрос. Мы подписались на событие SimpleMovingAverage.Changed и можем получать уведомления о новых данных индикатора. Например мы рисуем его на графике или еще что. А как получить время?? Значение то у нас будет, а время события? Или привязка к свечке по которой считалось все это дело? На лицо факт, что нет связки Входящее значение - исходящее значение. А хочется иметь. Хотябы для автоматической отрисовки на графике.&lt;br /&gt;&lt;br /&gt;Если кто нашел выход напишите пожалуйста, а если кто планирует дорабатывать индикаторы, учтите сей факт. &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;К Разработчикам:&lt;br /&gt;по сути _value в IIndicatorValue должен быть парой Значение\Время, и значение переопределяться в реализация в зависимости от типа как это сейчас делается, а время останется временем.&lt;br /&gt;Иначе приходится в своем коде костыли подставлять, придумывать свои события и аргументы к ним&lt;br /&gt;&lt;br /&gt;(в начале предлагал к LastValue приделать LastValueTime )</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">Хорошее предложение, причем делов немного выйдет</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">Проблема собственно вот в чем. У нас есть SimpleMovingAverage, и IndicatorManager, а так же есть CandleManager.&lt;br /&gt;&lt;br /&gt;Допустим мы настроили источник данных для IndicatorManager, и он теперь получает свечки от CandleManager. Затем мы зарегистрировали SimpleMovingAverage в IndicatorManager и скользящая начала пересчитываться с каждым новым значением свечки. &lt;br /&gt;НО вот встает вопрос. Мы подписались на событие SimpleMovingAverage.Changed и можем получать уведомления о новых данных индикатора. Например мы рисуем его на графике или еще что. А как получить время?? Значение то у нас будет, а время события? Или привязка к свечке по которой считалось все это дело? На лицо факт, что нет связки Входящее значение - исходящее значение. А хочется иметь. Хотябы для автоматической отрисовки на графике.&lt;br /&gt;&lt;br /&gt;Если кто нашел выход напишите пожалуйста, а если кто планирует дорабатывать индикаторы, учтите сей факт. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>