﻿<?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">Тестирование 4.2.2.16. Вывод свечей на график.</title>
  <id>~/topic/4404/testirovanie-4_2_2_16_-vyvod-svechei-na-grafik_/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-17T04:58:50Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=4404" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/30117/</id>
    <title type="text">Спасибо за помощь) Ошибку вашу подтверждаю. Свечки строятся не правильно. ... Это все таки тестирова...</title>
    <published>2014-03-26T15:51:42Z</published>
    <updated>2014-03-26T15:57:59Z</updated>
    <author>
      <name>romany4</name>
      <uri>https://stocksharp.ru/users/50252/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо за помощь)&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Ошибку вашу подтверждаю. Свечки строятся не правильно.&lt;br /&gt;...&lt;br /&gt;Это все таки тестирование, а не реальная торговля, зачем с этим заморачиваться не понятно.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Просто если вести статистику - то можно запутаться, получается что на деле значения свечи одни а в эмуляторе уже другие. И тем более при переходе на реальную торговлю это не вызовет неожиданных результатов?&lt;br /&gt;Было бы классно, если ребята из S# прокомметировали эту ситуацию...</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/30098/</id>
    <title type="text">Добрый день! Раньше, к сожалению, не было возможности посмотреть ваши файлы. Поэтому отвечаю только ...</title>
    <published>2014-03-24T17:09:08Z</published>
    <updated>2014-03-24T17:13:23Z</updated>
    <author>
      <name>Bond</name>
      <uri>https://stocksharp.ru/users/26882/</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;Странная схема построения свечек и работа с series. Это все таки тестирование, а не реальная торговля, зачем с этим заморачиваться не понятно.&lt;br /&gt;Предлагаю такую схему работы со свечами:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

//Загружаем из хранилища свечи, + добавляем один день(косяк - не выводит последний день)
var candles = storageRegistry.GetCandleStorage(typeof(TimeFrameCandle), security, timeFrame).Load(startTime, stopTime.AddDays(1));

//Перебираем полученные свечи
foreach (var candle in candles)
{
   DrawCandle(candle, ChartCandleElement);
}

//Выводим их на график или обрабатываем как нравится
private void DrawCandle(Candle candle, ChartCandleElement chartCandleElement)
{
   this.GuiAsync(() =&amp;gt; _candleWindow.Chart.ProcessCandle(chartCandleElement, candle));
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://s004.radikal.ru/i205/1403/94/40ca74c5a7f5.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://s004.radikal.ru/i205/1403/94/40ca74c5a7f5.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&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/30010/</id>
    <title type="text">У финама дырявые данные Тут суть то в том, что через гидру я тоже качаю финамовские данные (источник...</title>
    <published>2014-03-15T16:00:34Z</published>
    <updated>2014-03-15T16:00:34Z</updated>
    <author>
      <name>romany4</name>
      <uri>https://stocksharp.ru/users/50252/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;У финама дырявые данные&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Тут суть то в том, что через гидру я тоже качаю финамовские данные (источник Финам). И получается, что данные полученные от финама напрямую, отличаются от данных финама, скачанные гидрой. Собственно со всего этого и началось. Я хочу понять почему так происходит.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;Сбросьте ВСЕ файлы, включая ваш пример и исторические данные в одном архиве&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/30008/</id>
    <title type="text"> Наблюдаются те же самые расхождения. Совпадают только HIGH и LOW цены. У финама дырявые данные. НО ...</title>
    <published>2014-03-15T15:47:36Z</published>
    <updated>2014-03-15T15:47:36Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.ru/users/50604/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;romany4 &lt;a href="https://stocksharp.ru/posts/m/29999/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;&lt;br /&gt;Наблюдаются те же самые расхождения. Совпадают только HIGH и LOW цены.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;У финама дырявые данные. НО бесплатные=))) Доверять можно только данным записанным вживую с рынка, и то, с определенным скептицизмом (latency, рассинхронизация на очень маленьких таймфреймах и т.д.)&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/30007/</id>
    <title type="text">От себя советую не использовать никакие генераторы - это бред. Не использовать ни при каких обстояте...</title>
    <published>2014-03-15T15:44:56Z</published>
    <updated>2014-03-15T15:44:56Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.ru/users/50604/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Bond &lt;a href="https://stocksharp.ru/posts/m/29990/" 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;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/30003/</id>
    <title type="text">Сбросьте ВСЕ файлы, включая ваш пример и исторические данные в одном архиве на почту bond_algotrade@...</title>
    <published>2014-03-15T12:47:06Z</published>
    <updated>2014-03-15T12:47:06Z</updated>
    <author>
      <name>Bond</name>
      <uri>https://stocksharp.ru/users/26882/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Сбросьте ВСЕ файлы, включая ваш пример и исторические данные в одном архиве на почту &lt;a href="https://stocksharp.ru/away/?u=AQAAAAAAAACekhZNS3Rg93IJgTMDmVEEqTA95GOK-59OFTA3q94sZA"&gt;bond_algotrade@mail.ru&lt;/a&gt;&lt;br /&gt;Найдем, где собака зарыта.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/29999/</id>
    <title type="text">Собственно в продолжение темы решил данные выкачать гидрой и проверить. 1) Для сравнения выкачиваем ...</title>
    <published>2014-03-15T09:00:00Z</published>
    <updated>2014-03-15T09:00:00Z</updated>
    <author>
      <name>romany4</name>
      <uri>https://stocksharp.ru/users/50252/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Собственно в продолжение темы решил данные выкачать гидрой и проверить.&lt;br /&gt;1) Для сравнения выкачиваем данные с финама вручную (&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAR6NPBH_hY1LPd7ZlenayqtW8pl5uAcJyVHwuqz14jGSh1av-FKZI-P_YjIxPqX-A" title="http://www.finam.ru/analysis/profile041CA00007/"&gt;тыц&lt;/a&gt;) (Сбербанк, с 01.10.2013 по 01.12.2013, 5мин. свечи) - это будет эталон, на который будем ориентироваться.&lt;br /&gt;2) С помощью гидры также выкачиваем Сбер за аналогичный период. (только пятиминутные свечи, без сделок)&lt;br /&gt;3) Протестируем данные гидры на SampleHistoryTesting (4.2.2.16)&lt;br /&gt;4) Проверим данные, записанные в лог и сравним их с тем, что прислал финам &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_cddcce38f2834eb4b25ec3dd94cf001f');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_cddcce38f2834eb4b25ec3dd94cf001f' style='display:none'&gt;&lt;br /&gt;&amp;lt;TICKER&amp;gt;;&amp;lt;PER&amp;gt;;&amp;lt;DATE&amp;gt;;&amp;lt;TIME&amp;gt;;&amp;lt;OPEN&amp;gt;;&amp;lt;HIGH&amp;gt;;&amp;lt;LOW&amp;gt;;&amp;lt;CLOSE&amp;gt;;&amp;lt;VOL&amp;gt;&lt;br /&gt;SBER;5;20131001;100000;97.8000000;98.2000000;97.7500000;98.0100000;1505670&lt;br /&gt;SBER;5;20131001;100500;98.0600000;98.1100000;97.8800000;98.0000000;1208190&lt;br /&gt;SBER;5;20131001;101000;98.0000000;98.1600000;97.9500000;98.0000000;3890740&lt;br /&gt;SBER;5;20131001;101500;98.0000000;98.0500000;98.0000000;98.0400000;99520&lt;br /&gt;SBER;5;20131001;102000;98.0400000;98.3500000;98.0400000;98.2000000;1323520&lt;br /&gt;SBER;5;20131001;102500;98.1900000;98.6400000;98.1600000;98.4100000;2353380&lt;br /&gt;SBER;5;20131001;103000;98.4300000;98.6200000;98.3000000;98.3500000;1511960&lt;br /&gt;SBER;5;20131001;103500;98.3900000;98.4000000;98.2500000;98.3000000;558720&lt;br /&gt;SBER;5;20131001;104000;98.3500000;98.4400000;98.2600000;98.3000000;715980&lt;br /&gt;SBER;5;20131001;104500;98.3100000;98.3900000;98.2000000;98.2100000;316160&lt;br /&gt;SBER;5;20131001;105000;98.2200000;98.2800000;98.0700000;98.1100000;890210&lt;br /&gt;SBER;5;20131001;105500;98.1200000;98.2800000;98.0300000;98.1700000;892270&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;лог с SampleHistoryTesting &lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_336961ac4e164000a66cf2681b3a8269');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_336961ac4e164000a66cf2681b3a8269' style='display:none'&gt;&lt;br /&gt;2013/10/01 00:00:00.000|       |SS_SBER@EQBR_test account|Стратегия запущена. [0,-1]. Позиция при старте 0.&lt;br /&gt;2013/10/01 00:00:00.000|       |HistoryEmulationConnector|Инструмент SBER@EQBR зарегистрирован на получение рыночных данных для Candles.&lt;br /&gt;2014/03/15 12:44:13.945|       |HistoryMessageAdapter|Loading 01.10.2013 0:00:00 Events: 0&lt;br /&gt;2014/03/15 12:44:14.096|       |HistoryMessageAdapter|Loading 02.10.2013 0:00:00 Events: 212&lt;br /&gt;2014/03/15 12:44:14.102|       |HistoryMessageAdapter|Loading 03.10.2013 0:00:00 Events: 424&lt;br /&gt;2014/03/15 12:44:14.107|       |HistoryMessageAdapter|Loading 04.10.2013 0:00:00 Events: 636&lt;br /&gt;2013/10/01 10:05:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:00:00: 97.8000000;97.8000000;97.8000000;97.8000000; объем 376417&lt;br /&gt;2014/03/15 12:44:14.421|       |HistoryMessageAdapter|Loading 05.10.2013 0:00:00 Events: 848&lt;br /&gt;2014/03/15 12:44:14.425|       |HistoryMessageAdapter|Loading 06.10.2013 0:00:00 Events: 848&lt;br /&gt;2014/03/15 12:44:14.427|       |HistoryMessageAdapter|Loading 07.10.2013 0:00:00 Events: 848&lt;br /&gt;2013/10/01 10:10:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:05:00: 97.7500000;98.2000000;97.7500000;98.0600000; объем 1431300&lt;br /&gt;2013/10/01 10:15:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:10:00: 98.1100000;98.1100000;97.8800000;98.0000000; объем 1878828&lt;br /&gt;2013/10/01 10:20:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:15:00: 98.1600000;98.1600000;97.9500000;98.0000000; объем 2942935&lt;br /&gt;2013/10/01 10:25:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:20:00: 98.0000000;98.0500000;98.0000000;98.0400000; объем 405520&lt;br /&gt;2013/10/01 10:30:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:25:00: 98.0400000;98.3500000;98.0400000;98.1900000; объем 1580985&lt;br /&gt;2013/10/01 10:35:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:30:00: 98.1600000;98.6400000;98.1600000;98.4300000; объем 2143025&lt;br /&gt;2013/10/01 10:40:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:35:00: 98.6200000;98.6200000;98.3000000;98.3900000; объем 1273650&lt;br /&gt;2013/10/01 10:45:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:40:00: 98.4000000;98.4000000;98.2500000;98.3500000; объем 598035&lt;br /&gt;2013/10/01 10:50:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:45:00: 98.4400000;98.4400000;98.2600000;98.3100000; объем 616025&lt;br /&gt;2013/10/01 10:55:00.000|       |SS_SBER@EQBR_test account|Новая свеча 10/01/2013 10:50:00: 98.3900000;98.3900000;98.2000000;98.2200000; объем 459672&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Наблюдаются те же самые расхождения. Совпадают только HIGH и LOW цены.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/29991/</id>
    <title type="text">Спасибо за советы) Намудрил) Тогда подскажите, правильно ли я понимаю, что могу исключить этот блок ...</title>
    <published>2014-03-14T13:19:35Z</published>
    <updated>2014-03-14T13:19:35Z</updated>
    <author>
      <name>romany4</name>
      <uri>https://stocksharp.ru/users/50252/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо за советы) Намудрил)&lt;br /&gt;Тогда подскажите, правильно ли я понимаю, что могу исключить этот блок кода&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_b6d3be109be44028b8f71d9996194670');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_b6d3be109be44028b8f71d9996194670' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

trader.NewSecurities += securities =&amp;gt;
                                {
                                    if (securities.All(s =&amp;gt; s != _security))
                                        return;
                                    trader.RegisterMarketDepth(new TrendMarketDepthGenerator(trader.GetSecurityId(_security))
                                    {
                                        // стакан для инструмента в истории обновляется раз в секунду
                                        Interval = TimeSpan.FromSeconds(1),
                                        MaxAsksDepth = 1,
                                        MaxBidsDepth = 1,
                                        UseTradeVolume = true,
                                        MaxVolume = 1,
                                        MinSpreadStepCount = 2,
                                        MaxSpreadStepCount = 5,
                                        MaxPriceStepCount = 3
                                    });
                                };
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;скорее всего случайные из стакана. Здесь появляются отличия&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Почему тогда эта случайность одна и та же? или тут речь о псевдослучайности?&lt;br /&gt;&lt;br /&gt;PS Закомментил пока этот код у себя. Но результат тот же. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/29990/</id>
    <title type="text">Вы берете текстовый файл с данными свечи. Потом его парсите и сохраняете в хранилище. Потом берете и...</title>
    <published>2014-03-14T12:45:34Z</published>
    <updated>2014-03-14T12:45:34Z</updated>
    <author>
      <name>Bond</name>
      <uri>https://stocksharp.ru/users/26882/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Вы берете текстовый файл с данными свечи. Потом его парсите и сохраняете в хранилище. Потом берете из хранилища сохраненные свечи(!). При этом используете генератор стакана! Затем создаете свечи из приходящих сделок (скорее всего случайные из стакана. Здесь появляются отличия.) [laugh]&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/29989/</id>
    <title type="text">Так получаю свечи IEnumerable candles = instanceCandle.GetHistoryCandle(_security, _fromDate.ToMysql...</title>
    <published>2014-03-14T12:23:26Z</published>
    <updated>2014-03-14T12:23:26Z</updated>
    <author>
      <name>romany4</name>
      <uri>https://stocksharp.ru/users/50252/</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;&lt;pre class="brush:csharp"&gt;

IEnumerable&amp;lt;Candle&amp;gt; candles = instanceCandle.GetHistoryCandle(_security, _fromDate.ToMysqlTimestampFormat(), _toDate.ToMysqlTimestampFormat(), timeFrameCandle);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;если смотреть через дебаг - candles содержит тот же набор что и в бд.&lt;br /&gt;&lt;br /&gt;теперь сохраняю в StorageRegistry, затем создаю HistoryEmulationConnector, и вывожу свечи&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_42c9f1240b544fe9bbe740482887b2c5');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_42c9f1240b544fe9bbe740482887b2c5' style='display:none'&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

var registry = new StorageRegistry();
registry.GetCandleStorage(typeof(TimeFrameCandle), _security, timeFrameCandle).Save(candles);
// тестовый портфель
var portfolio = new Portfolio
{
    Name = &amp;quot;test account&amp;quot;,
    BeginValue = 10000,
};

//шлюз для эмуляции
var trader = new HistoryEmulationConnector(
    new[] { _security },
    new[] { portfolio })
{
    StorageRegistry = registry,
    MarketEmulator =
    {
        Settings =
        {
            // использовать свечки
            UseCandlesTimeFrame = timeFrameCandle,
            MatchOnTouch = false,
        }
    }
};
trader.MarketDataAdapter.SessionHolder.MarketTimeChangedInterval = TimeSpan.FromSeconds(10);

trader.NewSecurities += securities =&amp;gt;
{
    if (securities.All(s =&amp;gt; s != _security))
        return;

    trader.RegisterMarketDepth(new TrendMarketDepthGenerator(trader.GetSecurityId(_security))
    {
        // стакан для инструмента в истории обновляется раз в секунду
        Interval = TimeSpan.FromSeconds(1),
        MaxAsksDepth = 1,
        MaxBidsDepth = 1,
        UseTradeVolume = true,
        MaxVolume = 1,
        MinSpreadStepCount = 2,
        MaxSpreadStepCount = 5,
        MaxPriceStepCount = 3
    });
};
trader.Connect();
trader.StartExport();

_candleManager = new CandleManager(trader);

_series = new CandleSeries(typeof(TimeFrameCandle), _security, timeFrameCandle);
                                
_area = new ChartArea();
Chart.Areas.Add(_area);

//создание элемента графика представляющего свечки
_candlesElem = new ChartCandleElement();
_area.Elements.Add(_candlesElem);

_series.ProcessCandle += DrawCandle;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Вот собственно весь код.&lt;br /&gt;&lt;br /&gt;И вот еще сам метод DrawCandle&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
private void DrawCandle(Candle candle)
{
    this.GuiAsync(() =&amp;gt; Chart.ProcessCandle((ChartCandleElement)Chart.Areas[0].Elements[0], candle));
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/29987/</id>
    <title type="text">Приведите полный код преобразований. Здесь явно какая-то ошибка.</title>
    <published>2014-03-14T10:49:36Z</published>
    <updated>2014-03-14T10:49:36Z</updated>
    <author>
      <name>Bond</name>
      <uri>https://stocksharp.ru/users/26882/</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/29985/</id>
    <title type="text">Добрый день. Уточните конкретнее о чем речь. Есть уже готовые свечи в бд. Хранятся они в таком виде:...</title>
    <published>2014-03-14T09:31:49Z</published>
    <updated>2014-03-14T09:31:49Z</updated>
    <author>
      <name>romany4</name>
      <uri>https://stocksharp.ru/users/50252/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день. &lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;Уточните конкретнее о чем речь.&lt;/div&gt;&lt;/div&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_31d39c44cce7449bbd4a5b5849befde4');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_31d39c44cce7449bbd4a5b5849befde4' style='display:none'&gt;&lt;br /&gt;OPEN | HIGH | LOW | CLOSE | DATETIME_CANDLE&lt;br /&gt;97.8000 | 98.2000 | 97.7500 | 98.0100 | 2013-10-01 10:00:00&lt;br /&gt;98.0600 | 98.1100 | 97.8800 | 98.0000 | 2013-10-01 10:05:00&lt;br /&gt;98.0000 | 98.1600 | 97.9500 | 98.0000 | 2013-10-01 10:10:00&lt;br /&gt;98.0000 | 98.0500 | 98.0000 | 98.0400 | 2013-10-01 10:15:00&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Данные из бд получаю и сохраняю в IEnumerable&amp;lt;Candle&amp;gt; candles&lt;br /&gt;Если смотреть candles через дебаггер - то все нормально - данные те же самые.  &lt;br /&gt;Далее я их сохраняю в StorageRegistry, который в свою очередь используется в HistoryEmulationConnector&lt;br /&gt;И вот если через дебаг смотреть уже метод DrawCandle то там будут такие значения&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_65612c3372664f5ca5579da2c3e51476');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_65612c3372664f5ca5579da2c3e51476' style='display:none'&gt;&lt;br /&gt;OPEN | HIGH | LOW | CLOSE | DATETIME_CANDLE&lt;br /&gt;&lt;b&gt;97.8000&lt;/b&gt; | &lt;b&gt;98.8000&lt;/b&gt; | &lt;b&gt;97.8000&lt;/b&gt; | &lt;b&gt;98.8000&lt;/b&gt; | 2013-10-01 10:00:00&lt;br /&gt;&lt;b&gt;97.7500&lt;/b&gt; | 98.2000 | 97.7500 | &lt;b&gt;98.0600&lt;/b&gt; | 2013-10-01 10:05:00&lt;br /&gt;&lt;b&gt;98.1100&lt;/b&gt; | 98.1100 | 97.8800 | &lt;b&gt;98.0000&lt;/b&gt;| 2013-10-01 10:10:00&lt;br /&gt;&lt;b&gt;98.1600&lt;/b&gt; | 98.1600 | 97.9500 | &lt;b&gt;98.0000&lt;/b&gt; | 2013-10-01 10:15:00&lt;br /&gt;&lt;b&gt;98.0000&lt;/b&gt; | 98.0500 | 98.0000 | &lt;b&gt;98.0400&lt;/b&gt; | 2013-10-01 10:20:00&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Т.е. получается так. Первая свеча формируется из OPEN. При этом OPEN = HIGH = LOW = CLOSE.&lt;br /&gt;Для остальных свечей HIGH и LOW соответствуют первоначальным значениям (что и в бд). А вот OPEN и CLOSE не намного изменяются, и изменяются они не везде, но в большинстве случаев.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/29957/</id>
    <title type="text">Добрый день! К сведению, некоторые особенности формирования свечей из тиков: - Свечи закрываются пер...</title>
    <published>2014-03-11T15:35:42Z</published>
    <updated>2014-03-11T15:36:35Z</updated>
    <author>
      <name>Bond</name>
      <uri>https://stocksharp.ru/users/26882/</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;&lt;div class="quote"&gt;&lt;span class="quotetitle"&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/29946/</id>
    <title type="text">Добрый вечер! Разъясните, пожалуйста, следующую ситуацию. Есть HistoryEmulationConnector. Есть свечи...</title>
    <published>2014-03-10T17:06:38Z</published>
    <updated>2014-03-10T17:06:38Z</updated>
    <author>
      <name>romany4</name>
      <uri>https://stocksharp.ru/users/50252/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый вечер! &lt;br /&gt;Разъясните, пожалуйста, следующую ситуацию.&lt;br /&gt;Есть HistoryEmulationConnector.&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_482076a8dc0948949ab11d2c9a8ba5b0');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_482076a8dc0948949ab11d2c9a8ba5b0' style='display:none'&gt;&lt;br /&gt;OPEN    | HIGH     | LOW     | CLOSE   | VOLUME  | DATETIME_CANDLE&lt;br /&gt;97.8000 | 98.2000  | 97.7500 | 98.0100 | 1505670 | 2013-10-01 10:00:00&lt;br /&gt;98.0600 | 98.1100  | 97.8800 | 98.0000 | 1208190 | 2013-10-01 10:05:00&lt;br /&gt;98.0000 | 98.1600  | 97.9500 | 98.0000 | 3890740 | 2013-10-01 10:10:00&lt;br /&gt;98.0000 | 98.0500  | 98.0000 | 98.0400 | 99520   | 2013-10-01 10:15:00&lt;br /&gt;...&lt;br /&gt;&lt;/div&gt; &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;&lt;pre class="brush:csharp"&gt;

var time = DateTime.ParseExact(candle.DatetimeCandle, &amp;quot;dd.MM.yyyy HH:mm:ss&amp;quot;, null);
return new TimeFrameCandle()
{
    OpenPrice = candle.Open,
    HighPrice = candle.High,
    LowPrice = candle.Low,
    ClosePrice = candle.Close,
    TimeFrame = timeFrameCandle,
    OpenTime = time,
    CloseTime = time + timeFrameCandle,
    TotalVolume = candle.Volume,
    Security = security,
    State = CandleStates.Finished
};
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Если смотреть через дебаггер - то значения соответствуют тем, что выше.&lt;br /&gt;1) Но вот при отрисовке свечей их OPEN и CLOSE значения изменяются. Изменяются они не намного, но все же мне пока не понятно по какому принципу это происходит.&lt;br /&gt;2) И еще - все первые свечи (10:00:00) каждого дня при отрисовке имеют OPEN = HIGH = LOW = CLOSE, что, например, не соответствует данным, указанным выше. (Для первого набора, например, эти значения равны 97,8)&lt;br /&gt;&lt;br /&gt;Буду благодарен, если кто-то объяснит почему так происходит.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>