﻿<?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/2242/nevozmozhno-obrabotat-nachalnye-znacheniya-indikatora/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-18T07:12:15Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2242" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/16558/</id>
    <title type="text">... </title>
    <published>2012-02-17T09:00:59Z</published>
    <updated>2012-02-17T16:25:16Z</updated>
    <author>
      <name>russ</name>
      <uri>https://stocksharp.com/users/567/</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/15504/</id>
    <title type="text">freelancer: Может вам поможет: я соединяю исторические свечи из квика с текущими, а потом вызываю fo...</title>
    <published>2012-01-09T22:47:27Z</published>
    <updated>2012-01-10T10:32:18Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.com/users/340/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(14994)" rel="nofollow" target="_blank"&gt;freelancer&lt;/a&gt;:&lt;/strong&gt;
Может вам поможет:&lt;/p&gt;
&lt;p&gt;я соединяю исторические свечи из квика с текущими, а потом вызываю&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;foreach (Candle c in _candles)
{
Индикатор.Process(new StockSharp.Algo.Indicators.CandleIndicatorValue(c));
}&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;мне нужно вызвать Process у индикатора Highest. Указанный выше способ не работает в этом случае.
Выползает ошибка &amp;quot;Объект должен реализовывать интерфейс IConvertible&amp;quot;
Если делать так -
```csharp

Highest h = new Highest {Length = 20}
foreach (Candle c in _candles)
{
        
	h.Process(new StockSharp.Algo.Indicators.DecimalIndicatorValue(c));
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;то работает, но тогда вылетает с ошибкой такой код&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
        h.Changed += (input, res) =&amp;gt;
        {
             MessageBox.Show(input.Time.ToString());
        }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;потому что инпут не свеча.&lt;/p&gt;
&lt;p&gt;Как получить input в виде свечи в данном случае?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/15520/</id>
    <title type="text">OvcharenkoVI: Че то ты сам че то натворил и сам че то решил Если ты работаешь с DecimalIndicatorValu...</title>
    <published>2012-01-10T08:34:08Z</published>
    <updated>2012-01-10T08:34:08Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.com/users/340/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(15508)" rel="nofollow" target="_blank"&gt;OvcharenkoVI&lt;/a&gt;:&lt;/strong&gt;
Че то ты сам че то натворил и сам че то решил&lt;/p&gt;
&lt;p&gt;Если ты работаешь с DecimalIndicatorValue, то и входное значение изначально должно быть типа Decimal.&lt;/p&gt;
&lt;p&gt;Чем не устраивает: h.Process(new StockSharp.Algo.Indicators.DecimalIndicatorValue(c.HighPrice));&lt;/p&gt;
&lt;p&gt;И все сразу должно было работать&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тем что мне нужно передать в событие Chanded индикатора свечу а не Decimal для дальнейшей работы. К примеру тебе надо в событии changed отрисовать значение индикатора или получить значение цены открытия входной свечи. С decimal ты ничего не сделаешь&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/15508/</id>
    <title type="text">Че то ты сам че то натворил и сам че то решил Если ты работаешь с DecimalIndicatorValue, то и входно...</title>
    <published>2012-01-10T06:07:28Z</published>
    <updated>2012-01-10T06:07:28Z</updated>
    <author>
      <name>OvcharenkoVI</name>
      <uri>https://stocksharp.com/users/390/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Че то ты сам че то натворил и сам че то решил&lt;/p&gt;
&lt;p&gt;Если ты работаешь с DecimalIndicatorValue, то и входное значение изначально должно быть типа Decimal.&lt;/p&gt;
&lt;p&gt;Чем не устраивает: h.Process(new StockSharp.Algo.Indicators.DecimalIndicatorValue(c.HighPrice));&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.com/posts/m/15505/</id>
    <title type="text">Кому интересно, проблема решилась так: Нашел в исходниках на codeplex закрытый класс CandlePartIndic...</title>
    <published>2012-01-10T00:25:31Z</published>
    <updated>2012-01-10T00:25:31Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.com/users/340/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Кому интересно, проблема решилась так:
Нашел в исходниках на codeplex закрытый класс CandlePartIndicatorValue и скопировал его реализацию в свой код
Таким образом следующий код заработал без ошибок&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
Highest h = new Highest {Length = 20}

h.Changed += (input, res) =&amp;gt;
{
    MessageBox.Show(input.Time.ToString());
}

foreach (Candle c in _candles)
{
    h.Process(new StockSharp.Algo.Indicators.CandlePartIndicatorValue (c, c.HighPrice));
}

&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/15004/</id>
    <title type="text">freelancer: Может вам поможет: я соединяю исторические свечи из квика с текущими, а потом вызываю fo...</title>
    <published>2011-12-20T23:30:36Z</published>
    <updated>2011-12-20T23:30:36Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.com/users/340/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(14994)" rel="nofollow" target="_blank"&gt;freelancer&lt;/a&gt;:&lt;/strong&gt;
Может вам поможет:&lt;/p&gt;
&lt;p&gt;я соединяю исторические свечи из квика с текущими, а потом вызываю&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;foreach (Candle c in _candles)
{
Индикатор.Process(new StockSharp.Algo.Indicators.CandleIndicatorValue(c));
}&lt;/p&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.com/posts/m/14994/</id>
    <title type="text">Может вам поможет: я соединяю исторические свечи из квика с текущими, а потом вызываю foreach (Candl...</title>
    <published>2011-12-20T15:17:35Z</published>
    <updated>2011-12-20T15:17:35Z</updated>
    <author>
      <name>freelancer</name>
      <uri>https://stocksharp.com/users/28572/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Может вам поможет:&lt;/p&gt;
&lt;p&gt;я соединяю исторические свечи из квика с текущими, а потом вызываю&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;foreach (Candle c in _candles)
{
	Индикатор.Process(new StockSharp.Algo.Indicators.CandleIndicatorValue(c));
}
&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/14993/</id>
    <title type="text">pehas: Я так понял, красиво эту задачу не решить? Я лично не понял ничего из сообщения. </title>
    <published>2011-12-20T15:16:44Z</published>
    <updated>2011-12-20T15:16:44Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(14992)" rel="nofollow" target="_blank"&gt;pehas&lt;/a&gt;:&lt;/strong&gt;
Я так понял, красиво эту задачу не решить?&lt;/p&gt;
&lt;/blockquote&gt;
&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/14992/</id>
    <title type="text">Я так понял, красиво эту задачу не решить? Кто-то вообще занимался отрисовкой индикаторов по прошлым...</title>
    <published>2011-12-20T15:10:39Z</published>
    <updated>2011-12-20T15:10:39Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.com/users/340/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я так понял, красиво эту задачу не решить?
Кто-то вообще занимался отрисовкой индикаторов по прошлым трейдам, если бот запускается внутри дня? Поделитесь опытом&lt;/p&gt;
&lt;p&gt;В библиотеке S# есть пример SampleSMA - там рисуются индикаторы за предыдущие периоды, но только с помощью истории загруженной из файла. А по задаче нужно нарисовать используя только свечи CandleManager&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/14799/</id>
    <title type="text">Необходимо нарисовать все значения индикатора на графике. Проблема в том, что событие Changed индика...</title>
    <published>2011-12-18T21:29:31Z</published>
    <updated>2011-12-19T00:40:00Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.com/users/340/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Необходимо нарисовать все значения индикатора на графике. Проблема в том, что событие Changed индикатора начинает работать не с начального значения. Соответственно, рисуются только последние значения. Происходит это потому, что делегат событию Changed присваивается уже после регистрации свечек. Соответственно, какие-то свечки уже обработаны перед определением Changed для индикатора.&lt;/p&gt;
&lt;p&gt;Запуск бота происходит в середине торговой сессии, т.е. уже есть какие-то трейды
Последовательность запуска примерно такая&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
this._trader = new QuikTrader(QuikTerminal.GetDefaultPath());
this._cm = new CandleManager(this._trader);
this._trader.Connect();
this._trader.StartExport();
this.security = this._trader.Securities.FirstOrDefault(s =&amp;gt; s.Code == this.SCode);
var candleToken = this._cm.RegisterTimeFrameCandles(security, this._timeFrame);
this.ATRToken = indicatorManager.RegisterIndicator(new AverageTrueRange { Length = 10 }, new CandleTokenIndicatorSource(candleToken, BaseCandleIndicatorSource.ByClose));
var ATR = this.ATRToken.Indicator as AverageTrueRange;
ATR.Changed += (input, res) =&amp;gt;
{
    var candle = this._cm.GetTimeFrameCandle(this.security, this._timeFrame, 1);
    var val = ATR.LastValue.GetValue&amp;lt;decimal&amp;gt;();
    this.GuiAsync(() =&amp;gt; this.chartWnd.ATR.Add(new DItem { date = candle.Time, value = val }));
};

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Как сделать добавление события Changed до регистрации свечек, я так и не разобрался. Ведь я не могу определить его без токена. А токен можно получить только зарегистрировав свечи&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/14801/</id>
    <title type="text">Тема к квику, я так понял, не относится. Переношу в индикаторы. </title>
    <published>2011-12-18T21:43:05Z</published>
    <updated>2011-12-18T21:43:05Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</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>
</feed>