﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">склейка данные гидры + реал-тайм</title>
  <id>~/topic/2861/skleika-dannye-gidry--real-taim/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-10T23:41:00Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2861" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/20661/</id>
    <title type="text">Mikhail Sukhov: Я так и не понял, какой баг. Добрый день! Баг ли, не могу утверждать но проблема ест...</title>
    <published>2012-08-05T10:18:50Z</published>
    <updated>2012-08-05T10:18:50Z</updated>
    <author>
      <name>Gii</name>
      <uri>https://stocksharp.ru/users/5912/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(20418)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Я так и не понял, какой баг.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Добрый день!&lt;/p&gt;
&lt;p&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;/p&gt;
&lt;p&gt;С уважением Gii&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/20634/</id>
    <title type="text">alexry: Подключал сегодня (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.ru/users/5912/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(20414)" rel="nofollow" target="_blank"&gt;alexry&lt;/a&gt;:&lt;/strong&gt;
Подключал сегодня (17.07) робота, берёт данные из хранилища за понедельник, DDE за вторник, всё нормально работает.
Добрый день! Столкнулся с такой же проблемой по склеиванию исторических и реальных данных.
Нашел ваш пост с примером. Запустил на выходе получил только реал данные.
Проблемы с указанием правильного пути изначально не было&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;

private const string HistoryPath = @&amp;quot;D:\Data\&amp;quot;; // Путь к данным D:\Data\LKOH@EQBR\...


&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Вопрос: у вас стоит форматированный вывод времени свечки&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;

_trader.AddInfoLog(string.Format(&amp;quot;||{0:T} | {1} ||&amp;quot;, _der.OpenTime,....);


&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;который выводит только время без даты. Выводили ли вы свечки с датой?
Если да (выводили с датой), то в чем магия?&lt;/p&gt;
&lt;p&gt;С уважением GII.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/20418/</id>
    <title type="text">alexry: Некритично, но наверное баг. Я так и не понял, какой баг. </title>
    <published>2012-07-17T21:46:09Z</published>
    <updated>2012-07-17T21:46:09Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(20414)" rel="nofollow" target="_blank"&gt;alexry&lt;/a&gt;:&lt;/strong&gt;
Некритично, но наверное баг.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Я так и не понял, какой баг.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Подключал сегодня (17.07) робота, берёт данные из хранилища за понедельник, DDE за вторник, всё нормально работает.
Если закачивать данные (из хранилища) с пятницы, то при переходе на данные (из хранилища) за понедельник
программа стопорится, и выдаёт исключения подобные вышенаписанным. Некритично, но наверное баг.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Код с скользящей средней.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день, коллеги.
Хочу ещё раз обратиться к Вам в этой теме.
Добавил к вышенаписанному коду небольшой фрагмент рассчитывающий простую скользящую среднюю.
Запускал в пятницу - подкачивает данные за четверг из хранилища, строит среднюю, далее
за пятницу по DDE, строит среднюю. Вообщем всё нормально.
Включаю сегодня - за пятницу подгружает, строит, доходит до понедельника - выдаёт ошибку.
Причём первую свечу понедельника выдаёт, остальные нет.
Если запускать без кода DrawMA(), то считывает свечи за пятницу - понедельник без ошибок.
Думаю, что связанно с методом GetCandle(), именно при считывании данных из хранилища за пятницу, и дальнейшем
получении данных по DDE в понедельник, т. к. на неделе таких проблем не было.
Подскажите, пожалуйста, как это обойти?
Заранее благодарен.&lt;/p&gt;
&lt;p&gt;Запись в логе (читать снизу вверх):&lt;/p&gt;
&lt;p&gt;QuikTrader      | 16.07.2012 17:13:00.222 | Ошибка     | System.InvalidOperationException: Невозможно изменить сформированную свечку.
в StockSharp.Algo.Candles.Candle.ThrowIfFinished()
в StockSharp.Algo.Candles.Compression.CandleBuilder&lt;code&gt;1.UpdateCandle(CandleSeries series, TCandle candle, ICandleBuilderSourceValue value) в StockSharp.Algo.Candles.Compression.CandleBuilder&lt;/code&gt;1.ProcessValue(CandleSeries series, Candle currentCandle, ICandleBuilderSourceValue value)
в StockSharp.Algo.Candles.Compression.CandleBuilder&lt;code&gt;1.OnNewValues(CandleSeries series, IEnumerable&lt;/code&gt;1 values)
в StockSharp.Algo.Candles.Compression.CandleBuilder&lt;code&gt;1.#=qqLF1yNlv8Y1iCs8201gCqwEWTHqUPr6NOKAboLZN3gc=.#=qZIvlEwumCnLOHChv0nHsiIC6spSmAHgVPmGRzuP_IIc=.#=qBVkmf24yUdAZHbJqngg1CQ==(IEnumerable&lt;/code&gt;1 #=q$BtNO0P60jQ3eV3pl_YPCg==)
в #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=qpGEJppfTuh976_eXaWWyCQ==(CandleSeries #=qMUF6L0p0ecEtl0dZ4hBlLA==, #=qMKTRehQ7dpA7THrX$XNB8Q== #=qapfwAKc25gG2P8E_kCD3Fw==)
в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action&lt;code&gt;2 handler, T1 arg1, T2 arg2) в StockSharp.Algo.Candles.Compression.BaseCandleBuilderSource.RaiseProcessing(CandleSeries series, IEnumerable&lt;/code&gt;1 values)
в StockSharp.Algo.Candles.Compression.RealTimeCandleBuilderSource&lt;code&gt;1.AddNewValues(IEnumerable&lt;/code&gt;1 values)
в Ecng.Common.DelegateHelper.SafeInvoke(Action&lt;code&gt;1 handler, T arg) в Ecng.ComponentModel.EventsContainer&lt;/code&gt;1.Raise(IEnumerable`1 items)&lt;/p&gt;
&lt;p&gt;QuikTrader      | 16.07.2012 17:12:57.569 | Ошибка     | System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в Candles.MainWindow.DrawMA() в C:\Users\Пользователь\Documents\Visual Studio 2010\Projects\WpfApplication2\WpfApplication2\MainWindow.xaml.cs:строка 159
в Candles.MainWindow.StopVisor(CandleSeries series, Candle candle) в C:\Users\Пользователь\Documents\Visual Studio 2010\Projects\WpfApplication2\WpfApplication2\MainWindow.xaml.cs:строка 149
в System.Action&lt;code&gt;2.Invoke(T1 arg1, T2 arg2) в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action&lt;/code&gt;2 handler, T1 arg1, T2 arg2)
в StockSharp.Algo.Candles.CandleManager.#=qJpMNGLwhBTGBC$zwZBAVKCh1tijPGRG_4RZ133Gut8I=.#=qGRBYJzrsOyd6PdZzWo7fFA==(Candle #=qEZYmvgjYlc$afCY9fBg04w==)
в #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=qpGEJppfTuh976_eXaWWyCQ==(CandleSeries #=qMUF6L0p0ecEtl0dZ4hBlLA==, #=qMKTRehQ7dpA7THrX$XNB8Q== #=qapfwAKc25gG2P8E_kCD3Fw==)
в System.Action&lt;code&gt;2.Invoke(T1 arg1, T2 arg2) в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action&lt;/code&gt;2 handler, T1 arg1, T2 arg2)
в StockSharp.Algo.Candles.Compression.CandleBuilder&lt;code&gt;1.RaiseProcessing(CandleSeries series, Candle candle) в StockSharp.Algo.Candles.Compression.CandleBuilder&lt;/code&gt;1.OnNewValues(CandleSeries series, IEnumerable&lt;code&gt;1 values) в StockSharp.Algo.Candles.Compression.CandleBuilder&lt;/code&gt;1.#=qqLF1yNlv8Y1iCs8201gCqwEWTHqUPr6NOKAboLZN3gc=.#=qZIvlEwumCnLOHChv0nHsiIC6spSmAHgVPmGRzuP_IIc=.#=qBVkmf24yUdAZHbJqngg1CQ==(IEnumerable&lt;code&gt;1 #=q$BtNO0P60jQ3eV3pl_YPCg==) в #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=qpGEJppfTuh976_eXaWWyCQ==(CandleSeries #=qMUF6L0p0ecEtl0dZ4hBlLA==, #=qMKTRehQ7dpA7THrX$XNB8Q== #=qapfwAKc25gG2P8E_kCD3Fw==) в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action&lt;/code&gt;2 handler, T1 arg1, T2 arg2)
в StockSharp.Algo.Candles.Compression.BaseCandleBuilderSource.RaiseProcessing(CandleSeries series, IEnumerable&lt;code&gt;1 values) в StockSharp.Algo.Candles.Compression.RealTimeCandleBuilderSource&lt;/code&gt;1.AddNewValues(IEnumerable&lt;code&gt;1 values) в Ecng.Common.DelegateHelper.SafeInvoke(Action&lt;/code&gt;1 handler, T arg)
в Ecng.ComponentModel.EventsContainer&lt;code&gt;1.Raise(IEnumerable&lt;/code&gt;1 items)&lt;/p&gt;
&lt;p&gt;QuikTrader      | 16.07.2012 17:12:57.560 |            | |10:01:00|136460|136460|135915|136135|
QuikTrader      | 16.07.2012 17:12:57.461 |            | --------------------[23:50:00]--------------------------------Машка простая------------------[136431,19]-----------------------
QuikTrader      | 16.07.2012 17:12:57.461 |            | |23:50:00|136495,00000|136525,00000|136435,00000|136475,00000|
QuikTrader      | 16.07.2012 17:12:55.023 |            | --------------------[23:49:00]--------------------------------Машка простая------------------[136430,24]-----------------------
QuikTrader      | 16.07.2012 17:12:55.023 |            | |23:49:00|136525,00000|136530,00000|136470,00000|136500,00000|
QuikTrader      | 16.07.2012 17:12:55.011 |            | --------------------[23:48:00]--------------------------------Машка простая------------------[136427,62]-----------------------
QuikTrader      | 16.07.2012 17:12:55.011 |            | |23:48:00|136440,00000|136530,00000|136430,00000|136530,00000|
QuikTrader      | 16.07.2012 17:12:54.990 |            | --------------------[23:47:00]--------------------------------Машка простая------------------[136422,62]-----------------------
QuikTrader      | 16.07.2012 17:12:54.990 |            | |23:47:00|136500,00000|136510,00000|136440,00000|136445,00000|
QuikTrader      | 16.07.2012 17:12:54.984 |            | --------------------[23:46:00]--------------------------------Машка простая------------------[136425,00]-----------------------
QuikTrader      | 16.07.2012 17:12:54.984 |            | |23:46:00|136535,00000|136540,00000|136450,00000|136510,00000|
QuikTrader      | 16.07.2012 17:12:54.963 |            | --------------------[23:45:00]--------------------------------Машка простая------------------[136423,57]-----------------------
QuikTrader      | 16.07.2012 17:12:54.963 |            | |23:45:00|136520,00000|136550,00000|136500,00000|136535,00000|
QuikTrader      | 16.07.2012 17:12:54.951 |            | --------------------[23:44:00]--------------------------------Машка простая------------------[136419,52]-----------------------
QuikTrader      | 16.07.2012 17:12:54.951 |            | |23:44:00|136490,00000|136540,00000|136485,00000|136525,00000|
QuikTrader      | 16.07.2012 17:12:54.938 |            | --------------------[23:43:00]--------------------------------Машка простая------------------[136415,71]-----------------------
QuikTrader      | 16.07.2012 17:12:54.938 |            | |23:43:00|136465,00000|136515,00000|136460,00000|136490,00000|
QuikTrader      | 16.07.2012 17:12:54.919 |            | --------------------[23:42:00]--------------------------------Машка простая------------------[136413,33]-----------------------
QuikTrader      | 16.07.2012 17:12:54.919 |            | |23:42:00|136410,00000|136490,00000|136400,00000|136480,00000|
QuikTrader      | 16.07.2012 17:12:54.911 |            | --------------------[23:41:00]--------------------------------Машка простая------------------[136411,90]-----------------------
QuikTrader      | 16.07.2012 17:12:54.911 |            | |23:41:00|136430,00000|136445,00000|136405,00000|136410,00000|
QuikTrader      | 16.07.2012 17:12:54.906 |            | --------------------[23:40:00]--------------------------------Машка простая------------------[136412,86]-----------------------
QuikTrader      | 16.07.2012 17:12:54.906 |            | |23:40:00|136400,00000|136460,00000|136400,00000|136430,00000|&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Moadip, спасибо за замечание. Изначально там и был код, но в процессе проб, перенёс. Сейчас вернул обратно.
Кстати давно хотел сказать Вам спасибо за скелет робота. Ваши посты содержательны.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Esper, так и есть. Поставил путь с:\GidraR\ и всё заработало. Понятно теперь, что storageRegistry видит пути, созданные Гидрой (я пытался указать явно). Благодарю.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Добавление источников надо перенести в обработчик нажатия кнопки &amp;quot;Подключиться&amp;quot;. Допустим так:&lt;/p&gt;
&lt;div class="spoiler"&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Еще один нюанс. Добавление источников должно проходить &lt;strong&gt;ДО&lt;/strong&gt; запуска экспорта, иначе будут пропуски тиков.&lt;/p&gt;
&lt;p&gt;У вас добавление источника Trader, при создании экземпляра класса CandleManager. И добавление в качестве источника файлов гидры&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
&lt;p&gt;Происходит в обработчике нажатия на кнопку &amp;quot;Старт&amp;quot;, которая я так понимаю нажимается после того как нажата кнопка &amp;quot;Экспорт DDE&amp;quot;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Путь к тикам неверный, не должно там быть RIU2@RTS\2012_07_11&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Код XAML.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день, коллеги.
Пытаюсь склеить вчерашние сохранённые Гидрой данные (полный путь - c:\GidraR\RIU2@RTS\2012_07_11\trades.bin). После подключения и запуска DDE создаётся CandleManager и дальше как в документации по склейке свечек. В лог выводит свечи с начала текущего дня, за вчера не выводит. Подскажите пожалуйста, в чём может быть проблема? Прилагаю код.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>