﻿<?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">Использование готовой коллекции данных в HistoryEmulationConnector</title>
  <id>~/topic/8149/ispolzovanie-gotovoi-kollektsii-dannyh-v-historyemulationconnector/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-01T09:35:41Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=8149" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/39852/</id>
    <title type="text">ок.</title>
    <published>2017-04-26T13:55:56Z</published>
    <updated>2017-04-26T13:55:56Z</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/39851/</id>
    <title type="text">Спасибо, что подсказали про смещение на 1 день. Вроде разобрался. Если период в HistoryMessageAdapte...</title>
    <published>2017-04-26T02:58:00Z</published>
    <updated>2017-04-26T02:58:00Z</updated>
    <author>
      <name>Pelmen32</name>
      <uri>https://stocksharp.ru/users/95692/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо, что подсказали про смещение на 1 день. Вроде разобрался.&lt;br /&gt;Если период в HistoryMessageAdapter задавать в формате UTC, то пропущенных дней нет.&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;_historyConnector.HistoryMessageAdapter.StartDate = d1.Date.ToUniversalTime();&lt;br /&gt;                _historyConnector.HistoryMessageAdapter.StopDate = d2.Date.ToUniversalTime().AddDays(1);&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39846/</id>
    <title type="text">Чисто логически можно предположить, что неделя на 1 день смещена... А как время в данных записано? К...</title>
    <published>2017-04-25T13:16:24Z</published>
    <updated>2017-04-25T13:16:51Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Чисто логически можно предположить, что неделя на 1 день смещена... А как время в данных записано? Какое там смещение...&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39839/</id>
    <title type="text">Я подгрузил с сайта Финам коллекцию тиковых сделок по акциям за период с 10.04.2017 по 21.04.2017 в ...</title>
    <published>2017-04-24T14:49:55Z</published>
    <updated>2017-04-24T14:49:55Z</updated>
    <author>
      <name>Pelmen32</name>
      <uri>https://stocksharp.ru/users/95692/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Я подгрузил с сайта Финам коллекцию тиковых сделок по акциям за период с 10.04.2017 по 21.04.2017 в переменную&lt;br /&gt;_historyTicks, информация подгрузилась без ошибок за все даты (проверил).&lt;br /&gt;Далее в HistoryEmuationConnector передаю готовую коллекцию _historyTicks, как указано в ранее приложенном рабочем примере. После запуска коннектра, в функцию GetTrades, при вызове, поступают поочередно даты. За две пятницы дата в функцию не приходит (14.04.17 и 21.04.17). Очень странно поступают даты при вызове GetTrades: с начальной датой (10.04.17) функция вызывается три раза, далее приходят даты 11.04, 12.04, 13.04, 16.04 (воскресенье!?), 17.04, 18.04, 19.04, 20.04, через 15-20 секунд, вызывается повторно 19.04 и все.&lt;br /&gt;Акцию выбрал из топ списка - АЛРОСА (критерий ликвидность, и не очень много тиков).</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39836/</id>
    <title type="text">1. Загружена куда?</title>
    <published>2017-04-24T13:34:40Z</published>
    <updated>2017-04-24T13:34:40Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">1. Загружена куда?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39835/</id>
    <title type="text">Спасибо. Все получилось, только не загружается информация за пятницы. Пробовал загружать историю (ти...</title>
    <published>2017-04-24T02:57:42Z</published>
    <updated>2017-04-24T02:57:42Z</updated>
    <author>
      <name>Pelmen32</name>
      <uri>https://stocksharp.ru/users/95692/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо.&lt;br /&gt;Все получилось, только не загружается информация за пятницы.&lt;br /&gt;Пробовал загружать историю (тики) с Финама по акциям и передавать в HistoryEmulationConnector за период с 10.04.2017 по 21.04.2017&lt;br /&gt;В метод GetTrades не приходят даты за пятницу 14.04.2017 и 21.04.2017.&lt;br /&gt;Проверил, история за эти даты с Финама была загружена.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39750/</id>
    <title type="text">Регистрацию источника нужно выполнять в событии NewSecurities.. Рабочий пример во вложении... </title>
    <published>2017-04-17T12:48:00Z</published>
    <updated>2017-04-17T12:48:00Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Регистрацию источника нужно выполнять в событии NewSecurities.. Рабочий пример во вложении...&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39593/</id>
    <title type="text">Нет еще..</title>
    <published>2017-03-30T12:55:19Z</published>
    <updated>2017-03-30T12:55:19Z</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/39587/</id>
    <title type="text">Добрый день, прошло уже 2 недели, удалось ли проверить данную проблему?</title>
    <published>2017-03-29T23:51:12Z</published>
    <updated>2017-03-29T23:51:12Z</updated>
    <author>
      <name>Pelmen32</name>
      <uri>https://stocksharp.ru/users/95692/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день, &lt;br /&gt;прошло уже 2 недели, удалось ли проверить данную проблему?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39475/</id>
    <title type="text">Хорошо, будем проверять..</title>
    <published>2017-03-15T12:46:29Z</published>
    <updated>2017-03-15T12:46: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/39474/</id>
    <title type="text">Сделал все по Вашей рекомендации. Создал отдельный метод: public IEnumerable GetTrades(DateTimeOffse...</title>
    <published>2017-03-15T02:04:33Z</published>
    <updated>2017-03-15T02:04:33Z</updated>
    <author>
      <name>Pelmen32</name>
      <uri>https://stocksharp.ru/users/95692/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Сделал все по Вашей рекомендации.&lt;br /&gt;Создал отдельный метод:&lt;br /&gt;public IEnumerable&amp;lt;Message&amp;gt; GetTrades(DateTimeOffset d)&lt;br /&gt;        {&lt;br /&gt;            var trades = _historyTicks.Where(ht =&amp;gt; ((ht.ServerTime.Date == d.Date) &amp;amp;&amp;amp;&lt;br /&gt;                                                           (ht.ServerTime.TimeOfDay == d.TimeOfDay)));&lt;br /&gt;            return trades;&lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;Изменил:&lt;br /&gt;_historyConnector.RegisterHistorySource(_selSecurity, MarketDataTypes.Trades, null, GetTrades);&lt;br /&gt;&lt;br /&gt;Поставил внутри метода GetTrades точку останова, но программа в него не заходит&lt;br /&gt;&lt;br /&gt;Сделал дополнительную подписку на событие коннектора появления &amp;quot;нового сообщения&amp;quot; и вывод всех приходящих сообщений в окно Debug&lt;br /&gt;historyConnector.NewMessage += (m) =&amp;gt;&lt;br /&gt;                            {&lt;br /&gt;                                var m1 = m;&lt;br /&gt;                                Debug.Print(m.ToString());&lt;br /&gt;                            };&lt;br /&gt;&lt;br /&gt;После  вызова _historyConnector.Connect();&lt;br /&gt;в переменную m приходит первое сообщение:&lt;br /&gt;Error,T(L)=0001/01/01 00:00:00.000,Error=Не найден подходящий адаптер для -8.&lt;br /&gt;&lt;br /&gt;затем последовательно приходят следующие сообщения:&lt;br /&gt;Connect,T(L)=0001/01/01 00:00:00.000&lt;br /&gt;Connect,T(L)=2017/03/13 09:59:42.000&lt;br /&gt;PortfolioLookupResult,T(L)=2017/03/13 09:59:42.000,Orig=1&lt;br /&gt;OrderStatus,T(L)=2017/03/13 09:59:42.000,Sec=S#:@, Native:,Type:,OriginTransId=0,TransId=2,OrderId=,TransId=2&lt;br /&gt;PortfolioChange,T(L)=2017/03/13 09:59:42.000,T(S)=0001/01/01 00:00:00.000,P=test account,Changes=[RealizedPnL, 0],[VariationMargin, 0],[CurrentValue, 1000000],[BlockedValue, 0],[Commission, 0]&lt;br /&gt;Board,T(L)=2017/03/13 09:59:42.000,Code=TQBR,Ex=MOEX&lt;br /&gt;Security,T(L)=2017/03/13 09:59:42.000,Sec=S#:SBER@TQBR, Native:,Type:&lt;br /&gt;SecurityLookupResult,T(L)=2017/03/13 09:59:42.000,Orig=3&lt;br /&gt;MarketData,T(L)=2017/03/13 09:59:42.000,Sec=S#:@, Native:,Type:,Sec=S#:@, Native:,Type:,Types=Level1,IsSubscribe=True,TransId=0,OrigId=4&lt;br /&gt;Time,T(L)=2017/03/13 07:00:00.000,ID=0,Response=&lt;br /&gt;SecurityLookupResult,T(L)=2017/03/13 15:45:00.000,Orig=3&lt;br /&gt;Time,T(L)=2017/03/13 15:45:00.000,ID=0,Response=&lt;br /&gt;Time,T(L)=2017/03/13 15:45:01.000,ID=0,Response=&lt;br /&gt;Time,T(L)=2017/03/13 15:45:02.000,ID=0,Response=&lt;br /&gt;Time,T(L)=2017/03/14 07:00:00.000,ID=0,Response=&lt;br /&gt;Time,T(L)=2017/03/14 15:45:00.000,ID=0,Response=&lt;br /&gt;Time,T(L)=2017/03/14 15:45:01.000,ID=0,Response=&lt;br /&gt;Time,T(L)=2017/03/14 15:45:02.000,ID=0,Response=&lt;br /&gt;PortfolioLookupResult,T(L)=2017/03/14 15:45:02.000,Orig=1&lt;br /&gt;Disconnect,T(L)=2017/03/14 15:45:02.000&lt;br /&gt;MarketData,T(L)=2017/03/14 15:45:02.000,Sec=S#:@, Native:,Type:,Sec=S#:@, Native:,Type:,Types=Level1,IsSubscribe=False,TransId=0,OrigId=5&lt;br /&gt;Disconnect,T(L)=2017/03/14 18:49:49.000&lt;br /&gt;&lt;br /&gt;Прилагаю файл сообщений Debug.&lt;br /&gt;&lt;br /&gt;тики загружены в переменную _historyTicks по акциям SBER за период с 13.03.17 по 14.03.17, общее кол-во 105943 шт. &lt;br /&gt;дата первого тика d1= {13.03.2017 9:59:42 +03:00}, дата последнего тика d2={14.03.2017 18:49:49 +03:00}&lt;br /&gt;&lt;br /&gt;Текст кода следующий: &lt;br /&gt;&lt;br /&gt;        public IEnumerable&amp;lt;Message&amp;gt; GetTrades(DateTimeOffset d)&lt;br /&gt;        {&lt;br /&gt;            var trades = _historyTicks.Where(ht =&amp;gt; ((ht.ServerTime.Date == d.Date) &amp;amp;&amp;amp;&lt;br /&gt;                                                           (ht.ServerTime.TimeOfDay == d.TimeOfDay)));&lt;br /&gt;            return trades;&lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;. . .&lt;br /&gt;&lt;br /&gt;if (_historyTicks != null)&lt;br /&gt;                            {                                &lt;br /&gt;                                d1 = _historyTicks.ElementAt(0).ServerTime;&lt;br /&gt;                                d2 = _historyTicks.ElementAt(_historyTicks.Count() - 1).ServerTime;&lt;br /&gt;                            }&lt;br /&gt;                               &lt;br /&gt;                            _selSecurity = SecFinamBuilder.SelectedSecurityModyf;&lt;br /&gt;                                                     &lt;br /&gt;                            _selPortfolio = new Portfolio&lt;br /&gt;                            {&lt;br /&gt;                                Name = &amp;quot;test account&amp;quot;,&lt;br /&gt;                                BeginValue = 1000000,&lt;br /&gt;                            };&lt;br /&gt;                            &lt;br /&gt;                            _historyConnector = new HistoryEmulationConnector(new[] {_selSecurity}, new[] {_selPortfolio})&lt;br /&gt;                            {&lt;br /&gt;                                EmulationAdapter =&lt;br /&gt;                                {&lt;br /&gt;                                    Emulator = { Settings = { MatchOnTouch = false, } }&lt;br /&gt;                                },&lt;br /&gt;&lt;br /&gt;                                UseExternalCandleSource = false,&lt;br /&gt;                                CreateDepthFromOrdersLog = false,&lt;br /&gt;                                CreateTradesFromOrdersLog = false,&lt;br /&gt;                            };&lt;br /&gt;&lt;br /&gt;                            _historyConnector.HistoryMessageAdapter.StartDate = d1;&lt;br /&gt;                            _historyConnector.HistoryMessageAdapter.StopDate = d2;&lt;br /&gt;                                                       &lt;br /&gt;                            _historyConnector.RegisterHistorySource(_selSecurity, MarketDataTypes.Trades, null, GetTrades);&lt;br /&gt;                                                      &lt;br /&gt;                            _historyConnector.NewMessage += (m) =&amp;gt;&lt;br /&gt;                            {&lt;br /&gt;                                var m1 = m;&lt;br /&gt;                                Debug.Print(m.ToString());&lt;br /&gt;                            };&lt;br /&gt;&lt;br /&gt;                            _historyConnector.Connect();&lt;br /&gt;                                                        &lt;br /&gt;                            var candleManager = new CandleManager(_historyConnector);&lt;br /&gt;&lt;br /&gt;                            LoadSettingsDiagram();&lt;br /&gt;&lt;br /&gt;                            _candleTimeFrame = TimeSpan.FromMinutes(5);&lt;br /&gt;&lt;br /&gt;                            _connectorCandleSеries = new CandleSeries(typeof(TimeFrameCandle), _selSecurity, _candleTimeFrame);&lt;br /&gt;&lt;br /&gt;                            candleManager.Processing += DrawElement;&lt;br /&gt;&lt;br /&gt;                            candleManager.Start(_connectorCandleSеries);&lt;br /&gt;&lt;br /&gt;                            _historyConnector.Start();&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39472/</id>
    <title type="text"> private IEnumerable&amp;gt; GetTrades(DateTimeOffset d) { var trades = _historyTicks.Where(ht =&amp;gt; ((ht.Serv...</title>
    <published>2017-03-14T13:00:22Z</published>
    <updated>2017-03-14T13:01:20Z</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;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;private IEnumerable&amp;lt;Message&amp;gt;&amp;gt; GetTrades(DateTimeOffset d)&lt;br /&gt;{&lt;br /&gt;     var trades = _historyTicks.Where(ht =&amp;gt; ((ht.ServerTime.Date == d.Date) &amp;amp;&amp;amp; (ht.ServerTime.TimeOfDay==d.TimeOfDay)));&lt;br /&gt;     return trades;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;_historyConnector.RegisterHistorySource(_selSecurity, MarketDataTypes.Trades, null, GetTrades);&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вот так сделайте... Поставьте точку останова внутрь GetTrades и посмотрите какое время приходит в функцию, и что она возвращает...&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/39471/</id>
    <title type="text">Добрый день. Хочу передать коллекцию тиковых сделок IEnumerable в HistoryEmulationConnector. Есть ли...</title>
    <published>2017-03-14T01:41:52Z</published>
    <updated>2017-03-14T01:41:52Z</updated>
    <author>
      <name>Pelmen32</name>
      <uri>https://stocksharp.ru/users/95692/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день.&lt;br /&gt;Хочу передать коллекцию тиковых сделок IEnumerable&amp;lt;ExecutionMessage&amp;gt; в HistoryEmulationConnector.&lt;br /&gt;&lt;br /&gt;Есть ли способ это сделать без использования механизма сохранения коллекции в файл через StorageRegistry?&lt;br /&gt;&lt;br /&gt;Пытаюсь делать на основе примера тестирование на исторических данных через Финам, &lt;br /&gt;с использованием метода RegisterHistorySource, но никак не получается. &lt;br /&gt;Данные не подгружаются, свечки не строятся. Подскажите, пожалуйста, мою ошибку, &lt;br /&gt;может быть есть у кого рабочее решение.&lt;br /&gt;&lt;br /&gt;Пытаюсь сделать  следующим образом:&lt;br /&gt;_historyTicks - переменная содержащая коллекцию IEnumerable&amp;lt;ExecutionMessage&amp;gt; (тики загружены, проверил)&lt;br /&gt;&lt;br /&gt;d1 = _historyTicks.ElementAt(0).ServerTime;&lt;br /&gt;d2 = _historyTicks.ElementAt(_historyTicks.Count() - 1).ServerTime;&lt;br /&gt;&lt;br /&gt;_historyConnector = new HistoryEmulationConnector(new[] {_selSecurity}, new[] {_selPortfolio})&lt;br /&gt;                            {&lt;br /&gt;                                EmulationAdapter =&lt;br /&gt;                                {&lt;br /&gt;                                    Emulator = { Settings = { MatchOnTouch = false, } }&lt;br /&gt;                                },&lt;br /&gt;&lt;br /&gt;                                UseExternalCandleSource = false,&lt;br /&gt;                                CreateDepthFromOrdersLog = false,&lt;br /&gt;                                CreateTradesFromOrdersLog = false,&lt;br /&gt;                            };&lt;br /&gt;&lt;br /&gt;_historyConnector.HistoryMessageAdapter.StartDate = d1;&lt;br /&gt;_historyConnector.HistoryMessageAdapter.StopDate = d2;&lt;br /&gt;&lt;br /&gt;Func&amp;lt;DateTimeOffset, IEnumerable&amp;lt;Message&amp;gt;&amp;gt; selectionData = d =&amp;gt;&lt;br /&gt;                                _historyTicks.Where(ht =&amp;gt; ((ht.ServerTime.Date == d.Date) &amp;amp;&amp;amp; (ht.ServerTime.TimeOfDay==d.TimeOfDay)));&lt;br /&gt;                            &lt;br /&gt;_historyConnector.RegisterHistorySource(_selSecurity, MarketDataTypes.Trades, typeof (Trade), selectionData);&lt;br /&gt;&lt;br /&gt;var candleManager = new CandleManager(_historyConnector);&lt;br /&gt;&lt;br /&gt;_candleTimeFrame = TimeSpan.FromMinutes(5);&lt;br /&gt;&lt;br /&gt; _connectorCandleSеries = new CandleSeries(typeof(TimeFrameCandle), _selSecurity, _candleTimeFrame);&lt;br /&gt;&lt;br /&gt;candleManager.Processing += DrawElement;&lt;br /&gt;&lt;br /&gt;candleManager.Start(_connectorCandleSеries);&lt;br /&gt;&lt;br /&gt;_historyConnector.Start();&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>