﻿<?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/2861/skleika-dannye-gidry--real-taim/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-03T20:45:42Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2861" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/20661/</id>
    <title type="text"> Я так и не понял, какой баг. Добрый день! Баг ли, не могу утверждать но проблема есть. Тестирую роб...</title>
    <published>2012-08-05T10:18:50Z</published>
    <updated>2012-08-05T10:18:50Z</updated>
    <author>
      <name>Gii</name>
      <uri>https://stocksharp.com/users/5912/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/20418/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;&lt;br /&gt;Я так и не понял, какой баг.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Добрый день! &lt;br /&gt;&lt;br /&gt;Баг ли, не могу утверждать но проблема есть.&lt;br /&gt;Тестирую робота на &amp;quot;Quik-Junior&amp;quot;, StockSharp v4.1.2. В результате долгих и мучительных опытов выяснилось что, на рабочем &amp;quot;Quik&amp;quot; данные склеиваются, а при работе с  &amp;quot;Quik-Junior&amp;quot; нет. Возможно это связанно с разными Id Ц.Б. Так для &amp;quot;Quik&amp;quot; Id=&amp;quot;SBER@EQBR&amp;quot; (&lt;em&gt;в соответствии со спецификацией контракта&lt;/em&gt;), а для &amp;quot;Quik-Junior&amp;quot; Id=&amp;quot;SBER@QJSIM&amp;quot;. &lt;br /&gt;&lt;br /&gt;С уважением Gii</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20634/</id>
    <title type="text">Подключал сегодня (17.07) робота, берёт данные из хранилища за понедельник, DDE за вторник, всё норм...</title>
    <published>2012-08-03T17:10:16Z</published>
    <updated>2012-08-03T17:10:16Z</updated>
    <author>
      <name>Gii</name>
      <uri>https://stocksharp.com/users/5912/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;alexry &lt;a href="https://stocksharp.com/posts/m/20414/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Подключал сегодня (17.07) робота, берёт данные из хранилища за понедельник, DDE за вторник, всё нормально работает.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Добрый день! Столкнулся с такой же проблемой по склеиванию исторических и реальных данных.&lt;br /&gt;Нашел ваш пост с примером. Запустил на выходе получил только реал данные. &lt;br /&gt;Проблемы с указанием правильного пути изначально не было&lt;br /&gt; &lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;


 private const string HistoryPath = @&amp;quot;D:\Data\&amp;quot;; // Путь к данным D:\Data\LKOH@EQBR\...

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вопрос: у вас стоит форматированный вывод времени свечки&lt;br /&gt; &lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;


_trader.AddInfoLog(string.Format(&amp;quot;||{0:T} | {1} ||&amp;quot;, _der.OpenTime,....);

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;который выводит только время без даты. Выводили ли вы свечки с датой?&lt;br /&gt;Если да (выводили с датой), то в чем магия?&lt;br /&gt;&lt;br /&gt;С уважением GII.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20418/</id>
    <title type="text">Некритично, но наверное баг. Я так и не понял, какой баг.</title>
    <published>2012-07-17T21:46:09Z</published>
    <updated>2012-07-17T21:46:09Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;alexry &lt;a href="https://stocksharp.com/posts/m/20414/" 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.com/posts/m/20414/</id>
    <title type="text">Подключал сегодня (17.07) робота, берёт данные из хранилища за понедельник, DDE за вторник, всё норм...</title>
    <published>2012-07-17T20:51:21Z</published>
    <updated>2012-07-17T20:51:21Z</updated>
    <author>
      <name>alexry</name>
      <uri>https://stocksharp.com/users/6118/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Подключал сегодня (17.07) робота, берёт данные из хранилища за понедельник, DDE за вторник, всё нормально работает.&lt;br /&gt;Если закачивать данные (из хранилища) с пятницы, то при переходе на данные (из хранилища) за понедельник&lt;br /&gt;программа стопорится, и выдаёт исключения подобные вышенаписанным. Некритично, но наверное баг.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20375/</id>
    <title type="text">Код с скользящей средней. using System; using System.Threading; using System.Linq; using System.Text...</title>
    <published>2012-07-16T13:31:53Z</published>
    <updated>2012-07-16T13:31:53Z</updated>
    <author>
      <name>alexry</name>
      <uri>https://stocksharp.com/users/6118/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Код с скользящей средней.&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

using System;
using System.Threading;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Forms;
using System.ComponentModel;
using System.Configuration;
using Ecng.Common;
using Ecng.Xaml;
using Ecng.ComponentModel;
using StockSharp.BusinessEntities;
using StockSharp.Quik;
using StockSharp.Algo.Candles;
using StockSharp.Algo.Candles.Compression;
using StockSharp.Algo.Storages;
using StockSharp.Xaml;
using StockSharp.Algo.Logging;
using MessageBox = System.Windows.MessageBox;

namespace Candles
{
    public partial class MainWindow
    {
        QuikTrader _trader;

        private Security _instr1;
        const string _secCode1 = &amp;quot;RIU2&amp;quot;;

        private CandleManager _candleManager;
        private CandleSeries _series;

        readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(1);
        readonly DateTime _startTime = new DateTime(2012, 7, 13);
        readonly DateTime _endTime = DateTime.MaxValue;

        private const string _historyPath = @&amp;quot;c:\GidraR\&amp;quot;;

        private readonly LogManager _logManager;

        public int i = 0;
        public int k;

        public decimal MA;
        public int perMA = 21;
        public int smeMA = 0;
        public decimal sumMA = 0;

        public Candle der = null;

        public MainWindow()
        {
            InitializeComponent();
            Path.Text = &amp;quot;c:\\Program Files\\QUIK\\QUIK&amp;quot;;

            _logManager = new LogManager();
            _logManager.Listeners.Add(new GuiLogListener(logcontrol));
        }


        private void FindPath_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new FolderBrowserDialog();

            if (!Path.Text.IsEmpty())
                dlg.SelectedPath = Path.Text;

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Path.Text = dlg.SelectedPath;
            }
        }

        bool _isConnected;

        private void btnConnect_Click(object sender, RoutedEventArgs e)
        {
            if (!_isConnected)
            {
                if (Path.Text.IsEmpty())
                    MessageBox.Show(this, &amp;quot;Путь к Quik не выбран&amp;quot;);
                else
                {
                    if (_trader == null)
                    {
                        _trader = new QuikTrader(Path.Text);
                        _logManager.Sources.Add(_trader);
                        _trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
                        _trader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;
                        _trader.ReConnectionSettings.ConnectionRestored += () =&amp;gt; this.GuiAsync(() =&amp;gt; MessageBox.Show(this, &amp;quot;Соединение восстановлено&amp;quot;));
                        _trader.MarketTimeOffset = TimeSpan.FromHours(0);

                        _isConnected = true;

                        btnExportDde.IsEnabled = true;

                        _trader.NewSecurities += securities =&amp;gt;
                        {
                            if (_instr1 == null)
                            {
                                _instr1 = securities.FirstOrDefault(sec =&amp;gt; sec.Code == _secCode1);
                            }
                        };

                        _candleManager = new CandleManager(_trader);

                        var storageRegistry = new StorageRegistry();
                        ((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = _historyPath;
                        var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storageRegistry };
                        _candleManager.Sources.OfType&amp;lt;TimeFrameCandleBuilder&amp;gt;().Single().Sources.Add(cbs);

                        _candleManager.Processing += StopVisor;
                    }

                    _trader.Connect();

                    _isConnected = true;
                    btnConnect.Content = &amp;quot;Отключиться&amp;quot;;
                }
            }

            else
            {
                _trader.Disconnect();

                _isConnected = false;
                btnConnect.Content = &amp;quot;Подключиться&amp;quot;;
            }
        }

        private void btnStart_Click(object sender, RoutedEventArgs e)
        {
            _trader.AddInfoLog(&amp;quot;Запуск получения свечек&amp;quot;);

            _series = new CandleSeries(typeof(TimeFrameCandle), _instr1, _timeFrame);

            _candleManager.Start(_series, _startTime, _endTime);

        }

        private void StopVisor(CandleSeries series, Candle candle)
        {
            if (candle.State == CandleStates.Finished)
            {
                der = _series.GetCandle&amp;lt;TimeFrameCandle&amp;gt;(0);
                _trader.AddInfoLog(string.Format(&amp;quot;|{0:T}|{1}|{2}|{3}|{4}|&amp;quot;, der.CloseTime, der.OpenPrice, der.HighPrice, der.LowPrice, der.ClosePrice));
                DrawMA();
                i++;
            }
        }

        private void DrawMA()
        {
            if (i &amp;gt;= perMA + smeMA)
            {
                if (sumMA &amp;gt; 0)
                    sumMA = sumMA - _series.GetCandle&amp;lt;TimeFrameCandle&amp;gt;(perMA + smeMA).ClosePrice + _series.GetCandle&amp;lt;TimeFrameCandle&amp;gt;(smeMA).ClosePrice;
                else
                {
                    for (k = 0; k &amp;lt; perMA; k++)
                        sumMA = sumMA + _series.GetCandle&amp;lt;TimeFrameCandle&amp;gt;(k + smeMA).ClosePrice;
                }

                MA = sumMA / perMA;

                _trader.AddInfoLog(&amp;quot;--------------------[{0:T}]--------------------------------Машка простая------------------[{1:F}]-----------------------&amp;quot;, _series.GetCandle&amp;lt;TimeFrameCandle&amp;gt;(0).CloseTime, MA);
            }
        }

        private void Window_Closing(object sender, CancelEventArgs e)
        {
            if (_trader != null)
            {
                if (_isDdeStarted) StopDde();
                _trader.Dispose();
            }
        }

        private void btnExportDde_Click(object sender, RoutedEventArgs e)
        {
            if (_isDdeStarted) StopDde();
            else StartDde();
        }

        bool _isDdeStarted;

        private void StartDde()
        {
            _trader.StartExport();
            _isDdeStarted = true;
        }

        private void StopDde()
        {
            _trader.StopExport();
            _isDdeStarted = false;
        }
    }
}&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.com/posts/m/20374/</id>
    <title type="text">Добрый день, коллеги. Хочу ещё раз обратиться к Вам в этой теме. Добавил к вышенаписанному коду небо...</title>
    <published>2012-07-16T13:29:11Z</published>
    <updated>2012-07-16T13:29:11Z</updated>
    <author>
      <name>alexry</name>
      <uri>https://stocksharp.com/users/6118/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день, коллеги.&lt;br /&gt;Хочу ещё раз обратиться к Вам в этой теме.&lt;br /&gt;Добавил к вышенаписанному коду небольшой фрагмент рассчитывающий простую скользящую среднюю.&lt;br /&gt;Запускал в пятницу - подкачивает данные за четверг из хранилища, строит среднюю, далее&lt;br /&gt;за пятницу по DDE, строит среднюю. Вообщем всё нормально.&lt;br /&gt;Включаю сегодня - за пятницу подгружает, строит, доходит до понедельника - выдаёт ошибку.&lt;br /&gt;Причём первую свечу понедельника выдаёт, остальные нет.&lt;br /&gt;Если запускать без кода DrawMA(), то считывает свечи за пятницу - понедельник без ошибок.&lt;br /&gt;Думаю, что связанно с методом GetCandle(), именно при считывании данных из хранилища за пятницу, и дальнейшем&lt;br /&gt;получении данных по DDE в понедельник, т. к. на неделе таких проблем не было.&lt;br /&gt;Подскажите, пожалуйста, как это обойти?&lt;br /&gt;Заранее благодарен.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Запись в логе (читать снизу вверх):&lt;br /&gt;&lt;br /&gt;QuikTrader      | 16.07.2012 17:13:00.222 | Ошибка     | System.InvalidOperationException: Невозможно изменить сформированную свечку.&lt;br /&gt;   в StockSharp.Algo.Candles.Candle.ThrowIfFinished()&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.UpdateCandle(CandleSeries series, TCandle candle, ICandleBuilderSourceValue value)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.ProcessValue(CandleSeries series, Candle currentCandle, ICandleBuilderSourceValue value)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.OnNewValues(CandleSeries series, IEnumerable`1 values)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.#=qqLF1yNlv8Y1iCs8201gCqwEWTHqUPr6NOKAboLZN3gc=.#=qZIvlEwumCnLOHChv0nHsiIC6spSmAHgVPmGRzuP_IIc=.#=qBVkmf24yUdAZHbJqngg1CQ==(IEnumerable`1 #=q$BtNO0P60jQ3eV3pl_YPCg==)&lt;br /&gt;   в #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=qpGEJppfTuh976_eXaWWyCQ==(CandleSeries #=qMUF6L0p0ecEtl0dZ4hBlLA==, #=qMKTRehQ7dpA7THrX$XNB8Q== #=qapfwAKc25gG2P8E_kCD3Fw==)&lt;br /&gt;   в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.BaseCandleBuilderSource.RaiseProcessing(CandleSeries series, IEnumerable`1 values)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.RealTimeCandleBuilderSource`1.AddNewValues(IEnumerable`1 values)&lt;br /&gt;   в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)&lt;br /&gt;   в Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:57.569 | Ошибка     | System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.&lt;br /&gt;   в Candles.MainWindow.DrawMA() в C:\Users\Пользователь\Documents\Visual Studio 2010\Projects\WpfApplication2\WpfApplication2\MainWindow.xaml.cs:строка 159&lt;br /&gt;   в Candles.MainWindow.StopVisor(CandleSeries series, Candle candle) в C:\Users\Пользователь\Documents\Visual Studio 2010\Projects\WpfApplication2\WpfApplication2\MainWindow.xaml.cs:строка 149&lt;br /&gt;   в System.Action`2.Invoke(T1 arg1, T2 arg2)&lt;br /&gt;   в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2)&lt;br /&gt;   в StockSharp.Algo.Candles.CandleManager.#=qJpMNGLwhBTGBC$zwZBAVKCh1tijPGRG_4RZ133Gut8I=.#=qGRBYJzrsOyd6PdZzWo7fFA==(Candle #=qEZYmvgjYlc$afCY9fBg04w==)&lt;br /&gt;   в #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=qpGEJppfTuh976_eXaWWyCQ==(CandleSeries #=qMUF6L0p0ecEtl0dZ4hBlLA==, #=qMKTRehQ7dpA7THrX$XNB8Q== #=qapfwAKc25gG2P8E_kCD3Fw==)&lt;br /&gt;   в System.Action`2.Invoke(T1 arg1, T2 arg2)&lt;br /&gt;   в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.RaiseProcessing(CandleSeries series, Candle candle)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.OnNewValues(CandleSeries series, IEnumerable`1 values)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.#=qqLF1yNlv8Y1iCs8201gCqwEWTHqUPr6NOKAboLZN3gc=.#=qZIvlEwumCnLOHChv0nHsiIC6spSmAHgVPmGRzuP_IIc=.#=qBVkmf24yUdAZHbJqngg1CQ==(IEnumerable`1 #=q$BtNO0P60jQ3eV3pl_YPCg==)&lt;br /&gt;   в #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=qpGEJppfTuh976_eXaWWyCQ==(CandleSeries #=qMUF6L0p0ecEtl0dZ4hBlLA==, #=qMKTRehQ7dpA7THrX$XNB8Q== #=qapfwAKc25gG2P8E_kCD3Fw==)&lt;br /&gt;   в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.BaseCandleBuilderSource.RaiseProcessing(CandleSeries series, IEnumerable`1 values)&lt;br /&gt;   в StockSharp.Algo.Candles.Compression.RealTimeCandleBuilderSource`1.AddNewValues(IEnumerable`1 values)&lt;br /&gt;   в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)&lt;br /&gt;   в Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:57.560 |            | |10:01:00|136460|136460|135915|136135|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:57.461 |            | --------------------[23:50:00]--------------------------------Машка простая------------------[136431,19]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:57.461 |            | |23:50:00|136495,00000|136525,00000|136435,00000|136475,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:55.023 |            | --------------------[23:49:00]--------------------------------Машка простая------------------[136430,24]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:55.023 |            | |23:49:00|136525,00000|136530,00000|136470,00000|136500,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:55.011 |            | --------------------[23:48:00]--------------------------------Машка простая------------------[136427,62]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:55.011 |            | |23:48:00|136440,00000|136530,00000|136430,00000|136530,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.990 |            | --------------------[23:47:00]--------------------------------Машка простая------------------[136422,62]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.990 |            | |23:47:00|136500,00000|136510,00000|136440,00000|136445,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.984 |            | --------------------[23:46:00]--------------------------------Машка простая------------------[136425,00]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.984 |            | |23:46:00|136535,00000|136540,00000|136450,00000|136510,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.963 |            | --------------------[23:45:00]--------------------------------Машка простая------------------[136423,57]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.963 |            | |23:45:00|136520,00000|136550,00000|136500,00000|136535,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.951 |            | --------------------[23:44:00]--------------------------------Машка простая------------------[136419,52]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.951 |            | |23:44:00|136490,00000|136540,00000|136485,00000|136525,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.938 |            | --------------------[23:43:00]--------------------------------Машка простая------------------[136415,71]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.938 |            | |23:43:00|136465,00000|136515,00000|136460,00000|136490,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.919 |            | --------------------[23:42:00]--------------------------------Машка простая------------------[136413,33]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.919 |            | |23:42:00|136410,00000|136490,00000|136400,00000|136480,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.911 |            | --------------------[23:41:00]--------------------------------Машка простая------------------[136411,90]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.911 |            | |23:41:00|136430,00000|136445,00000|136405,00000|136410,00000|&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.906 |            | --------------------[23:40:00]--------------------------------Машка простая------------------[136412,86]-----------------------&lt;br /&gt;QuikTrader      | 16.07.2012 17:12:54.906 |            | |23:40:00|136400,00000|136460,00000|136400,00000|136430,00000|&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.com/posts/m/20330/</id>
    <title type="text">Moadip, спасибо за замечание. Изначально там и был код, но в процессе проб, перенёс. Сейчас вернул о...</title>
    <published>2012-07-12T13:19:56Z</published>
    <updated>2012-07-12T13:19:56Z</updated>
    <author>
      <name>alexry</name>
      <uri>https://stocksharp.com/users/6118/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Moadip, спасибо за замечание. Изначально там и был код, но в процессе проб, перенёс. Сейчас вернул обратно.&lt;br /&gt;Кстати давно хотел сказать Вам спасибо за скелет робота. Ваши посты содержательны.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20329/</id>
    <title type="text">Esper, так и есть. Поставил путь с:\GidraR\ и всё заработало. Понятно теперь, что storageRegistry ви...</title>
    <published>2012-07-12T13:09:01Z</published>
    <updated>2012-07-12T13:09:01Z</updated>
    <author>
      <name>alexry</name>
      <uri>https://stocksharp.com/users/6118/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Esper, так и есть. Поставил путь с:\GidraR\ и всё заработало. Понятно теперь, что storageRegistry видит пути, созданные Гидрой (я пытался указать явно). Благодарю.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20328/</id>
    <title type="text">Добавление источников надо перенести в обработчик нажатия кнопки &amp;quot;Подключиться&amp;quot;. Допустим так: priva...</title>
    <published>2012-07-12T12:57:47Z</published>
    <updated>2012-07-12T12:57:47Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.com/users/5973/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добавление источников надо перенести в обработчик нажатия кнопки &amp;quot;Подключиться&amp;quot;. Допустим так:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_59769d2619294e74947e21fc5d7af2b0');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_59769d2619294e74947e21fc5d7af2b0' style='display:none'&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

private void btnConnect_Click(object sender, RoutedEventArgs e)
        {
            if (!_isConnected)
            {
                if (Path.Text.IsEmpty())
                    MessageBox.Show(this, &amp;quot;Путь к Quik не выбран&amp;quot;);
                else
                {
                    if (_trader == null)
                    {
                        _trader = new QuikTrader(Path.Text);
                        _logManager.Sources.Add(_trader);
                        _trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
                        _trader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;
                        _trader.ReConnectionSettings.ConnectionRestored += () =&amp;gt; this.GuiAsync(() =&amp;gt; MessageBox.Show(this, &amp;quot;Соединение восстановлено&amp;quot;));
                        _trader.MarketTimeOffset = TimeSpan.FromHours(0);

                        _isConnected = true;

                        btnExportDde.IsEnabled = true;

                        _trader.NewSecurities += securities =&amp;gt;
                        {
                            if (_instr1 == null)
                            {
                                _instr1 = securities.FirstOrDefault(sec =&amp;gt; sec.Code == _secCode1);
                            }
                        };
                        // Создание CandleManager и добавление источников
                        _candleManager = new CandleManager(_trader);

                        var storageRegistry = new StorageRegistry();
                        ((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = _historyPath;
                        var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storageRegistry };
                        _candleManager.Sources.OfType&amp;lt;TimeFrameCandleBuilder&amp;gt;().Single().Sources.Add(cbs);
                    }

                    _trader.Connect();

                    _isConnected = true;
                    btnConnect.Content = &amp;quot;Отключиться&amp;quot;;
                }
            }

            else
            {
                _trader.Disconnect();

                _isConnected = false;
                btnConnect.Content = &amp;quot;Подключиться&amp;quot;;
            }
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20327/</id>
    <title type="text">Еще один нюанс. Добавление источников должно проходить ДО запуска экспорта, иначе будут пропуски тик...</title>
    <published>2012-07-12T12:54:50Z</published>
    <updated>2012-07-12T12:56:32Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.com/users/5973/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Еще один нюанс. Добавление источников должно проходить &lt;b&gt;ДО&lt;/b&gt; запуска экспорта, иначе будут пропуски тиков.&lt;br /&gt;&lt;br /&gt;У вас добавление источника Trader, при создании экземпляра класса CandleManager. И добавление в качестве источника файлов гидры&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

_candleManager = new CandleManager(_trader);

var storageRegistry = new StorageRegistry();
            ((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = _historyPath;
            var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storageRegistry };
            _candleManager.Sources.OfType&amp;lt;TimeFrameCandleBuilder&amp;gt;().Single().Sources.Add(cbs);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Происходит в обработчике нажатия на кнопку &amp;quot;Старт&amp;quot;, которая я так понимаю нажимается после того как нажата кнопка &amp;quot;Экспорт DDE&amp;quot;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20323/</id>
    <title type="text">Путь к тикам неверный, не должно там быть RIU2@RTS\2012_07_11</title>
    <published>2012-07-12T12:26:18Z</published>
    <updated>2012-07-12T12:26:18Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Путь к тикам неверный, не должно там быть RIU2@RTS\2012_07_11</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20322/</id>
    <title type="text">Код XAML. </title>
    <published>2012-07-12T12:21:30Z</published>
    <updated>2012-07-12T12:21:30Z</updated>
    <author>
      <name>alexry</name>
      <uri>https://stocksharp.com/users/6118/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Код XAML.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
&amp;lt;Window x:Class=&amp;quot;Candles.MainWindow&amp;quot;
        xmlns=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;
        xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;
        xmlns:EcngTradingXaml=&amp;quot;clr-namespace:StockSharp.Xaml;assembly=StockSharp.Xaml&amp;quot;
        Title=&amp;quot;&amp;quot; Height=&amp;quot;673&amp;quot; Width=&amp;quot;835&amp;quot; Closing=&amp;quot;Window_Closing&amp;quot; Topmost=&amp;quot;True&amp;quot; WindowStartupLocation=&amp;quot;CenterScreen&amp;quot; Opacity=&amp;quot;50&amp;quot;&amp;gt;
    &amp;lt;Grid Background=&amp;quot;#FF9999C7&amp;quot; HorizontalAlignment=&amp;quot;Stretch&amp;quot; Width=&amp;quot;Auto&amp;quot; VerticalAlignment=&amp;quot;Stretch&amp;quot; Height=&amp;quot;Auto&amp;quot;&amp;gt;
        &amp;lt;Grid  HorizontalAlignment=&amp;quot;Left&amp;quot; Name=&amp;quot;grid1&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Margin=&amp;quot;12,12,0,0&amp;quot;&amp;gt;
            &amp;lt;Grid.ColumnDefinitions&amp;gt;
                &amp;lt;ColumnDefinition Width=&amp;quot;Auto&amp;quot; /&amp;gt;
                &amp;lt;ColumnDefinition Width=&amp;quot;Auto&amp;quot; /&amp;gt;
                &amp;lt;ColumnDefinition Width=&amp;quot;72&amp;quot; /&amp;gt;
                &amp;lt;ColumnDefinition Width=&amp;quot;Auto&amp;quot; /&amp;gt;
            &amp;lt;/Grid.ColumnDefinitions&amp;gt;
            &amp;lt;Grid.RowDefinitions&amp;gt;
                &amp;lt;RowDefinition Height=&amp;quot;Auto&amp;quot; /&amp;gt;
                &amp;lt;RowDefinition Height=&amp;quot;Auto&amp;quot; /&amp;gt;
            &amp;lt;/Grid.RowDefinitions&amp;gt;
            &amp;lt;Button Content=&amp;quot;Подключиться&amp;quot; Height=&amp;quot;23&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Name=&amp;quot;btnConnect&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;100&amp;quot; Click=&amp;quot;btnConnect_Click&amp;quot; Grid.Row=&amp;quot;1&amp;quot; Margin=&amp;quot;-2,7,0,0&amp;quot; BorderBrush=&amp;quot;#FF791900&amp;quot; /&amp;gt;
            &amp;lt;Button Content=&amp;quot;Экспорт DDE&amp;quot; Height=&amp;quot;23&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Name=&amp;quot;btnExportDde&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;100&amp;quot; Click=&amp;quot;btnExportDde_Click&amp;quot; IsEnabled=&amp;quot;False&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Grid.Row=&amp;quot;1&amp;quot; Margin=&amp;quot;0,7,0,0&amp;quot; BorderBrush=&amp;quot;#FF791950&amp;quot; /&amp;gt;
            &amp;lt;Button Content=&amp;quot;Старт&amp;quot; Height=&amp;quot;23&amp;quot; Name=&amp;quot;btnStart&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Click=&amp;quot;btnStart_Click&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Width=&amp;quot;100&amp;quot; Grid.Column=&amp;quot;2&amp;quot; Grid.ColumnSpan=&amp;quot;2&amp;quot; Grid.Row=&amp;quot;1&amp;quot; Margin=&amp;quot;0,7,0,0&amp;quot; BorderBrush=&amp;quot;#FF791919&amp;quot; /&amp;gt;
            &amp;lt;TextBox Height=&amp;quot;23&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Name=&amp;quot;Path&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;272&amp;quot; Grid.ColumnSpan=&amp;quot;3&amp;quot; Background=&amp;quot;#FF40A8C7&amp;quot; BorderBrush=&amp;quot;#FF79190C&amp;quot; /&amp;gt;
            &amp;lt;Button Content=&amp;quot;...&amp;quot; Name=&amp;quot;FindPath&amp;quot; Click=&amp;quot;FindPath_Click&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Width=&amp;quot;22&amp;quot; Height=&amp;quot;23&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Grid.Column=&amp;quot;3&amp;quot; DataContext=&amp;quot;{Binding}&amp;quot; Visibility=&amp;quot;Visible&amp;quot; Background=&amp;quot;#FF3BA1B7&amp;quot; BorderBrush=&amp;quot;#FF791952&amp;quot; Margin=&amp;quot;2,0,0,0&amp;quot; /&amp;gt;
        &amp;lt;/Grid&amp;gt;
        &amp;lt;EcngTradingXaml:LogControl Margin=&amp;quot;12,128,10,12&amp;quot; Name=&amp;quot;logcontrol&amp;quot; Visibility=&amp;quot;Visible&amp;quot; Foreground=&amp;quot;#FF404080&amp;quot; Background=&amp;quot;#FF09090D&amp;quot; BorderBrush=&amp;quot;#FF791927&amp;quot; DataContext=&amp;quot;{Binding}&amp;quot; /&amp;gt;
    &amp;lt;/Grid&amp;gt;
&amp;lt;/Window&amp;gt;&lt;/pre&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.com/posts/m/20321/</id>
    <title type="text">Добрый день, коллеги. Пытаюсь склеить вчерашние сохранённые Гидрой данные (полный путь - c:\GidraR\R...</title>
    <published>2012-07-12T12:04:18Z</published>
    <updated>2012-07-12T12:04:18Z</updated>
    <author>
      <name>alexry</name>
      <uri>https://stocksharp.com/users/6118/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день, коллеги.&lt;br /&gt;Пытаюсь склеить вчерашние сохранённые Гидрой данные (полный путь - c:\GidraR\RIU2@RTS\2012_07_11\trades.bin). После подключения и запуска DDE создаётся CandleManager и дальше как в документации по склейке свечек. В лог выводит свечи с начала текущего дня, за вчера не выводит. Подскажите пожалуйста, в чём может быть проблема? Прилагаю код.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
using System;
using System.Threading;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Forms;
using System.ComponentModel;
using System.Configuration;
using Ecng.Common;
using Ecng.Xaml;
using Ecng.ComponentModel;
using StockSharp.BusinessEntities;
using StockSharp.Quik;
using StockSharp.Algo.Candles;
using StockSharp.Algo.Candles.Compression;
using StockSharp.Algo.Storages;
using StockSharp.Xaml;
using StockSharp.Algo.Logging;
using MessageBox = System.Windows.MessageBox;

namespace Candles
{
    public partial class MainWindow
    {
        QuikTrader _trader;

        private Security _instr1;
        const string _secCode1 = &amp;quot;RIU2&amp;quot;;

        private CandleManager _candleManager;
        private CandleSeries _series;

        readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(1);
        readonly DateTime _startTime = new DateTime(2012, 7, 11);
        readonly DateTime _endTime = DateTime.MaxValue;

        private const string _historyPath = @&amp;quot;c:\GidraR\RIU2@RTS\2012_07_11&amp;quot;;

        private readonly LogManager _logManager;

        public Candle der = null;

        public MainWindow()
        {
            InitializeComponent();
            Path.Text = &amp;quot;c:\\Program Files\\QUIK\\QUIK&amp;quot;;

            _logManager = new LogManager();
            _logManager.Listeners.Add(new GuiLogListener(logcontrol));
        }


        private void FindPath_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new FolderBrowserDialog();

            if (!Path.Text.IsEmpty())
                dlg.SelectedPath = Path.Text;

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Path.Text = dlg.SelectedPath;
            }
        }

        bool _isConnected;

        private void btnConnect_Click(object sender, RoutedEventArgs e)
        {
            if (!_isConnected)
            {
                if (Path.Text.IsEmpty())
                    MessageBox.Show(this, &amp;quot;Путь к Quik не выбран&amp;quot;);
                else
                {
                    if (_trader == null)
                    {
                        _trader = new QuikTrader(Path.Text);
                        _logManager.Sources.Add(_trader);
                        _trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
                        _trader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;
                        _trader.ReConnectionSettings.ConnectionRestored += () =&amp;gt; this.GuiAsync(() =&amp;gt; MessageBox.Show(this, &amp;quot;Соединение восстановлено&amp;quot;));
                        _trader.MarketTimeOffset = TimeSpan.FromHours(0);

                        _isConnected = true;

                        btnExportDde.IsEnabled = true;

                        _trader.NewSecurities += securities =&amp;gt;
                        {
                            if (_instr1 == null)
                            {
                                _instr1 = securities.FirstOrDefault(sec =&amp;gt; sec.Code == _secCode1);
                            }
                        };
                    }

                    _trader.Connect();

                    _isConnected = true;
                    btnConnect.Content = &amp;quot;Отключиться&amp;quot;;
                }
            }

            else
            {
                _trader.Disconnect();

                _isConnected = false;
                btnConnect.Content = &amp;quot;Подключиться&amp;quot;;
            }
        }

        private void btnStart_Click(object sender, RoutedEventArgs e)
        {
            _trader.AddInfoLog(&amp;quot;Запуск получения свечек&amp;quot;);

            _candleManager = new CandleManager(_trader);

            var storageRegistry = new StorageRegistry();
            ((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = _historyPath;
            var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storageRegistry };
            _candleManager.Sources.OfType&amp;lt;TimeFrameCandleBuilder&amp;gt;().Single().Sources.Add(cbs);

            _candleManager.Processing += StopVisor;

            _series = new CandleSeries(typeof(TimeFrameCandle), _instr1, _timeFrame);

            _candleManager.Start(_series, _startTime, _endTime);

        }

        private void StopVisor(CandleSeries series, Candle candle)
        {
            if (candle.State == CandleStates.Finished)
            {
                der = _series.GetCandle&amp;lt;TimeFrameCandle&amp;gt;(0);
                _trader.AddInfoLog(string.Format(&amp;quot;|{0:T}|{1}|{2}|{3}|{4}|&amp;quot;, der.CloseTime, der.OpenPrice, der.HighPrice, der.LowPrice, der.ClosePrice));
            }
        }

        private void Window_Closing(object sender, CancelEventArgs e)
        {
            if (_trader != null)
            {
                if (_isDdeStarted) StopDde();
                _trader.Dispose();
            }
        }

        private void btnExportDde_Click(object sender, RoutedEventArgs e)
        {
            if (_isDdeStarted) StopDde();
            else StartDde();
        }

        bool _isDdeStarted;

        private void StartDde()
        {
            _trader.StartExport();
            _isDdeStarted = true;
        }

        private void StopDde()
        {
            _trader.StopExport();
            _isDdeStarted = false;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>