﻿<?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/8263/poluchenie-svechnyh-dannyh-iz-soobshshenii/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-10T02:56:52Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=8263" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/43667/</id>
    <title type="text">Проблема решена по почте. </title>
    <published>2018-05-08T12:16:41Z</published>
    <updated>2018-05-08T12:16:41Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</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/43646/</id>
    <title type="text">Добрый день. Подписка на данные в эмуляторе не помогла (ранее она была необходима только при биржевы...</title>
    <published>2018-05-07T13:15:48Z</published>
    <updated>2018-05-07T13:15:48Z</updated>
    <author>
      <name>gewinn</name>
      <uri>https://stocksharp.com/users/98706/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день. Подписка на данные в эмуляторе не помогла (ранее она была необходима только при биржевых подключениях).&lt;/p&gt;
&lt;p&gt;Поэтому собрал очень короткий пример иллюстрирующий обсуждаемую проблему, с комментариями.
Прикрепляю и очень прошу посмотреть.&lt;/p&gt;
&lt;p&gt;Цель: получить на обработку свечку с методе processCandle() внутри стратегии.&lt;/p&gt;
&lt;p&gt;Очень надеюсь на помощь.&lt;/p&gt;
&lt;p&gt;Логи пока такие:&lt;/p&gt;
&lt;details&gt;&lt;summary&gt;0001/01/01 00:00:00.000|       |HistoryEmulationConnector|Connect
0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connecting 'EmulationMessageAdapter'.
0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connected to 'EmulationMessageAdapter'.
0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connecting 'История (c 07.05.2018 10:00:00 +03:00 по 09.05.2018 10:00:00 +03:00)'.
0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connected to 'История (c 07.05.2018 10:00:00 +03:00 по 09.05.2018 10:00:00 +03:00)'.
2018/05/07 10:00:00.000|       |HistoryEmulationConnector|Создан новый портфель TestPortfolio.
2018/05/07 13:13:50.521|Debug  |SecurityMarketEmulator| --&amp;gt; Board,T(L)=0001.01.01 00:00:00.000,Code=TQBR,Ex=MOEX
2018/05/07 13:13:50.528|Debug  |SecurityMarketEmulator| --&amp;gt; Security,T(L)=2018.05.07 10:00:00.000,Sec=S#:GASP@TQBR, Native:,Type:
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписается на Level1.
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписается на Trades.
2018/05/07 13:13:50.669|Debug  |SecurityMarketEmulator| --&amp;gt; Board,T(L)=2018.05.07 10:00:00.000,Code=TQBR,Ex=MOEX
2018/05/07 13:13:50.673|Debug  |SecurityMarketEmulator| --&amp;gt; Board,T(L)=0001.01.01 00:00:00.000,Code=TQBR,Ex=MOEX
2018/05/07 13:13:50.673|Debug  |SecurityMarketEmulator| --&amp;gt; Security,T(L)=2018.05.07 10:00:00.000,Sec=S#:LKOH@TQBR, Native:,Type:
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписается на Level1.
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписается на Trades.
2018/05/07 10:00:00.000|Debug  |strategy_GASP@TQBR|Переход из состояния Stopped в Started.
2018/05/07 10:00:00.000|       |strategy_GASP@TQBR|Стратегия Запущена. [0,-1]. Позиция 0.
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписается на CandleTimeFrame 1.00:00:00.
2018/05/07 10:00:00.000|Debug  |strategy_LKOH@TQBR|Переход из состояния Stopped в Started.
2018/05/07 10:00:00.000|       |strategy_LKOH@TQBR|Стратегия Запущена. [0,-1]. Позиция 0.
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписается на CandleTimeFrame 1.00:00:00.
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписан на Level1.
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписан на Trades.
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписан на Level1.
2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписан на Trades.
2018/05/07 10:00:00.000|Error  |HistoryBasketMessageAdapter|System.InvalidOperationException: Не найден подходящий адаптер для MarketData,T(L)=2018/05/07 10:00:00.000,Sec=S#:GASP@TQBR, Native:,Type:,Sec=S#:GASP@TQBR, Native:,Type:,Type=CandleTimeFrame,IsSubscribe=True,Arg=1.00:00:00,TransId=11,OrigId=0.
в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)
2018/05/07 10:00:00.000|Error  |HistoryEmulationConnector|System.InvalidOperationException: Не найден подходящий адаптер для MarketData,T(L)=2018/05/07 10:00:00.000,Sec=S#:GASP@TQBR, Native:,Type:,Sec=S#:GASP@TQBR, Native:,Type:,Type=CandleTimeFrame,IsSubscribe=True,Arg=1.00:00:00,TransId=11,OrigId=0.
в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)
2018/05/07 10:00:00.000|Error  |HistoryBasketMessageAdapter|System.InvalidOperationException: Не найден подходящий адаптер для MarketData,T(L)=2018/05/07 10:00:00.000,Sec=S#:LKOH@TQBR, Native:,Type:,Sec=S#:LKOH@TQBR, Native:,Type:,Type=CandleTimeFrame,IsSubscribe=True,Arg=1.00:00:00,TransId=13,OrigId=0.
в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)
2018/05/07 10:00:00.000|Error  |HistoryEmulationConnector|System.InvalidOperationException: Не найден подходящий адаптер для MarketData,T(L)=2018/05/07 10:00:00.000,Sec=S#:LKOH@TQBR, Native:,Type:,Sec=S#:LKOH@TQBR, Native:,Type:,Type=CandleTimeFrame,IsSubscribe=True,Arg=1.00:00:00,TransId=13,OrigId=0.
в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)
2018/05/07 10:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Stopped -&amp;gt; Starting
2018/05/07 10:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Starting -&amp;gt; Started
2018/05/09 07:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Started -&amp;gt; Stopping
2018/05/09 07:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Stopping -&amp;gt; Stopped
2018/05/09 07:00:00.000|       |HistoryEmulationConnector|Disconnect
2018/05/09 07:00:00.000|       |HistoryBasketMessageAdapter|Disconnecting 'EmulationMessageAdapter'.
2018/05/09 07:00:00.000|       |HistoryBasketMessageAdapter|Disconnected from 'EmulationMessageAdapter'.
2018/05/09 07:00:00.000|       |HistoryBasketMessageAdapter|Disconnecting 'История (c 07.05.2018 10:00:00 +03:00 по 09.05.2018 10:00:00 +03:00)'.
2018/05/09 07:00:00.000|       |HistoryBasketMessageAdapter|Disconnected from 'История (c 07.05.2018 10:00:00 +03:00 по 09.05.2018 10:00:00 +03:00)'.&lt;/summary&gt;
&lt;/details&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/43615/</id>
    <title type="text">После регистрации источника необходимо произвести подписку на данные. Подписка производится штатными...</title>
    <published>2018-05-05T09:56:54Z</published>
    <updated>2018-05-05T09:56:54Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;После регистрации источника необходимо произвести подписку на данные. Подписка производится штатными методами класса Connector. В вышеприведённом коде у вас присутствует только регистрация источника.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/43608/</id>
    <title type="text">Добрый вечер. Пример SampleHistoryTesting и github я посмотрел прежде чем писать сообщение выше. Пос...</title>
    <published>2018-05-04T21:38:17Z</published>
    <updated>2018-05-04T21:38:17Z</updated>
    <author>
      <name>gewinn</name>
      <uri>https://stocksharp.com/users/98706/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый вечер. Пример SampleHistoryTesting и github я посмотрел прежде чем писать сообщение выше.
После вашего ответа перепроверил еще раз - но каких-либо существенных изменений у вас в примере не нашел, кроме:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Подписка происходит теперь по событию подключения&lt;/li&gt;
&lt;li&gt;Подписка происходит для всех инструментов сразу - в метод RegisterHistorySource() первым аргументом вы передаете null.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;У меня в коннекторе HistoryEmulationConnector используется не один инструмент (у каждого своя стратегия). Плюс ко всему, каждый инструмент может содержать несколько таймфреймов.
Поэтому ранее я метод RegisterHistorySource() вызывал для всех таймфреймов для каждого инструмента.
Попробовал подписаться по событию подключения - тщетно. Поэтому непонятно даже, куда копать :( Танцевал с бубном долго.&lt;/p&gt;
&lt;p&gt;Псевдокод получается такой:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Для каждого таймфрейма каждого инструмента подгружаю из СУБД свечи в коллекцию таймфрейма&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;public List&amp;lt;Candle&amp;gt; candles_sourse;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;В классе каждого таймфрейма реализован метод getCandles() :&lt;/p&gt;
&lt;div class="spoiler"&gt;
&lt;pre&gt;&lt;code&gt;public IEnumerable&amp;lt;Message&amp;gt; getCandles(DateTimeOffset d)
        {
            return candles_sourse.Where(
                c =&amp;gt; c.OpenTime.Date == d.Date
            ).Select(t =&amp;gt; t.ToMessage());
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;В HistoryEmulationConnector подписываюсь на события изменения состояния, успешного подключения и получения инструментов:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="spoiler"&gt;
&lt;pre&gt;&lt;code&gt;StateChanged += AHistoryEmulationConnector_StateChanged;
NewSecurity += AHistoryEmulationConnector_NewSecurity;
Connected += AHistoryEmulationConnector_Connected;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Событие успешного подключения AHistoryEmulationConnector_Connected() :&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="spoiler"&gt;
&lt;pre&gt;&lt;code&gt;private void AHistoryEmulationConnector_Connected()
        {
            для каждого инструмента security из всех инструментов
            {
                для каждого таймфрейма t из всех таймфремов инструмента
                {
                    RegisterHistorySource(security, MarketDataTypes.CandleTimeFrame, TimeSpan.FromMinutes(t.period), t.getCandles);
                }
            }
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Событие получения инструмента AHistoryEmulationConnector_NewSecurity() :&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="spoiler"&gt;
&lt;pre&gt;&lt;code&gt;
4.1. Создаю стратегию для пришедшего инструмента
4.2. Если пришли все имеющиеся инструменты:
 -&amp;gt; Запускаю все стратегии методом strategy.Start()
 -&amp;gt; Вызываю метод Start() для HistoryEmulationConnector

&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Вопросы:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Правильная ли логика и порядок действий?&lt;/li&gt;
&lt;li&gt;Прежде, чем собирать сжатый пример по данной ситуации (например, их двух инструментов в одном коннекторе), можете, пожалуйста, написать более подробно,
что вы поменяли в плане подписок на внешние источники в версии 4.4.7. Попробую сам догадаться, т.к. в примере не совсем ясно, как реализованы методы getCandles()
у источников Финам и Яху.&lt;/li&gt;
&lt;/ol&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/43600/</id>
    <title type="text">Добрый день Регистрация внешних источник была изменена в версии 4.4.7. Вы можете посмотреть пример S...</title>
    <published>2018-05-04T17:03:25Z</published>
    <updated>2018-05-04T17:03:25Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день&lt;/p&gt;
&lt;p&gt;Регистрация внешних источник была изменена в версии 4.4.7. Вы можете посмотреть пример SampleHistoryTesting как работать с внешними источниками. В примере используются сервисы Финам и Яху.&lt;/p&gt;
&lt;p&gt;Изменения разработчиков &lt;a href="https://github.com/StockSharp/StockSharp/commit/db0dfb39d05140db7565acdb05a771248e4b2202#diff-84a8277382d10d989376c69e0b8c30e5" target="_blank"&gt;https://github.com/StockSharp/StockSharp/commit/db0dfb39d05140db7565acdb05a771248e4b2202#diff-84a8277382d10d989376c69e0b8c30e5&lt;/a&gt;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/43565/</id>
    <title type="text">Добрый день! После обновления с версии 4.4.5.4 до версии 4.4.8 перестали приходить свечи. Проблема, ...</title>
    <published>2018-05-03T17:13:02Z</published>
    <updated>2018-05-03T18:22:05Z</updated>
    <author>
      <name>gewinn</name>
      <uri>https://stocksharp.com/users/98706/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день! После обновления с версии 4.4.5.4 до версии 4.4.8 перестали приходить свечи.
Проблема, судя по всему, в &amp;quot;3) Подписываемся на исторические данные из наших сообщений:&amp;quot;.&lt;/p&gt;
&lt;p&gt;Фрагмент лога:&lt;/p&gt;
&lt;details&gt;&lt;summary&gt;0001/01/01 00:00:00.000|       |AHistoryEmulationConnector|Connect
0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connecting 'EmulationMessageAdapter'.
0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connected to 'EmulationMessageAdapter'.
0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connecting 'История (c 10.07.2013 3:00:00 +00:00 по 23.03.2018 3:00:00 +00:00)'.
0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connected to 'История (c 10.07.2013 3:00:00 +00:00 по 23.03.2018 3:00:00 +00:00)'.
2013/07/10 03:00:00.000|       |AHistoryEmulationConnector|Создан новый портфель TestPortfolio#0.
2013/07/10 03:00:00.000|       |Strategy_SBER@TQBR|Стратегия Запущена. [0,-1]. Позиция 0.
2013/07/10 03:00:00.000|       |Strategy_GAZP@TQBS|Стратегия Запущена. [0,-1]. Позиция 0.
2013/07/10 03:00:00.000|       |Strategy_MICEX10INDEX@MICEX|Стратегия Запущена. [0,-1]. Позиция 0.
2013/07/10 03:00:00.000|Error  |HistoryBasketMessageAdapter|System.InvalidOperationException: Не найден подходящий адаптер для MarketData,T(L)=2013/07/10 03:00:00.000,Sec=S#:SBER@TQBR, Native:,Type:,Sec=S#:SBER@TQBR, Native:,Type:,Type=CandleTimeFrame,IsSubscribe=True,Arg=1.00:00:00,TransId=8,OrigId=0.
в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)
в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)&lt;/summary&gt;
&lt;/details&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/39996/</id>
    <title type="text">.. </title>
    <published>2017-05-24T13:04:30Z</published>
    <updated>2017-05-24T13:04:30Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</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/39990/</id>
    <title type="text">Все заработало. Спасибо! Если кому будет интересно использовать свои свечные данные из своей (или уд...</title>
    <published>2017-05-23T11:29:31Z</published>
    <updated>2017-05-23T11:29:31Z</updated>
    <author>
      <name>gewinn</name>
      <uri>https://stocksharp.com/users/98706/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Все заработало. Спасибо!&lt;/p&gt;
&lt;p&gt;Если кому будет интересно использовать свои свечные данные из своей (или удаленной СУБД), то, основываясь на примере от уважаемого суппорта SS, реализовал так:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Получаем свечные данные из БД, формируем свечки, кладем в коллекцию:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;
    ....
    while (reader.Read())
            {
                candles_list.Add(new TimeFrameCandle()
                {
                    Security = security,
                    TimeFrame = TimeSpan.FromMinutes(period),
                    OpenTime = new DateTimeOffset((DateTime)reader[&amp;quot;open_datetime&amp;quot;], ST.timezone_timespan_hours),
                    CloseTime = new DateTimeOffset((DateTime)reader[&amp;quot;open_datetime&amp;quot;] + TimeSpan.FromMinutes(period), ST.timezone_timespan_hours),
                    OpenPrice = (decimal)(double)reader[&amp;quot;o&amp;quot;],
                    HighPrice = (decimal)(double)reader[&amp;quot;h&amp;quot;],
                    LowPrice = (decimal)(double)reader[&amp;quot;l&amp;quot;],
                    ClosePrice = (decimal)(double)reader[&amp;quot;c&amp;quot;],
                    TotalVolume = (decimal)(double)reader[&amp;quot;v&amp;quot;]
                });
            }
            db.closeDbConnection();
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Пишем ф-цию, которая превращает свечки из коллекции в сообщения:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;
public IEnumerable&amp;lt;Message&amp;gt; getCandles(DateTimeOffset d)
{
    return candles_list.Where(с=&amp;gt; ((с.OpenTime.Date == d.Date) &amp;amp;&amp;amp; (с.OpenTime.TimeOfDay == d.TimeOfDay))).Select(t =&amp;gt; t.ToMessage());
} 

&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Подписываемся на исторические данные из наших сообщений:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;...
connector.RegisterHistorySource(security, MarketDataTypes.CandleTimeFrame, typeof(Candle), getCandles);
...
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Работаем дальше как из &amp;quot;коробки&amp;quot; - создаем экземпляр класса CandleManager, создаем серию свечек:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;...
candle_manager = new CandleManager(connector);
...
candle_serie = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(period));
...
candle_manager.Start(candle_serie);
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="5"&gt;
&lt;li&gt;Подписываемся на событие появления новых свечей и работаем с ними :)&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;candle_manager .Processing += (series, candle) =&amp;gt; 
{
    //TODO
};
&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.com/posts/m/39959/</id>
    <title type="text">.. </title>
    <published>2017-05-17T15:17:23Z</published>
    <updated>2017-05-17T15:17:23Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</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/39957/</id>
    <title type="text">Спасибо, попробую </title>
    <published>2017-05-16T19:54:57Z</published>
    <updated>2017-05-16T19:57:18Z</updated>
    <author>
      <name>gewinn</name>
      <uri>https://stocksharp.com/users/98706/</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/39956/</id>
    <title type="text">Support: Посмотрите пример в атачменте. Там показано как подключить к эмулятору коллекцию сделок... ...</title>
    <published>2017-05-16T14:27:12Z</published>
    <updated>2017-05-16T14:27:12Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(39955)" rel="nofollow" target="_blank"&gt;Support&lt;/a&gt;:&lt;/strong&gt;
Посмотрите пример в атачменте. Там показано как подключить к эмулятору коллекцию сделок... По идее, то же самое можно сделать с коллекцией свечей...&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/39955/</id>
    <title type="text">Посмотрите пример в атачменте. Там показано как подключить к эмулятору коллекцию свечей... По идее, ...</title>
    <published>2017-05-16T14:26:29Z</published>
    <updated>2017-05-16T14:26:29Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.com/users/97869/</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/39954/</id>
    <title type="text">Добрый день. Храню свечные данные в СУБД MS SQL Server (open/close time, o, h, l, c, V). До сего мом...</title>
    <published>2017-05-16T12:43:58Z</published>
    <updated>2017-05-16T12:51:43Z</updated>
    <author>
      <name>gewinn</name>
      <uri>https://stocksharp.com/users/98706/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день.
Храню свечные данные в СУБД MS SQL Server (open/close time, o, h, l, c, V).&lt;/p&gt;
&lt;p&gt;До сего момента использовал данные из файлов (Hydra/&amp;lt;первая буква инструмента&amp;gt;/&amp;lt;инструмент&amp;gt;/candles_TimeFrameCandle_1.00-00-00.bin), примерно так:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var storageRegistry = new StorageRegistry { DefaultDrive = new LocalMarketDataDrive(config.history_folder_path) };
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Хотел бы, чтобы HistoryEmulationConnector получал данные не из файлов а, например, из сообщений-свечек, полученных после выборки данных из СУБД.&lt;/p&gt;
&lt;p&gt;Дайте, по-возможности, совет (лучше пример кода), как реализовать такую логику работы:
-&amp;gt; Загрузили из БД свечные данные по инструменту
-&amp;gt; Сформировали правильно сообщения-свечки из загруженных данных
-&amp;gt; После старта исторического тестирования HistoryEmulationConnector начал получать сообщения-свечки
-&amp;gt; Все работает, словно запустили тестирование из коробки&lt;/p&gt;
&lt;p&gt;Спасибо!&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>