﻿<?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">Удаление неиспользуемых свечей из CandleSeries</title>
  <id>~/topic/3736/udalenie-neispolzuemyh-svechei-iz-candleseries/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-12T05:53:37Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=3736" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/26244/</id>
    <title type="text">IIndicatorContainer </title>
    <published>2013-06-04T11:23:45Z</published>
    <updated>2013-06-04T11:23:45Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;IIndicatorContainer&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26240/</id>
    <title type="text">Moadip: Прежде чем изобретать велосипед, неплохо бы погонять под профилировщиком типа этого. Чтобы п...</title>
    <published>2013-06-03T17:13:21Z</published>
    <updated>2013-06-03T17:13:21Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(26195)" rel="nofollow" target="_blank"&gt;Moadip&lt;/a&gt;:&lt;/strong&gt;
Прежде чем изобретать велосипед, неплохо бы погонять под профилировщиком типа &lt;a href="http://www.jetbrains.com/profiler/" rel="nofollow" target="_blank"&gt;этого&lt;/a&gt;.
Чтобы посмотреть куда память утекает.
На форуме уже поднимался этот вопрос и не раз, что течет.
Вроде фиксили, но возможно недофиксили.[laugh]
Память стала утекать, когда логику работы стратегии перестроил с использованием CandleManager и индикаторов (до этого без них обходился). Следующую модификацию стратегии стелал без CandleManager, но с индикаторами. И память все равно в моем случае утекала. Сейчас сделал свою упрощенную реализацию индикатора без реализации IIndicator. С памятью стало все нормально. В моем случае проблема с утечкой памяти была в использовании индикатора SimpleMovingAverage.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26198/</id>
    <title type="text">Иван З.: Тесту приходится перебирать все тики, за 9 месяцев. Их сколько? И сколько обычный foreach и...</title>
    <published>2013-05-31T15:26:56Z</published>
    <updated>2013-05-31T15:26:56Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(26196)" rel="nofollow" target="_blank"&gt;Иван З.&lt;/a&gt;:&lt;/strong&gt;
Тесту приходится перебирать все тики, за 9 месяцев. Их сколько? И сколько обычный foreach их перебирать будет?
Свечи строятся на основе MarketDepth. Может еще в этом проблема.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26197/</id>
    <title type="text">Moadip: Прежде чем изобретать велосипед, неплохо бы погонять под профилировщиком типа этого. Чтобы п...</title>
    <published>2013-05-31T15:23:03Z</published>
    <updated>2013-05-31T15:23:03Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(26195)" rel="nofollow" target="_blank"&gt;Moadip&lt;/a&gt;:&lt;/strong&gt;
Прежде чем изобретать велосипед, неплохо бы погонять под профилировщиком типа &lt;a href="http://www.jetbrains.com/profiler/" rel="nofollow" target="_blank"&gt;этого&lt;/a&gt;.
Чтобы посмотреть куда память утекает.
На форуме уже поднимался этот вопрос и не раз, что течет.
Вроде фиксили, но возможно недофиксили.[laugh]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Думал уже над этим. И профилировщик именно этот поставил. Я так понимаю, что чтобы что-то увидеть в профилировщике, нужны *.pdb файлы от стокшарп сборок. У меня их нет. Если только компилировать по открытым исходникам. Но они устаревшей версии.  Пока не заморачивался с этим.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26196/</id>
    <title type="text">Тесту приходится перебирать все тики, за 9 месяцев. Их сколько? И сколько обычный foreach их перебир...</title>
    <published>2013-05-31T15:17:44Z</published>
    <updated>2013-05-31T15:17:44Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Тесту приходится перебирать все тики, за 9 месяцев. Их сколько? И сколько обычный foreach их перебирать будет?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26195/</id>
    <title type="text">Прежде чем изобретать велосипед, неплохо бы погонять под профилировщиком типа этого. Чтобы посмотрет...</title>
    <published>2013-05-31T15:16:18Z</published>
    <updated>2013-05-31T15:16:18Z</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;a href="http://www.jetbrains.com/profiler/" rel="nofollow" target="_blank"&gt;этого&lt;/a&gt;.
Чтобы посмотреть куда память утекает.
На форуме уже поднимался этот вопрос и не раз, что течет.
Вроде фиксили, но возможно недофиксили.[laugh]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26194/</id>
    <title type="text">Иван З.: А что не получилось то? Я взял тики создал из них свечки по 1 секунде, установил _candleMan...</title>
    <published>2013-05-31T15:11:21Z</published>
    <updated>2013-05-31T15:11:21Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(26193)" rel="nofollow" target="_blank"&gt;Иван З.&lt;/a&gt;:&lt;/strong&gt;
А что не получилось то?
Я взял тики создал из них свечки по 1 секунде, установил&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;_candleManager.Container.CandlesKeepTime = TimeSpan.FromMinutes(1);&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; сохраняю свечи серрии в коллекцию
&amp;gt; ```csharp
var W = candleSeries.GetCandles&amp;lt;Candle&amp;gt;().ToList();
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;каждый шаг смотрю, что с коллекцией, больше 60 свечей не показывает, и по времени они нормальные.
Или вы что то другое рассчитывали получить?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ограничение по количеству свечей работает. По прежнему большой расход памяти: 32ГБ потребляются полностью и, после того как 32ГБ исчерпаны, тестирование происходит очень медленно. Использую в тестировании BasketTrader. Включаю в него 10 экземпляров EmulationTrader. Тестирую период в 9 месяцев. Свечи строю двух таймфреймов: в несколько секунд и несколько минут.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26193/</id>
    <title type="text">А что не получилось то? Я взял тики создал из них свечки по 1 секунде, установил _candleManager.Cont...</title>
    <published>2013-05-31T14:55:50Z</published>
    <updated>2013-05-31T14:55:50Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;А что не получилось то?
Я взял тики создал из них свечки по 1 секунде, установил&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;_candleManager.Container.CandlesKeepTime = TimeSpan.FromMinutes(1);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;сохраняю свечи серрии в коллекцию&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;var W = candleSeries.GetCandles&amp;lt;Candle&amp;gt;().ToList();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;каждый шаг смотрю, что с коллекцией, больше 60 свечей не показывает, и по времени они нормальные.
Или вы что то другое рассчитывали получить?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26192/</id>
    <title type="text">Не помогло. Пока не знаю что делать. То ли разбираться в кодах стокшарпа, то ли свой CandleManager р...</title>
    <published>2013-05-31T14:04:20Z</published>
    <updated>2013-05-31T14:04:20Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Не помогло. Пока не знаю что делать. То ли разбираться в кодах стокшарпа, то ли свой CandleManager реализовывать.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/26185/</id>
    <title type="text">В днях это так выглядит: _candleManager.Container.CandlesKeepTime = TimeSpan.FromDays(2); В минутах ...</title>
    <published>2013-05-31T00:31:31Z</published>
    <updated>2013-05-31T00:31:31Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</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;_candleManager.Container.CandlesKeepTime = TimeSpan.FromDays(2);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;В минутах это наверное будет выглядеть так:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;_candleManager.Container.CandlesKeepTime = TimeSpan.FromMinutes(1);
&lt;/code&gt;&lt;/pre&gt;
&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/26183/</id>
    <title type="text">Попробовал начать использовать в своей стратегии CandleManager и CandleSeries. Время тестирования ув...</title>
    <published>2013-05-30T20:48:39Z</published>
    <updated>2013-05-30T20:48:39Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Попробовал начать использовать в своей стратегии CandleManager и CandleSeries.
Время тестирования увеличилось в несколько раз. Памяти 32ГБ уже не хватает.
Предполагаю, что память расходуется на хранение свечей (у меня таймфрейм 1 сек на данных за 9 месяцев).
В CandleSeries мне нужны свечи только за последнюю минуту.
Подскажите, есть ли способ удалять ненужные свечи из CandleSeries?
Инициализирую так::::spoiler&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
                var trader = new MyEmulationTrader(
                    new[] {security},
                    new[] {portfolio},
                    _storageRegistry)
                    {
                        UseMarketDepth = true,
                        StorageRegistry = _storageRegistry,
                        AutoResetEvent = new AutoResetEvent(false),
                    };                
                trader.Connect();
                var quickCandleManager = new CandleManager(trader);
                quickCandleManager.Sources.Add(new MyTimeFrameCandleBuilder() { Sources = { new MarketDepthCandleBuilderSource(trader) } });
                var quickCangleSeries = new CandleSeries(typeof(MyCandle), security, paramCombination.QuickTimeFrame);
                quickCandleManager.Start(quickCangleSeries);

                var slowCandleManager = new CandleManager(trader);
                slowCandleManager.Sources.Add(new MyTimeFrameCandleBuilder() { Sources = { new MarketDepthCandleBuilderSource() } });
                var slowCangleSeries = new CandleSeries(typeof(MyCandle), security, paramCombination.SlowTimeFrame);
                slowCandleManager.Start(slowCangleSeries);

                trader.StartExport();
&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>