﻿<?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">CandleManager и последняя свечка в сессии</title>
  <id>~/topic/1544/candlemanager-i-poslednyaya-svechka-v-sessii/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-04T08:36:11Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1544" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/7860/</id>
    <title type="text">Есть вариант сделать что для последней свечки будет подниматься событие CandlesFinished если Trader....</title>
    <published>2011-05-03T16:30:43Z</published>
    <updated>2011-05-03T16:30:59Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;esper &lt;a href="https://stocksharp.com/posts/m/7783/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander &lt;a href="https://stocksharp.com/posts/m/7782/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Есть вариант сделать что для последней свечки будет подниматься событие CandlesFinished если Trader.MarketTime станет больше чем время завершения сессии - т.е. если Trader.MarketTime &amp;gt;= 23.50 для фортса и &amp;gt;= 18.45 для ММВБ.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Это было бы замечательно[smile]&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Фикса в 3.1 не будет.&lt;br /&gt;Вариант локального решения - отнаследуйтесь от TimeFrameCandleFactory и переопределите IsCandleFinished с проверкой что время закончилось:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;return trade.Time &amp;lt; currentCandle.Time || (currentCandle.Time + token.TypedArg) &amp;lt;= trade.Time || trade.Security.Trader.MarketTime.TimeOfDay &amp;gt;= trade.Security.Exchange.WorkingTime.Times.Last().Max;&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.com/posts/m/7783/</id>
    <title type="text">Есть вариант сделать что для последней свечки будет подниматься событие CandlesFinished если Trader....</title>
    <published>2011-04-29T12:09:37Z</published>
    <updated>2011-04-29T12:09:37Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander &lt;a href="https://stocksharp.com/posts/m/7782/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Есть вариант сделать что для последней свечки будет подниматься событие CandlesFinished если Trader.MarketTime станет больше чем время завершения сессии - т.е. если Trader.MarketTime &amp;gt;= 23.50 для фортса и &amp;gt;= 18.45 для ММВБ.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Это было бы замечательно[smile]</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7782/</id>
    <title type="text">Оно и вызывается. Просто нужно понять схему алгоритма. Если он у вас другой, то можете всегда сделат...</title>
    <published>2011-04-29T10:53:50Z</published>
    <updated>2011-04-29T10:53:50Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;esper &lt;a href="https://stocksharp.com/posts/m/7781/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7780/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Оно и вызывается. Просто нужно понять схему алгоритма. Если он у вас другой, то можете всегда сделать свой собственный CandleFactory.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Алгоритм простой, после &amp;quot;завершения&amp;quot; свечки мне необходимо ее сохранить. CandlesFinished же не вызывается для последней свечки, так как, если я правильно понял, после нее свечек в этой сессии не будет.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Есть вариант сделать что для последней свечки будет подниматься событие CandlesFinished если Trader.MarketTime станет больше чем время завершения сессии - т.е. если Trader.MarketTime &amp;gt;= 23.50 для фортса и &amp;gt;= 18.45 для ММВБ.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7781/</id>
    <title type="text">Оно и вызывается. Просто нужно понять схему алгоритма. Если он у вас другой, то можете всегда сделат...</title>
    <published>2011-04-29T10:43:46Z</published>
    <updated>2011-04-29T10:43:46Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7780/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Оно и вызывается. Просто нужно понять схему алгоритма. Если он у вас другой, то можете всегда сделать свой собственный CandleFactory.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Алгоритм простой, после &amp;quot;завершения&amp;quot; свечки мне необходимо ее сохранить. CandlesFinished же не вызывается для последней свечки, так как, если я правильно понял, после нее свечек в этой сессии не будет.&lt;br /&gt;&lt;br /&gt;Можно записывать все скопом после завершения сессии, но тогда усложнится момент запуска стратегии, так как сейчас я просто поднимаю нужное кол-во свечек из базы (там есть все сформировавшиеся свечки) и запускаю стратегию, а придется комбинировать получение данных из базы и CandleManager.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7780/</id>
    <title type="text">Пишите по окончанию сессии все свечки один раз. Спасибо за ответы, буду думать дальше, хотя было бы ...</title>
    <published>2011-04-29T10:34:31Z</published>
    <updated>2011-04-29T10:34:31Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;esper &lt;a href="https://stocksharp.com/posts/m/7779/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7778/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Пишите по окончанию сессии все свечки один раз.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Спасибо за ответы, буду думать дальше, хотя было бы классно, если для последней свечки это событие тоже вызывалось.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Оно и вызывается. Просто нужно понять схему алгоритма. Если он у вас другой, то можете всегда сделать свой собственный CandleFactory.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7779/</id>
    <title type="text">Пишите по окончанию сессии все свечки один раз. Спасибо за ответы, буду думать дальше, хотя было бы ...</title>
    <published>2011-04-29T10:28:26Z</published>
    <updated>2011-04-29T10:28:26Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7778/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Пишите по окончанию сессии все свечки один раз.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Спасибо за ответы, буду думать дальше, хотя было бы классно, если для последней свечки это событие тоже вызывалось.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7778/</id>
    <title type="text">Т.е. придется обрабатывать не Finished, а New и Changed? Не хотелось бы слишком часто в базу писать....</title>
    <published>2011-04-29T09:58:24Z</published>
    <updated>2011-04-29T09:58:24Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;esper &lt;a href="https://stocksharp.com/posts/m/7777/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Т.е. придется обрабатывать не Finished, а New и Changed? Не хотелось бы слишком часто в базу писать.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Пишите по окончанию сессии все свечки один раз.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7777/</id>
    <title type="text">Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо пос...</title>
    <published>2011-04-29T09:43:56Z</published>
    <updated>2011-04-29T09:43:56Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7776/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;esper &lt;a href="https://stocksharp.com/posts/m/7775/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7768/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо последние находятся еще в стадии формирования.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Программу с роботом закрываю через пару часов после завершения торгов, данные уже давно не поступают...&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Дело в том, что свечка заканчивает формироваться не по таймеру, а по поступлению данных (чтобы избежать проблем с лагами в сети брокера, которые есть чуть ли не всегда). Поэтому свечка закончит формироваться тогда, когда появиться новая свечка.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Т.е. придется обрабатывать не Finished, а New и Changed? Не хотелось бы слишком часто в базу писать.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7776/</id>
    <title type="text">Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо пос...</title>
    <published>2011-04-29T09:32:59Z</published>
    <updated>2011-04-29T09:32:59Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;esper &lt;a href="https://stocksharp.com/posts/m/7775/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7768/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо последние находятся еще в стадии формирования.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Программу с роботом закрываю через пару часов после завершения торгов, данные уже давно не поступают...&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Дело в том, что свечка заканчивает формироваться не по таймеру, а по поступлению данных (чтобы избежать проблем с лагами в сети брокера, которые есть чуть ли не всегда). Поэтому свечка закончит формироваться тогда, когда появиться новая свечка.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7775/</id>
    <title type="text">Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо пос...</title>
    <published>2011-04-29T09:25:37Z</published>
    <updated>2011-04-29T09:25:37Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7768/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо последние находятся еще в стадии формирования.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Программу с роботом закрываю через пару часов после завершения торгов, данные уже давно не поступают...</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7768/</id>
    <title type="text">Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо пос...</title>
    <published>2011-04-29T08:28:44Z</published>
    <updated>2011-04-29T08:28:44Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо последние находятся еще в стадии формирования.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7761/</id>
    <title type="text">Как вы проверяете? Данные записываются в базу SQL Compact, далее, после сессии, смотрю данные в ней....</title>
    <published>2011-04-29T02:53:54Z</published>
    <updated>2011-04-29T02:53:54Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/7757/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Как вы проверяете?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Данные записываются в базу SQL Compact, далее, после сессии, смотрю данные в ней. По прошествии двух сессии а базе нет последних свечек.&lt;br /&gt;&lt;br /&gt;Для работы с базой использую EF. Обработчик candleManager_CandlesFinished примерно следующий:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;void candleManager_CandlesFinished(CandleToken arg1, IEnumerable&amp;lt;Entities.Candle&amp;gt; arg2)&lt;br /&gt;{&lt;br /&gt;    foreach (var c in arg2)&lt;br /&gt;    {&lt;br /&gt;        var candle = context.Candles.FirstOrDefault(e =&amp;gt; e.Security.Code == c.Security.Code &amp;amp;&amp;amp; e.Time == c.Time);&lt;br /&gt;        if (candle == null)&lt;br /&gt;        {&lt;br /&gt;            candle = new Entities.TimeFrameCandle()&lt;br /&gt;            {&lt;br /&gt;                Security = c.Security,&lt;br /&gt;                Time = c.Time,&lt;br /&gt;                OpenPrice = c.OpenPrice,&lt;br /&gt;                HighPrice = c.HighPrice,&lt;br /&gt;                LowPrice = c.LowPrice,&lt;br /&gt;                ClosePrice = c.ClosePrice,&lt;br /&gt;                TotalVolume = c.TotalVolume,&lt;br /&gt;            };&lt;br /&gt;            context.Add(candle);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;    context.SaveChanges();&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.com/posts/m/7757/</id>
    <title type="text">Как вы проверяете?</title>
    <published>2011-04-28T17:39:05Z</published>
    <updated>2011-04-28T17:39:05Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Как вы проверяете?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/7711/</id>
    <title type="text">Добрый день. При реализации стратегии решил сохранять свечки в локальной базе. Для получения свечек ...</title>
    <published>2011-04-27T08:35:13Z</published>
    <updated>2011-04-27T08:35:13Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день.&lt;br /&gt;&lt;br /&gt;При реализации стратегии решил сохранять свечки в локальной базе. Для получения свечек подписываюсь на событие СandleManager.CandlesFinished в событии Trader.Connected:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;candleManager = new CandleManager(trader);&lt;br /&gt;candleManager.CandlesFinished += candleManager_CandlesFinished;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;в событии Trader.NewSecurities регистрирую какие свечки получать:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;sec = obj.FirstOrDefault(e =&amp;gt; e.Code == &amp;quot;GAZP&amp;quot;);&lt;br /&gt;if (sec != null)&lt;br /&gt;{&lt;br /&gt;   if (!candleManager.IsTimeFrameCandlesRegistered(sec, timeFrame))&lt;br /&gt;   {&lt;br /&gt;       // регистрируем наш тайм-фрейм&lt;br /&gt;       candleManager.RegisterTimeFrameCandles(sec, timeFrame);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Таймфрейм равен 5 минутам. Данные приходят, за исключением последней свечки. Т.е. время первой свечки 10:30:00, а время последней 18:35:00, хотя должно быть 18:40:00?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>