﻿<?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">Как добавить новый тип свечей?</title>
  <id>~/topic/1562/kak-dobavit-novyi-tip-svechei/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-30T03:07:06Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1562" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/7902/</id>
    <title type="text">Спасибо, заработало! RangeDelayCandleFactory candleFactory = new RangeDelayCandleFactory(); candleMa...</title>
    <published>2011-05-05T09:20:17Z</published>
    <updated>2011-05-05T09:20:17Z</updated>
    <author>
      <name>Garic</name>
      <uri>https://stocksharp.ru/users/809/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо, заработало!&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;RangeDelayCandleFactory candleFactory = new RangeDelayCandleFactory();                &lt;br /&gt;candleManager.UnRegisterCandleFactory&amp;lt;RangeCandle&amp;gt;();                &lt;br /&gt;candleManager.RegisterCandleFactory(candleFactory);&lt;br /&gt;candleManager.RegisterCandles&amp;lt;RangeCandle, Unit&amp;gt;(Security, priceRange);&lt;br /&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/7881/</id>
    <title type="text"> При попытке candleManager.RegisterCandleFactory(candleFactory) - ругается что для RangeCandles фабр...</title>
    <published>2011-05-04T15:10:40Z</published>
    <updated>2011-05-04T15:10:40Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Garic &lt;a href="https://stocksharp.ru/posts/m/7873/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;При попытке candleManager.RegisterCandleFactory(candleFactory) - ругается что для RangeCandles фабрика уже зарегистрирована.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Нужно сделать UnRegisterCandleFactory для старой фабрики.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Garic &lt;a href="https://stocksharp.ru/posts/m/7873/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Но свечи так и не появились. Если делать candleManager.RegisterRangeCandles(Security, priceRange) - свечки строятся &lt;br /&gt;Что я ещё упустил?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Упустили тот момент, что есть регистрация фабрики свечек и самих свечек. Последние зависят от параметра (priceRange может быть бесконечно много, а фабрика одна). И да, нужно тогда не RegisterRangeCandles, а RegisterCandles&amp;lt;TCandle, TArg&amp;gt;(Security security, TArg arg), раз у вас свой наследний от RangeCandle.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7873/</id>
    <title type="text">Не получается у меня методом тыка это сделать ( Задача такая, использую RangeCandle 100 на пунктов: ...</title>
    <published>2011-05-04T09:30:19Z</published>
    <updated>2011-05-04T09:30:19Z</updated>
    <author>
      <name>Garic</name>
      <uri>https://stocksharp.ru/users/809/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Не получается у меня методом тыка это сделать (&lt;br /&gt;&lt;br /&gt;Задача такая, использую RangeCandle 100 на пунктов:&lt;br /&gt;Хочу к примеру изменить RangeCandle - сделать чтобы максимальная дискретность свечи была секунда - т.е. если кто-то ударит по рынку на 500п, то я хочу увидеть одну свечу на 500пп вместо пяти свечей по 100п - всё равно в промежутке между ними войти в маркет невозможно.&lt;br /&gt;&lt;br /&gt;Попытка 1.&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;  class RangeDelayCandleFactory : RangeCandleFactory&lt;br /&gt;    {&lt;br /&gt;        public override bool IsCandleFinished(CandleToken&amp;lt;RangeCandle, Unit&amp;gt; token, RangeCandle currentCandle, Trade trade)&lt;br /&gt;        {&lt;br /&gt;            return base.IsCandleFinished(token, currentCandle, trade) &amp;amp;&amp;amp; &lt;br /&gt;                (currentCandle.Time.Minute != trade.Time.Minute || currentCandle.Time.Second != trade.Time.Second);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;При попытке candleManager.RegisterCandleFactory(candleFactory) - ругается что для RangeCandles фабрика уже зарегистрирована.&lt;br /&gt;&lt;br /&gt;Попытка 2.&lt;br /&gt;Делаю class RangeDelayCandle : RangeCandle.&lt;br /&gt;Наследуюсь от CandleFactory, дублирую один в один код из RangeCandleFactory заменяя RangeCandle на RangeDelayCandle&lt;br /&gt;&lt;br /&gt;Теперь не ругается.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;RangeDelayCandleFactory candleFactory = new RangeDelayCandleFactory();&lt;br /&gt;candleFactory.CreateToken(Security, priceRange);                &lt;br /&gt;candleManager.RegisterCandleFactory(candleFactory);                &lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;_manager.StateChanged += () =&amp;gt; this.GuiSync(() =&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;            if (_manager.State != StrategyManagerStates.Runned)&lt;br /&gt;            {&lt;br /&gt;                        this.FindedTrades.ItemsSource = candleManager.GetCandles&amp;lt;RangeDelayCandle, Unit&amp;gt;(Security, priceRange, new Range&amp;lt;DateTime&amp;gt;(this.FromDate, this.ToDate));                        &lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Но свечи так и не появились. Если делать candleManager.RegisterRangeCandles(Security, priceRange) - свечки строятся &lt;br /&gt;Что я ещё упустил?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>