﻿<?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/8263/poluchenie-svechnyh-dannyh-iz-soobshshenii/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-17T04:58:25Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=8263" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/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.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Проблема решена по почте.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/98706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день. Подписка на данные в эмуляторе не помогла (ранее она была необходима только при биржевых подключениях).&lt;br /&gt;&lt;br /&gt;Поэтому собрал очень короткий пример иллюстрирующий обсуждаемую проблему, с комментариями.&lt;br /&gt;Прикрепляю и очень прошу посмотреть. &lt;br /&gt;&lt;br /&gt;Цель: получить на обработку свечку с методе processCandle() внутри стратегии.&lt;br /&gt;&lt;br /&gt;Очень надеюсь на помощь.&lt;br /&gt;&lt;br /&gt;Логи пока такие:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_65c94d0fe31e493884331bd45fcfd50b');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_65c94d0fe31e493884331bd45fcfd50b' style='display:none'&gt;&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryEmulationConnector|Connect&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connecting &amp;#39;EmulationMessageAdapter&amp;#39;.&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connected to &amp;#39;EmulationMessageAdapter&amp;#39;.&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connecting &amp;#39;История (c 07.05.2018 10:00:00 +03:00 по 09.05.2018 10:00:00 +03:00)&amp;#39;.&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connected to &amp;#39;История (c 07.05.2018 10:00:00 +03:00 по 09.05.2018 10:00:00 +03:00)&amp;#39;.&lt;br /&gt;2018/05/07 10:00:00.000|       |HistoryEmulationConnector|Создан новый портфель TestPortfolio.&lt;br /&gt;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&lt;br /&gt;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:&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписается на Level1.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписается на Trades.&lt;br /&gt;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&lt;br /&gt;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&lt;br /&gt;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:&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписается на Level1.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписается на Trades.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |strategy_GASP@TQBR|Переход из состояния Stopped в Started.&lt;br /&gt;2018/05/07 10:00:00.000|       |strategy_GASP@TQBR|Стратегия Запущена. [0,-1]. Позиция 0.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписается на CandleTimeFrame 1.00:00:00.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |strategy_LKOH@TQBR|Переход из состояния Stopped в Started.&lt;br /&gt;2018/05/07 10:00:00.000|       |strategy_LKOH@TQBR|Стратегия Запущена. [0,-1]. Позиция 0.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписается на CandleTimeFrame 1.00:00:00.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписан на Level1.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент GASP@TQBR подписан на Trades.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписан на Level1.&lt;br /&gt;2018/05/07 10:00:00.000|Debug  |HistoryEmulationConnector|Инструмент LKOH@TQBR подписан на Trades.&lt;br /&gt;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.&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)&lt;br /&gt;   в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)&lt;br /&gt;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.&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)&lt;br /&gt;   в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)&lt;br /&gt;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.&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)&lt;br /&gt;   в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)&lt;br /&gt;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.&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)&lt;br /&gt;   в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)&lt;br /&gt;2018/05/07 10:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Stopped -&amp;gt; Starting&lt;br /&gt;2018/05/07 10:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Starting -&amp;gt; Started&lt;br /&gt;2018/05/09 07:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Started -&amp;gt; Stopping&lt;br /&gt;2018/05/09 07:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Stopping -&amp;gt; Stopped&lt;br /&gt;2018/05/09 07:00:00.000|       |HistoryEmulationConnector|Disconnect&lt;br /&gt;2018/05/09 07:00:00.000|       |HistoryBasketMessageAdapter|Disconnecting &amp;#39;EmulationMessageAdapter&amp;#39;.&lt;br /&gt;2018/05/09 07:00:00.000|       |HistoryBasketMessageAdapter|Disconnected from &amp;#39;EmulationMessageAdapter&amp;#39;.&lt;br /&gt;2018/05/09 07:00:00.000|       |HistoryBasketMessageAdapter|Disconnecting &amp;#39;История (c 07.05.2018 10:00:00 +03:00 по 09.05.2018 10:00:00 +03:00)&amp;#39;.&lt;br /&gt;2018/05/09 07:00:00.000|       |HistoryBasketMessageAdapter|Disconnected from &amp;#39;История (c 07.05.2018 10:00:00 +03:00 по 09.05.2018 10:00:00 +03:00)&amp;#39;.&lt;br /&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">После регистрации источника необходимо произвести подписку на данные. Подписка производится штатными методами класса Connector. В вышеприведённом коде у вас присутствует только регистрация источника.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/98706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый вечер. Пример SampleHistoryTesting и github я посмотрел прежде чем писать сообщение выше.&lt;br /&gt;После вашего ответа перепроверил еще раз - но каких-либо существенных изменений у вас в примере не нашел, кроме:&lt;br /&gt;1) Подписка происходит теперь по событию подключения&lt;br /&gt;2) Подписка происходит для всех инструментов сразу - в метод RegisterHistorySource() первым аргументом вы передаете null.&lt;br /&gt;&lt;br /&gt;У меня в коннекторе HistoryEmulationConnector используется не один инструмент (у каждого своя стратегия). Плюс ко всему, каждый инструмент может содержать несколько таймфреймов.&lt;br /&gt;Поэтому ранее я метод RegisterHistorySource() вызывал для всех таймфреймов для каждого инструмента. &lt;br /&gt;Попробовал подписаться по событию подключения - тщетно. Поэтому непонятно даже, куда копать :( Танцевал с бубном долго. &lt;br /&gt;&lt;br /&gt;Псевдокод получается такой:&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;public List&amp;lt;Candle&amp;gt; candles_sourse;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;В классе каждого таймфрейма реализован метод getCandles() :&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_931a41d80ea34d2ca860915eb71dafe1');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_931a41d80ea34d2ca860915eb71dafe1' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;public IEnumerable&amp;lt;Message&amp;gt; getCandles(DateTimeOffset d)&lt;br /&gt;        {&lt;br /&gt;            return candles_sourse.Where(&lt;br /&gt;                c =&amp;gt; c.OpenTime.Date == d.Date&lt;br /&gt;            ).Select(t =&amp;gt; t.ToMessage());&lt;br /&gt;        }&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;2)  В HistoryEmulationConnector подписываюсь на события изменения состояния, успешного подключения и получения инструментов:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_74c71a0c4a264bc0aa3c49c65afadf5d');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_74c71a0c4a264bc0aa3c49c65afadf5d' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;StateChanged += AHistoryEmulationConnector_StateChanged;&lt;br /&gt;NewSecurity += AHistoryEmulationConnector_NewSecurity;&lt;br /&gt;Connected += AHistoryEmulationConnector_Connected;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;3)  Событие успешного подключения AHistoryEmulationConnector_Connected() :&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_32f6de87f9d64c65a0914113debe5009');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_32f6de87f9d64c65a0914113debe5009' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;private void AHistoryEmulationConnector_Connected()&lt;br /&gt;        {&lt;br /&gt;            для каждого инструмента security из всех инструментов&lt;br /&gt;            {&lt;br /&gt;                для каждого таймфрейма t из всех таймфремов инструмента&lt;br /&gt;                {&lt;br /&gt;                    RegisterHistorySource(security, MarketDataTypes.CandleTimeFrame, TimeSpan.FromMinutes(t.period), t.getCandles);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;4) Событие получения инструмента AHistoryEmulationConnector_NewSecurity() :&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_272d88424987492e872cb210412a842f');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_272d88424987492e872cb210412a842f' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;4.1. Создаю стратегию для пришедшего инструмента&lt;br /&gt;4.2. Если пришли все имеющиеся инструменты:&lt;br /&gt; -&amp;gt; Запускаю все стратегии методом strategy.Start()&lt;br /&gt; -&amp;gt; Вызываю метод Start() для HistoryEmulationConnector&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вопросы: &lt;br /&gt;1) Правильная ли логика и порядок действий? &lt;br /&gt;2) Прежде, чем собирать сжатый пример по данной ситуации (например, их двух инструментов в одном коннекторе), можете, пожалуйста, написать более подробно, &lt;br /&gt;что вы поменяли в плане подписок на внешние источники в версии 4.4.7. Попробую сам догадаться, т.к. в примере не совсем ясно, как реализованы методы getCandles() &lt;br /&gt;у источников Финам и Яху.&lt;br /&gt;&lt;br /&gt;Спасибо!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день &lt;br /&gt;&lt;br /&gt;Регистрация внешних источник была изменена в версии 4.4.7. Вы можете посмотреть пример SampleHistoryTesting как работать с внешними источниками. В примере используются сервисы Финам и Яху.&lt;br /&gt;&lt;br /&gt;Изменения разработчиков &lt;a target="_blank" href="https://github.com/StockSharp/StockSharp/commit/db0dfb39d05140db7565acdb05a771248e4b2202#diff-84a8277382d10d989376c69e0b8c30e5" title="https://github.com/StockSharp/StockSharp/commit/db0dfb39d05140db7565acdb05a771248e4b2202#diff-84a8277382d10d989376c69e0b8c30e5"&gt;https://github.com/Stock...82d10d989376c69e0b8c30e5&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/98706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день! После обновления с версии 4.4.5.4 до версии 4.4.8 перестали приходить свечи.&lt;br /&gt;Проблема, судя по всему, в &amp;quot;3) Подписываемся на исторические данные из наших сообщений:&amp;quot;.&lt;br /&gt;&lt;br /&gt;Фрагмент лога:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_675985cdd1f14d04b861b0c6ea41773b');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_675985cdd1f14d04b861b0c6ea41773b' style='display:none'&gt;0001/01/01 00:00:00.000|       |AHistoryEmulationConnector|Connect&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connecting &amp;#39;EmulationMessageAdapter&amp;#39;.&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connected to &amp;#39;EmulationMessageAdapter&amp;#39;.&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connecting &amp;#39;История (c 10.07.2013 3:00:00 +00:00 по 23.03.2018 3:00:00 +00:00)&amp;#39;.&lt;br /&gt;0001/01/01 00:00:00.000|       |HistoryBasketMessageAdapter|Connected to &amp;#39;История (c 10.07.2013 3:00:00 +00:00 по 23.03.2018 3:00:00 +00:00)&amp;#39;.&lt;br /&gt;2013/07/10 03:00:00.000|       |AHistoryEmulationConnector|Создан новый портфель TestPortfolio#0.&lt;br /&gt;2013/07/10 03:00:00.000|       |Strategy_SBER@TQBR|Стратегия Запущена. [0,-1]. Позиция 0.&lt;br /&gt;2013/07/10 03:00:00.000|       |Strategy_GAZP@TQBS|Стратегия Запущена. [0,-1]. Позиция 0.&lt;br /&gt;2013/07/10 03:00:00.000|       |Strategy_MICEX10INDEX@MICEX|Стратегия Запущена. [0,-1]. Позиция 0.&lt;br /&gt;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.&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.GetSubscriptionAdapters(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg)&lt;br /&gt;   в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message)&lt;br /&gt;   в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)&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.ru/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.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">..</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/98706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Все заработало. Спасибо! &lt;br /&gt;&lt;br /&gt;Если кому будет интересно использовать свои свечные данные из своей (или удаленной СУБД), то, основываясь на примере от уважаемого суппорта SS, реализовал так:&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;    ....&lt;br /&gt;    while (reader.Read())&lt;br /&gt;            {&lt;br /&gt;                candles_list.Add(new TimeFrameCandle()&lt;br /&gt;                {&lt;br /&gt;                    Security = security,&lt;br /&gt;                    TimeFrame = TimeSpan.FromMinutes(period),&lt;br /&gt;                    OpenTime = new DateTimeOffset((DateTime)reader&amp;#91;&amp;quot;open_datetime&amp;quot;&amp;#93;, ST.timezone_timespan_hours),&lt;br /&gt;                    CloseTime = new DateTimeOffset((DateTime)reader&amp;#91;&amp;quot;open_datetime&amp;quot;&amp;#93; + TimeSpan.FromMinutes(period), ST.timezone_timespan_hours),&lt;br /&gt;                    OpenPrice = (decimal)(double)reader&amp;#91;&amp;quot;o&amp;quot;&amp;#93;,&lt;br /&gt;                    HighPrice = (decimal)(double)reader&amp;#91;&amp;quot;h&amp;quot;&amp;#93;,&lt;br /&gt;                    LowPrice = (decimal)(double)reader&amp;#91;&amp;quot;l&amp;quot;&amp;#93;,&lt;br /&gt;                    ClosePrice = (decimal)(double)reader&amp;#91;&amp;quot;c&amp;quot;&amp;#93;,&lt;br /&gt;                    TotalVolume = (decimal)(double)reader&amp;#91;&amp;quot;v&amp;quot;&amp;#93;&lt;br /&gt;                });&lt;br /&gt;            }&lt;br /&gt;            db.closeDbConnection();&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;2) Пишем ф-цию, которая превращает свечки из коллекции в сообщения:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;public IEnumerable&amp;lt;Message&amp;gt; getCandles(DateTimeOffset d)&lt;br /&gt;{&lt;br /&gt;    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;br /&gt;} &lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;3) Подписываемся на исторические данные из наших сообщений:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;...&lt;br /&gt;connector.RegisterHistorySource(security, MarketDataTypes.CandleTimeFrame, typeof(Candle), getCandles);&lt;br /&gt;...&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;4) Работаем дальше как из &amp;quot;коробки&amp;quot; - создаем экземпляр класса CandleManager, создаем серию свечек:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;...&lt;br /&gt;candle_manager = new CandleManager(connector);&lt;br /&gt;...&lt;br /&gt;candle_serie = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(period));&lt;br /&gt;...&lt;br /&gt;candle_manager.Start(candle_serie);&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;5) Подписываемся на событие появления новых свечей и работаем с ними :) &lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;candle_manager .Processing += (series, candle) =&amp;gt; &lt;br /&gt;{&lt;br /&gt;    //TODO&lt;br /&gt;};&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Еще раз спасибо!&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">..</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/98706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо, попробую</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39956/</id>
    <title type="text">Посмотрите пример в атачменте. Там показано как подключить к эмулятору коллекцию сделок... По идее, ...</title>
    <published>2017-05-16T14:27:12Z</published>
    <updated>2017-05-16T14:27:12Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Support &lt;a href="https://stocksharp.ru/posts/m/39955/" 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.ru/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.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Посмотрите пример в атачменте. Там показано как подключить к эмулятору коллекцию свечей... По идее, то же самое можно сделать с коллекцией свечей... </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/98706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день.&lt;br /&gt;Храню свечные данные в СУБД MS SQL Server (open/close time, o, h, l, c, V).&lt;br /&gt;&lt;br /&gt;До сего момента использовал данные из файлов (Hydra/&amp;lt;первая буква инструмента&amp;gt;/&amp;lt;инструмент&amp;gt;/candles_TimeFrameCandle_1.00-00-00.bin), примерно так:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;var storageRegistry = new StorageRegistry { DefaultDrive = new LocalMarketDataDrive(config.history_folder_path) };&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Хотел бы, чтобы HistoryEmulationConnector получал данные не из файлов а, например, из сообщений-свечек, полученных после выборки данных из СУБД.&lt;br /&gt;&lt;br /&gt;Дайте, по-возможности, совет (лучше пример кода), как реализовать такую логику работы:&lt;br /&gt;-&amp;gt; Загрузили из БД свечные данные по инструменту&lt;br /&gt;-&amp;gt; Сформировали правильно сообщения-свечки из загруженных данных&lt;br /&gt;-&amp;gt; После старта исторического тестирования HistoryEmulationConnector начал получать сообщения-свечки&lt;br /&gt;-&amp;gt; Все работает, словно запустили тестирование из коробки&lt;br /&gt;&lt;br /&gt;Спасибо!</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>