﻿<?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. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=tag&amp;id=historyemulationconnector&amp;type=forum</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-10T14:04:53Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=tag&amp;id=historyemulationconnector&amp;type=forum" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/10446/</id>
    <title type="text">Найдена причина четырёх проблем исторического коннектора (HistoryEmulationConnector)  и + новый вопрос</title>
    <published>2019-02-21T00:53:03Z</published>
    <updated>2019-02-21T00:53:03Z</updated>
    <author>
      <name>Дмитрий_</name>
      <uri>https://stocksharp.ru/users/62269/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="historical data" />
    <category term="стакан" />
    <category term="HistoryEmulationConnector" />
    <content type="html">&lt;p&gt;Добрый день.&lt;/p&gt;
&lt;p&gt;Данный топик является продолжением
&lt;a href="https://stocksharp.ru/forum/10399/rabota-so-stakanom-zayavok/"&gt;https://stocksharp.ru/forum/10399/rabota-so-stakanom-zayavok/&lt;/a&gt;
&lt;a href="https://stocksharp.ru/forum/10400/korrektnaya-nastroika-istoricheskogo-konnektora/"&gt;https://stocksharp.ru/forum/10400/korrektnaya-nastroika-istoricheskogo-konnektora/&lt;/a&gt;
и решает следующие проблемы:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Правильное локальное время объекта marketDepth в событии Connector_MarketDepthChanged(MarketDepth marketDepth).&lt;/li&gt;
&lt;li&gt;Правильное локальное время объекта trade в событии Connector_NewTrade(Trade trade).&lt;/li&gt;
&lt;li&gt;Параллельное получение marketDepth объектов двух инструментов в событии Connector_MarketDepthChanged(MarketDepth marketDepth).&lt;/li&gt;
&lt;li&gt;Параллельное получение trade объектов двух инструментов в событии Connector_NewTrade(Trade trade).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Входные данные - quotesBinaryDates GAZP@MICEX и LKOH@MICEX.&lt;/p&gt;
&lt;p&gt;Корнем зла является строка под номером 349
msg.LocalTime = serverTime;
в классе CachedBasketMarketDataStorage&lt;T&gt; (namespace StockSharp.Algo.Storages).
Убираю и почти всё ок.
Почти - по следующим причинам:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Такое кардинальное удаление - не лучшее решение.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Криво приходят данные двух инструментов, будь то объект trade или объект marketDepth. Поясню.
Событие Connector_NewOrderLogItem(OrderLogItem orderLogItem) - эталон правильной синхронизированной работы 2-х инструментов.
Данные 1-ого инструмента пришли 10:00:00
Данные 1-ого инструмента пришли 10:00:01
Данные 2-ого инструмента пришли 10:00:02
Данные 1-ого инструмента пришли 10:00:02
Данные 2-ого инструмента пришли 10:00:03
Данные 2-ого инструмента пришли 10:00:04
Данные 1-ого инструмента пришли 10:00:04
Данные 1-ого инструмента пришли 10:00:06
Данные 2-ого инструмента пришли 10:00:06
Данные 1-ого инструмента пришли 10:00:07
Данные 2-ого инструмента пришли 10:00:08
Данные 1-ого инструмента пришли 10:00:09
Данные 2-ого инструмента пришли 10:00:10
и т.д.
Данные приходят в порядке своего времени.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Но с событиями Connector_MarketDepthChanged(MarketDepth marketDepth) и Connector_NewTrade(Trade trade) - такой красоты нет.
Данные 1-ого инструмента пришли 10:00:00
Данные 1-ого инструмента пришли 10:00:01
Данные 1-ого инструмента пришли 10:00:02
Данные 1-ого инструмента пришли 10:00:04
Данные 1-ого инструмента пришли 10:00:06
Данные 2-ого инструмента пришли 10:00:02
Данные 2-ого инструмента пришли 10:00:03
Данные 2-ого инструмента пришли 10:00:04
Данные 2-ого инструмента пришли 10:00:06
Данные 1-ого инструмента пришли 10:00:07
Данные 2-ого инструмента пришли 10:00:08
Данные 1-ого инструмента пришли 10:00:09
Данные 2-ого инструмента пришли 10:00:10
и т.д.
В данном примере, рассинхронизация = 6 секундам, но может появляться и в будущем.&lt;/p&gt;
&lt;p&gt;И последний момент - продолжительность рассинхронизации.
Если запускать код без breakpoints (без задержек) рассинхрон = равен 10-12 секундам.
Если запускать код с breakpoints (с задержками) рассинхрон = равен 2-3 секундам.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8263/</id>
    <title type="text">Получение свечных данных из сообщений</title>
    <published>2017-05-16T12:43:58Z</published>
    <updated>2018-05-08T12:16:42Z</updated>
    <author>
      <name>gewinn</name>
      <uri>https://stocksharp.ru/users/98706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="HistoryEmulationConnector" />
    <category term="messages" />
    <category term="candles" />
    <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>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8278/</id>
    <title type="text">Параллелизм в StockSharp</title>
    <published>2017-05-24T10:23:41Z</published>
    <updated>2017-05-25T13:59:08Z</updated>
    <author>
      <name>gewinn</name>
      <uri>https://stocksharp.ru/users/98706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="HistoryEmulationConnector" />
    <category term="Параллелизм" />
    <content type="html">&lt;p&gt;Доброе утро!
Поиском по данной теме нашел только старые топики, в которых желаемой информации не нашел.&lt;/p&gt;
&lt;p&gt;Хотелось бы спросить, как в текущей версии SS будет работать HistoryEmulationConnector, если есть портфель с N числом бумаг, где для каждой бумаги создается своя стратегия (экземпляр).
Вопросы примерно такие:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Все стратегии будут работать в одном потоке или каждая в своем?&lt;/li&gt;
&lt;li&gt;Если каждая в своем, то синхронизация между бумагами отсутствует или достигается за счет того, что, например, сообщения (свечи, тики, итд) отправляются в каждый подписанный инструмент с одинаковой скоростью?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Подобные вопросы задаю с той целью, что планирую тестировать портфель из 50+ бумаг за длинный промежуток времени (10+ лет), с отрисовкой, на достаточно мощной машине (16 ядер, видео карта последнего поколения итд).&lt;/p&gt;
</content>
  </entry>
</feed>