﻿<?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">Сообщество. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=community&amp;page=180</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-17T20:30:11Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=community&amp;page=180" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/3189/</id>
    <title type="text">Снятие заявки</title>
    <published>2012-11-28T07:23:31Z</published>
    <updated>2012-11-28T07:23:31Z</updated>
    <author>
      <name>Eskra</name>
      <uri>https://stocksharp.ru/users/711/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">При удалении заявки, если вернулась ошибка&lt;br /&gt;2012.11.28 11:51:33.496|Error  ||Заявка 34610224 не была отменена по причине StockSharp.Plaza.PlazaException: Произошла ошибка. Код 9999, описание &amp;#39;The transaction limit for this user exceeded&amp;#39;..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;повторно удалить ее не получается:&lt;br /&gt;&lt;br /&gt;2012.11.28 11:51:36.457|       ||Удаляем заявку: 34610224/9517946585 Покупка Цена=140560 Объем=1 Сост=Active Бал=1 &lt;br /&gt;2012.11.28 11:51:36.457|Warning||Для заявки 34610224 уже был послан сигнал на отмену.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3188/</id>
    <title type="text">Стоп заявка</title>
    <published>2012-11-27T15:23:52Z</published>
    <updated>2012-11-27T15:23:52Z</updated>
    <author>
      <name>intint</name>
      <uri>https://stocksharp.ru/users/399/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Добрый день, пытаюсь использовать дочернюю стратегию для выставления стоп-лоса.&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;

        private void OnNewOrderTrades(IEnumerable&amp;lt;MyTrade&amp;gt; trades)
        {
            var protectiveStrategy = trades.Select(trade =&amp;gt;
            {
                //Определяем величину уровня стоп-лоса
                var level = trade.Order.Price - 100;

                // выставляет стоп-лосс
                var stopLossLevelUnit = new Unit(level, UnitTypes.Limit, Security);

                return new StopLossStrategy(trade, stopLossLevelUnit);
            });

            ChildStrategies.AddRange(protectiveStrategy);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Однако стоп-лосс при достижении цены не срабатывает.&lt;br /&gt;Пробовал все свойства UnitTypes, но результат - или срабатывание стопа после совершения трейда или несрабатывание вообще.&lt;br /&gt;&lt;br /&gt;Подскажите, как правильно выставить стоп для сделки к примеру на 100 пунктов ниже (для фьюча РТС)?&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3187/</id>
    <title type="text">Ошибки на Plaza 2 на просмотровом логине</title>
    <published>2012-11-27T06:33:25Z</published>
    <updated>2012-11-27T06:33:25Z</updated>
    <author>
      <name>qpile</name>
      <uri>https://stocksharp.ru/users/6397/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">Здравствуйте!&lt;br /&gt;На просмотровом логине появляется много ошибок. Так и должно быть? Так же прокачивается только несколько инструментов из ММВБ. Как исправить?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3186/</id>
    <title type="text">Закрыть все позиции с котированием</title>
    <published>2012-11-26T21:15:51Z</published>
    <updated>2012-11-26T21:15:51Z</updated>
    <author>
      <name>Algonavt</name>
      <uri>https://stocksharp.ru/users/639/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Пробую реализовывать простые сценарии на S#. Один из таких сценариев - закрытие всех позиций через стратегию котирования (какую именно - не принципиально, пусть будет LimitQuotingStrategy). По этому поводу написано нехитрое тестовое WPF приложение (текст приведен ниже).&lt;br /&gt;&lt;br /&gt;Проблема заключается в том, что если раскомментировать строки 314-326 и 329 (т.е. создание стратегии для каждого инструмента и её запуск), то в обработчике события NewMarketDepths вылетает исключение:&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;An exception of type &amp;#39;System.NullReferenceException&amp;#39; occurred in WPF stocksharp study.exe but was not handled in user code&lt;br /&gt;&lt;br /&gt;Additional information: Ссылка на объект не указывает на экземпляр объекта.&lt;br /&gt;&lt;br /&gt;If there is a handler for this exception, the program may be safely continued.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Экспериментально установил, что исключение связано с тем, что идет обращение к d.BestBid.Price (т.е. получение последней лучшей котировки).&lt;br /&gt;&lt;br /&gt;Если оставить в приведенном коде всё как есть с комментариями, то стаканы для инструментов, по которым есть открытые позиции, стартуют отлично и в текстовом поле LogWindow цена лучшего бида появляется - т.е. обработчик события NewMarketDepths не падает из-за пустого указателя.&lt;br /&gt;&lt;br /&gt;Что я делаю не так? Очевидно, я не учел какую-то очень важную особенность при работе с библиотекой. Но какую???&lt;br /&gt;&lt;br /&gt;Версия библиотеки - 4.1.6.&lt;br /&gt;&lt;br /&gt;PS: Если кто-то найдет что-либо полезное в моем примере - не возбраняется забрать на заметку с целью дальнейшего использования. :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Код MainWindow.xaml&lt;/b&gt;:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:xml"&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;Window
	x:Class=&amp;quot;WPF_stocksharp_study.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:d3=&amp;quot;http://research.microsoft.com/DynamicDataDisplay/1.0&amp;quot;
    xmlns:Xaml=&amp;quot;clr-namespace:StockSharp.Xaml;assembly=StockSharp.Xaml&amp;quot;
	Title=&amp;quot;WPF_stocksharp_study&amp;quot;
    x:Name=&amp;quot;mainWindow&amp;quot;
	ResizeMode=&amp;quot;CanMinimize&amp;quot; Width=&amp;quot;500&amp;quot; Height=&amp;quot;520&amp;quot;
&amp;gt;
    &amp;lt;StackPanel&amp;gt;
        &amp;lt;StackPanel Orientation=&amp;quot;Horizontal&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;5&amp;quot;&amp;gt;
            &amp;lt;Label Content=&amp;quot;Путь к QUIK:&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot; /&amp;gt;
            &amp;lt;TextBox Name=&amp;quot;Path&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot; Width=&amp;quot;350&amp;quot; /&amp;gt;
            &amp;lt;Button Name=&amp;quot;LocateQuikButton&amp;quot; Content=&amp;quot;...&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; VerticalAlignment=&amp;quot;Stretch&amp;quot; Width=&amp;quot;35&amp;quot; Margin=&amp;quot;10,0,10,0&amp;quot; IsEnabled=&amp;quot;True&amp;quot; Click=&amp;quot;LocateQuikButton_Click&amp;quot; IsDefault=&amp;quot;True&amp;quot; /&amp;gt;
        &amp;lt;/StackPanel&amp;gt;
        &amp;lt;StackPanel Margin=&amp;quot;5&amp;quot;&amp;gt;
            &amp;lt;StackPanel Orientation=&amp;quot;Horizontal&amp;quot;&amp;gt;
                &amp;lt;Button Name=&amp;quot;ConnectButton&amp;quot; Content=&amp;quot;Подключиться&amp;quot; Click=&amp;quot;ConnectButton_Click&amp;quot; /&amp;gt;
                &amp;lt;Button	Name=&amp;quot;StartWatchSec1Sec2Button&amp;quot; Content=&amp;quot;Включить экспорт инструментов&amp;quot; Click=&amp;quot;StartWatchSec1Sec2Button_Click&amp;quot; IsEnabled=&amp;quot;False&amp;quot; /&amp;gt;
                &amp;lt;Button Name=&amp;quot;ShowDepthsForPositionsButton&amp;quot; Content=&amp;quot;Экспорт инструментов в позициях&amp;quot; Click=&amp;quot;ShowDepthsForPositionsButton_Click&amp;quot; IsEnabled=&amp;quot;False&amp;quot; /&amp;gt;
            &amp;lt;/StackPanel&amp;gt;
            &amp;lt;StackPanel Orientation=&amp;quot;Horizontal&amp;quot;&amp;gt;

            &amp;lt;/StackPanel&amp;gt;
        &amp;lt;/StackPanel&amp;gt;
        &amp;lt;Grid Margin=&amp;quot;5&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot;&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;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;Grid.ColumnDefinitions&amp;gt;
                &amp;lt;ColumnDefinition Width=&amp;quot;Auto&amp;quot;/&amp;gt;
                &amp;lt;ColumnDefinition Width=&amp;quot;100&amp;quot;/&amp;gt;
            &amp;lt;/Grid.ColumnDefinitions&amp;gt;
            &amp;lt;Label Content=&amp;quot;Инструмент 1&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Grid.Row=&amp;quot;0&amp;quot; /&amp;gt;
            &amp;lt;Label Content=&amp;quot;Инструмент 2&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Grid.Row=&amp;quot;1&amp;quot; /&amp;gt;
            &amp;lt;ComboBox x:Name=&amp;quot;Security1List&amp;quot; SelectionChanged=&amp;quot;SecurityList_SelectionChanged&amp;quot; HorizontalAlignment=&amp;quot;Stretch&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Grid.Row=&amp;quot;0&amp;quot; IsEnabled=&amp;quot;False&amp;quot; /&amp;gt;
            &amp;lt;ComboBox x:Name=&amp;quot;Security2List&amp;quot; SelectionChanged=&amp;quot;SecurityList_SelectionChanged&amp;quot; HorizontalAlignment=&amp;quot;Stretch&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Grid.Row=&amp;quot;1&amp;quot; IsEnabled=&amp;quot;False&amp;quot; /&amp;gt;
        &amp;lt;/Grid&amp;gt;
        &amp;lt;StackPanel Orientation=&amp;quot;Vertical&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;5&amp;quot;&amp;gt;
            &amp;lt;Label Content=&amp;quot;Позиции:&amp;quot; /&amp;gt;
            &amp;lt;ListView x:Name=&amp;quot;MyPositions&amp;quot; Height=&amp;quot;150&amp;quot; ItemsSource=&amp;quot;{Binding}&amp;quot; FontSize=&amp;quot;10&amp;quot; &amp;gt;
                &amp;lt;ListView.View&amp;gt;
                    &amp;lt;GridView&amp;gt;
                        &amp;lt;GridViewColumn Width=&amp;quot;100&amp;quot; Header=&amp;quot;Счет&amp;quot; DisplayMemberBinding=&amp;quot;{Binding Path=Portfolio.Name}&amp;quot; /&amp;gt;
                        &amp;lt;GridViewColumn Width=&amp;quot;100&amp;quot; Header=&amp;quot;Инструмент&amp;quot; DisplayMemberBinding=&amp;quot;{Binding Path=Security.Code}&amp;quot; /&amp;gt;
                        &amp;lt;GridViewColumn Width=&amp;quot;100&amp;quot; Header=&amp;quot;Позиция&amp;quot; DisplayMemberBinding=&amp;quot;{Binding Path=CurrentValue}&amp;quot; /&amp;gt;
                        &amp;lt;GridViewColumn Width=&amp;quot;100&amp;quot; Header=&amp;quot;Заблокировано&amp;quot; DisplayMemberBinding=&amp;quot;{Binding Path=BlockedValue}&amp;quot; /&amp;gt;
                    &amp;lt;/GridView&amp;gt;
                &amp;lt;/ListView.View&amp;gt;
            &amp;lt;/ListView&amp;gt;
        &amp;lt;/StackPanel&amp;gt;
        &amp;lt;StackPanel&amp;gt;
            &amp;lt;TextBox x:Name=&amp;quot;LogWindow&amp;quot; IsReadOnly=&amp;quot;True&amp;quot; VerticalScrollBarVisibility=&amp;quot;Auto&amp;quot; VerticalContentAlignment=&amp;quot;Top&amp;quot; HorizontalAlignment=&amp;quot;Stretch&amp;quot; VerticalAlignment=&amp;quot;Bottom&amp;quot; Height=&amp;quot;166&amp;quot; TextWrapping=&amp;quot;Wrap&amp;quot; /&amp;gt;
        &amp;lt;/StackPanel&amp;gt;
    &amp;lt;/StackPanel&amp;gt;
&amp;lt;/Window&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Код MainWindow.xaml.cs&lt;/b&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;
using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Controls;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Ecng.Xaml;
using Ecng.ComponentModel;
using Ecng.Collections;
using Ecng.Common;
using System.Linq;
using StockSharp.Algo.Strategies;
using StockSharp.Algo;
using StockSharp.Logging;
using StockSharp.Xaml;
using StockSharp.BusinessEntities;
using StockSharp.Quik;
using MessageBox = System.Windows.MessageBox;


namespace WPF_stocksharp_study
{
    /// &amp;lt;summary&amp;gt;
    /// Interaction logic for MainWindow.xaml
    /// &amp;lt;/summary&amp;gt;
    public partial class MainWindow : Window
    {
        public QuikTrader _trader;
        public ThreadSafeObservableCollection&amp;lt;Position&amp;gt; Positions = new ThreadSafeObservableCollection&amp;lt;Position&amp;gt;();
        public static MainWindow Instance { get; private set; }

        private bool _isConnected = false, _isDdeStarted = false, _isWatchingStarted = false, _isQuotesRegistered = false, _isPositionsRegistered = false;
        private Security sec1, sec2;
        private List&amp;lt;Strategy&amp;gt; _strategies = new List&amp;lt;Strategy&amp;gt;();

        private LogManager LogManager = new LogManager();

        public MainWindow()
        {
            InitializeComponent();

            MainWindow.Instance = this;
            this.DataContext = this;

            this.Path.Text = QuikTerminal.GetDefaultPath();
            MyPositions.DataContext = Positions;

            var consoleLogListener = new ConsoleLogListener();
            this.LogManager.Listeners.Add(consoleLogListener);
        }

        #region Routines
        void StartDDE()
        {
            WriteLogMessage(&amp;quot;Запускается экспорт DDE&amp;quot;);

            _trader.StartExport(new[]
			                    {
			                    	_trader.SecuritiesTable,
			                    	_trader.EquityPositionsTable,
			                    	_trader.EquityPortfoliosTable,
                                    _trader.OrdersTable,
                                    _trader.TradesTable,
                                    _trader.MyTradesTable
			                    });

            UpdateControls();
        }

        void StopDDE()
        {
            WriteLogMessage(&amp;quot;Останавливается экспорт DDE&amp;quot;);
            _trader.StopExport();
            UpdateControls();
        }

        void StartWatch()
        {
            this._isWatchingStarted = true;

            this.sec1 = (Security)Security1List.SelectedItem;
            this.sec2 = (Security)Security2List.SelectedItem;

            if (sec1 != null)
                this._trader.RegisterMarketDepth(this.sec1);
            if (sec2 != null)
                this._trader.RegisterMarketDepth(this.sec2);
            _isQuotesRegistered = true;

            UpdateControls();
        }

        void StopWatch()
        {
            if (_isQuotesRegistered)
            {
                this._trader.UnRegisterMarketDepth(this.sec1);
                this._trader.UnRegisterMarketDepth(this.sec2);
            }

            this._isWatchingStarted = false;
            UpdateControls();
        }

        void UpdateControls()
        {
            ConnectButton.Content = (_isConnected) ? &amp;quot;Отключить&amp;quot; : &amp;quot;Подключить&amp;quot;;
            _isDdeStarted = _trader.IsExportStarted;
            StartWatchSec1Sec2Button.Content = (_isDdeStarted) ? &amp;quot;Выключить экспорт инструментов&amp;quot; : &amp;quot;Включить экспорт инструментов&amp;quot;;
            StartWatchSec1Sec2Button.IsEnabled = (Security1List.SelectedItem != null) &amp;amp;&amp;amp; (Security2List.SelectedItem != null);
            Security1List.IsEnabled = Security2List.IsEnabled = _isDdeStarted;
            ShowDepthsForPositionsButton.IsEnabled = _isPositionsRegistered;
        }


        void WriteLogMessage(string message)
        {
            var _dt = DateTime.Now;
            var str = _dt.ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.ffff - &amp;quot;) + message + &amp;quot;\n&amp;quot;;

            LogWindow.AppendText(str);
            LogWindow.ScrollToEnd();
        }

        void CalculateAndUpdateBidAsk()
        {
            // TODO: Implement CalculateAndUpdateBidAsk
        }
        #endregion

        #region Event handlers
        #region Event handlers for UI elements
        void ConnectButton_Click(object sender, RoutedEventArgs e)
        {
            if (!_isConnected)
            {
                if (this.Path.Text.IsEmpty())
                    MessageBox.Show(this, &amp;quot;Путь к Quik не выбран&amp;quot;);
                else
                {
                    WriteLogMessage(&amp;quot;Начинаем подключение!&amp;quot;);
                    if (this._trader == null)
                    {
                        this._trader = new QuikTrader(this.Path.Text);
                        this.LogManager.Sources.Add(_trader);

                        // Подписываемся на событие появления портфелей
                        this._trader.NewPortfolios += portfolios =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                                  {
                                                                                      WriteLogMessage(&amp;quot;Портфели появились!&amp;quot;);
                                                                                  });

                        this._trader.PortfoliosChanged += portfolios =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                                   {
                                                                                       WriteLogMessage(&amp;quot;Портфели изменились!&amp;quot;);
                                                                                       portfolios.ForEach(p =&amp;gt; WriteLogMessage(p.Name));
                                                                                   });

                        // Подписываемся на событие появления инструментов
                        this._trader.NewSecurities += securities =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                                  {
                                                                                      Security1List.ItemsSource = this._trader.Securities;
                                                                                      Security2List.ItemsSource = this._trader.Securities;

                                                                                      WriteLogMessage(&amp;quot;Инструменты появились!&amp;quot;);
                                                                                  });

                        this._trader.NewMarketDepths += depths =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                                {
                                                                                    depths.ForEach(d =&amp;gt;
                                                                                    {
                                                                                        WriteLogMessage(string.Format(&amp;quot;Появился стакан для инструмента {0}. Бид: {1}&amp;quot;, d.Security.Code, d.BestBid.Price));
                                                                                    });
                                                                                });

                        // Подписываемся на событие появления моих сделок
                        this._trader.NewMyTrades += myTrades =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                              {
                                                                                  foreach (var myTrade in myTrades)
                                                                                  {
                                                                                      var trade = myTrade.Trade;
                                                                                      WriteLogMessage(string.Format(&amp;quot;Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.&amp;quot;, trade.Id, trade.Price, trade.Security.Code, trade.Volume, trade.Time));
                                                                                  }
                                                                              });

                        // Подписываемся на событие подлючения
                        this._trader.Connected += () =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                      {
                                                                          _isConnected = true;
                                                                          WriteLogMessage(&amp;quot;QUIK подключен!&amp;quot;);
                                                                          StartDDE();
                                                                          UpdateControls();
                                                                      });

                        //this._trader.NewPositions += positions =&amp;gt; this.GuiAsync(() =&amp;gt;
                        //                                                {
                        //                                                    Positions.Clear();
                        //                                                    Positions.AddRange(_trader.Positions.Where(p =&amp;gt; p.CurrentValue != 0));
                        //                                                });

                        this._trader.PositionsChanged += positions =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                      {
                                                                          Positions.Clear();
                                                                          Positions.AddRange(_trader.Positions.Where(p =&amp;gt; p.CurrentValue != 0));

                                                                          if (!_isPositionsRegistered)
                                                                          {
                                                                              _isPositionsRegistered = true;
                                                                              UpdateControls();
                                                                          }
                                                                      });

                        // Подписываемся на событие отключения
                        this._trader.Disconnected += () =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                         {
                                                                             _isConnected = false;
                                                                             WriteLogMessage(&amp;quot;QUIK отключен!&amp;quot;);
                                                                             UpdateControls();
                                                                         });

                        this._trader.ConnectionError += (f) =&amp;gt; this.GuiAsync(() =&amp;gt;
                                                                        {
                                                                            WriteLogMessage(&amp;quot;Ошибка подключения. &amp;quot; + f.Message);
                                                                        });

                    }
                    // Подключаемся
                    this._trader.Connect();
                }
            }
            else
            {
                StopWatch();
                StopDDE();
                this._trader.Disconnect();

                _isConnected = false;
                UpdateControls();
            }
        }

        void LocateQuikButton_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new FolderBrowserDialog();

            if (!this.Path.Text.IsEmpty())
                dlg.SelectedPath = this.Path.Text;

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                this.Path.Text = dlg.SelectedPath;
            }
        }


        void StartWatchSec1Sec2Button_Click(object sender, RoutedEventArgs e)
        {
            if (_isWatchingStarted)
                StopWatch();
            else
                StartWatch();
        }

        void SecurityList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            sec1 = (Security)Security1List.SelectedItem;
            sec2 = (Security)Security2List.SelectedItem;

            UpdateControls();
        }
        #endregion

        #region Event handlers for application shutdown
        protected override void OnClosing(CancelEventArgs e)
        {
            if (this._trader != null)
            {
                if (_isDdeStarted)
                    StopDDE();
                if (_isWatchingStarted)
                    StopWatch();

                this._trader.Dispose();
            }

            base.OnClosing(e);
        }

        protected override void OnClosed(EventArgs e)
        {
            System.Windows.Application.Current.Shutdown();
            base.OnClosed(e);
        }
        #endregion

        private void ShowDepthsForPositionsButton_Click(object sender, RoutedEventArgs e)
        {
            _trader.Positions.ForEach(p =&amp;gt;
                {
                    WriteLogMessage(&amp;quot;Актив: &amp;quot; + p.Security.Code + &amp;quot; Позиция: &amp;quot; + p.CurrentValue);

                    var _volume = p.CurrentValue;

                    if (_volume != 0)
                    {
                        WriteLogMessage(&amp;quot;Запускается экспорт стакана для&amp;quot; + p.Security.Code);
                        _trader.RegisterMarketDepth(p.Security);
                    }

                    //var _depth = _trader.GetMarketDepth(p.Security).Clone();

                    //var _close = new LimitQuotingStrategy(_volume &amp;gt; 0 ? OrderDirections.Sell : OrderDirections.Buy, _volume.Abs(), (_depth.BestAsk.Price + _depth.BestBid.Price) / 2)
                    // {
                    //     Trader = this._trader,
                    //     Security = p.Security,
                    //     Portfolio = p.Portfolio
                    // };

                    //this.LogManager.Sources.Add(_close);

                    //_strategies.Add(_close);
                });

            //_strategies.ForEach(s =&amp;gt; s.Start());
        }
        #endregion
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3185/</id>
    <title type="text">64x</title>
    <published>2012-11-23T17:34:21Z</published>
    <updated>2012-11-23T17:34:21Z</updated>
    <author>
      <name>towace</name>
      <uri>https://stocksharp.ru/users/6501/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">Доброго времени суток вам,чёт не пруха у меня с гидрой(( Выдаёт ошибку -  текущая разрядность не совместима со шлюзом смарт трейд, что посоветуете?&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADCXgoGUv8QoXkH8d2sisSY973GlhNdsEvPJGgkcF-oM909vj5ZaPfQfT5Qq3ILZXk" title="http://screencast.com/t/fCX86sJbuz"&gt;http://screencast.com/t/fCX86sJbuz&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3184/</id>
    <title type="text">Исключение в StockSharp.Algo при остановке стратегии</title>
    <published>2012-11-23T15:06:37Z</published>
    <updated>2012-11-23T15:06:37Z</updated>
    <author>
      <name>NattyD</name>
      <uri>https://stocksharp.ru/users/687/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Останавливал работающую стратегию, при остановке робот упал. В стратегии параметр CancelOrdersWhenStopping = true, перед тем как нажал остановить, висела активная заявка, которая в итоге не снялась.&lt;br /&gt;&lt;br /&gt;Раньше такого никогда не было, поэтому не знаю, как такой баг еще раз воспроизвести. Похоже, ошибка не у меня.&lt;br /&gt;&lt;br /&gt;S# 4.1.6 из box.com&lt;br /&gt;&lt;br /&gt;В журнале Windows значится такое:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;

Приложение: robot.exe
Версия платформы: v4.0.30319
Описание. Процесс был завершен из-за необработанного исключения.
Сведения об исключении: System.ArgumentException
Стек:
   в #=q6OOsVt0jU6li3962Bc4BTP_SDQNJzZw7a_xJ9eDpXEI=.#=q0CEkaXIaiGHY4qxSGKEiqluc9Q0OF68lyDePIT6dDP4=(StockSharp.BusinessEntities.Order, Boolean)
   в StockSharp.Algo.BaseTrader.CancelOrder(StockSharp.BusinessEntities.Order)
   в StockSharp.Algo.Strategies.Strategy.#=qTUoMrDUJPAMfvqYs225nzVyfPPUltcsfJr7mg4rDD1A=(StockSharp.BusinessEntities.Order)
   в StockSharp.Algo.Strategies.Strategy.#=qs7HIBPMp2K6K8uK2JZaxr_gM_UPxqGaRmPsIy372u9lnqQt2jFoEJKsSDUp0lFq$(StockSharp.BusinessEntities.Order)
   в Ecng.Collections.CollectionHelper.ForEach[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1&amp;lt;System.__Canon&amp;gt;, System.Action`1&amp;lt;System.__Canon&amp;gt;)
   в StockSharp.Algo.Strategies.Strategy.#=qrQSEQToAIjy7zanZmRFCmIhNiBd5BXJ$JXepvuLeizs=()
   в StockSharp.Algo.Strategies.Strategy.#=qqMGhIBHCDA8zWbr6iKLM8qibs4Ea$ZveYoho8Y0u_Lc=(StockSharp.Algo.ProcessStates)
   в StockSharp.Algo.Strategies.Strategy.Stop()
   в Robot.MainWindow.Start_Click(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
   в System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)
   в System.Windows.Controls.MenuItem.InvokeClickAfterRender(System.Object)
   в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   в System.Windows.Threading.DispatcherOperation.InvokeImpl()
   в System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
   в System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   в System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   в System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   в System.Windows.Threading.DispatcherOperation.Invoke()
   в System.Windows.Threading.Dispatcher.ProcessQueue()
   в System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   в MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   в MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   в System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   в MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   в System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
   в System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
   в System.Windows.Threading.Dispatcher.Run()
   в System.Windows.Application.RunDispatcher(System.Object)
   в System.Windows.Application.RunInternal(System.Windows.Window)
   в System.Windows.Application.Run(System.Windows.Window)
   в Ux.App.Main()

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3183/</id>
    <title type="text">MarketQuotingStrategy не ждет сделки</title>
    <published>2012-11-23T06:54:47Z</published>
    <updated>2012-11-23T06:54:47Z</updated>
    <author>
      <name>Ant.On.</name>
      <uri>https://stocksharp.ru/users/6276/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Столкнулся со следующей проблемой: иногда правило WhenStopped() для MarketQuotingStrategy срабатывает позже чем правило WhenNewMyTrades(), что нелогично при выставленным флаге WaitAllTrades=true;&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;
                        q = new MarketQuotingStrategy(OrderDirections.Buy, volume);
                    q.Volume = q.QuotingVolume;
                    q.CancelOrdersWhenStopping = false; //to eliminate useless cancelation on stoping
                    q.PriceOffset = new Unit(1, UnitTypes.Step);
                    q.BestPriceOffset = new Unit(1, UnitTypes.Step);
                    q.WaitAllTrades = true;
                    q.WhenNewMyTrades().Do(()=&amp;gt;this.AddInfoLog(&amp;quot;trade...&amp;quot;)).Apply(this);
                    q.DisposeOnStop = true;

                    q.WhenStopped().Do(() =&amp;gt;
                    {
                        this.AddInfoLog(&amp;quot;quoting complete&amp;quot;);
                    }).Once().Apply(this);
q.Start()&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;в чем может быть дело? логов пока нет, т.к. ошибка проявляется не всегда...</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3182/</id>
    <title type="text">Новые таблицы в Quik</title>
    <published>2012-11-22T17:13:11Z</published>
    <updated>2012-11-22T17:13:11Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">В моём терминале QUIK не удаётся загрузить info.wnd - всё время сообщение о нехватке памяти. Возможно это косяки брокерских настроек (Брокер Уралсиб Кэпитал. Терминал пока тестовый.)&lt;br /&gt;Попробовал настроить вручную по инструкции.&lt;br /&gt;Оказалось:&lt;br /&gt;- Последняя выложенная инструкция в 4.1.6 более старая, чем была выложена пару недель назад. В ней в статье &amp;quot;Настройка Quik&amp;quot; отсутствует описание таблицы &amp;quot;Инструменты (изменения)&amp;quot;.&lt;br /&gt;- Verifier версии 4.1.4 работает нормально. С версии 4.1.5 необходимо подключение к таблице &amp;quot;Валюты портфелей&amp;quot; (Ошибка верифаера: Окно с заголовком &amp;#39;валюты портфелей&amp;#39; не было найдено). Эта таблица не описана нигде, кроме как в спецификации &amp;quot;DdeCurrencyPortfolioColumns - члены&amp;quot;.&lt;br /&gt;Пожелания: &lt;br /&gt;- опишите, пожалуйста, что это за таблица &amp;#39;валюты портфелей&amp;#39;, какие у неё поля и как она должна называться в DDE и в UI.&lt;br /&gt;- Verifier ругается всплывающим окном, из которого невозможно скопировать текст ошибки. Никакого иного логирования не обнаруживается. &lt;br /&gt;Совет:&lt;br /&gt;Возможно старая инструкция всплыла из-за специфики работы TFS.&lt;br /&gt;Надёжный подход - после каждой фиксации изменений обновлять локально полную версию файлов. Причём не через Get Latest Version, а через Get Specific Version (со всеми галками). Причём не для проекта или солюшна, а для всей папки trunk.&lt;br /&gt;Только так можно гарантированно иметь актуальную версию всех файлов хранилища.       </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3181/</id>
    <title type="text">После вечернего клиринга перестают приходить данные</title>
    <published>2012-11-22T15:21:36Z</published>
    <updated>2012-11-22T15:21:36Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.ru/users/6053/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">Версия 4.1.6&lt;br /&gt;Собственно сабж. Раньше на этом же роботе все было отлично, сейчас я день торговал с опцией Trader.CreateDepthFromOrdersLog, в результате после вечернего клиринга перестали приходить тики и ордерлог по всем инструментам. Но мои заявки на биржу отправляются.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3180/</id>
    <title type="text">Построение стаканов из анонимного ордер лога</title>
    <published>2012-11-21T16:48:09Z</published>
    <updated>2012-11-21T16:48:09Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.ru/users/6053/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">Использую StockSharp 4.1.6&lt;br /&gt;Решил посмотреть как дела с Trader.CreateDepthFromOrdersLog.&lt;br /&gt;&lt;br /&gt;Для начала решил проверить на тестовом сервере, для него у меня стоял P2_CGate1.14.9_64. Для чистоты эксперимента SampleGUI из StockSharp 4.1.6. Запускаю, стакан не строиться, множество ошибок.&lt;br /&gt;&lt;br /&gt;Подумал, что гейт старый, потому поставил новый P2_CGate1.14.17_64. Прога коннектится, но ни инструментов, ни портфелей, ни трейдов, вообще никаких данных не получает.&lt;br /&gt;&lt;br /&gt;Решил проверить на боевом сервере, для него стоит гейт P2_ClientGate1.12.7_64 (Для тестового CGate стоит, для боевого ClientGate, вроде это разные вещи).&lt;br /&gt;Последний боевой гейт P2_ClientGate1.14.11_64 не ставлю, т.к. в соседней ветке говорят, что не работает: &lt;a href="http://stocksharp.com/forum/2996/Oshibka-pri-ispol-zovanii-novoi-viersii-shliuza/
" title="http://stocksharp.com/forum/2996/Oshibka-pri-ispol-zovanii-novoi-viersii-shliuza/
"&gt;http://stocksharp.com/fo...-novoi-viersii-shliuza/
&lt;/a&gt;&lt;br /&gt;На рабочем сервере стаканы похоже строятся нормально, по крайней мере ошибки не вылетают. По хорошему надо сравнить со стаканом квика, например, но у меня терпения не хватает дождаться, пока весь ордер лог подгрузится.&lt;br /&gt;&lt;br /&gt;Собственно, вопросы:&lt;br /&gt;1) Какие гейты надо использовать для тестового и рабочего серверов. Когда будет поддержка последних гейтов?&lt;br /&gt;2) Почему на тестовом сервере стаканы с ордерлога не строятся, а на рабочем строятся?&lt;br /&gt;3) И самое важное: когда будет поддержка горячего старта стаканов с ордерлога с помощью RevisionManager&amp;#39;a? Была речь про то, что ртс каждые 3 минуты присылает снэпшот стакана, по этому снепшоту и ордерлогу за последние 3 минуты можно быстро восстановить текущий стакан. &lt;br /&gt;Очень важная вещь на самом деле. Сейчас у нас получается ордерлог можно только сохранять для тестирования. Играть с помощью ордерлога не представляется возможным: глюканул инет и все, перезапускай робота полтора часа, и включай квик позиции вручную закрывать.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3179/</id>
    <title type="text">Странная ошибка внутри StockSharp.Algo</title>
    <published>2012-11-20T07:05:57Z</published>
    <updated>2012-11-20T07:05:57Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.ru/users/6053/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">Работает простой маркетмейкерский робот, который держит в стакане аск и бид и периодически переставляет их на более подходящие цены. &lt;br /&gt;Иногда вылетает странная ошибка изнутри StockSharp.Algo, я даже не знаю какой мой код её вызывает, мои try-catch её не перехватывают. См картинку</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3178/</id>
    <title type="text">Склейка данных инструмента</title>
    <published>2012-11-19T20:34:58Z</published>
    <updated>2012-11-19T20:34:58Z</updated>
    <author>
      <name>ViktoriusI</name>
      <uri>https://stocksharp.ru/users/26846/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Выкачал данные Гидрой по фьючерсу UX.&lt;br /&gt;Как для тестирования склеить данные фьючерсов с разными датами экспирации, чтобы тестировать на единой истории &lt;br /&gt;как по одному инструменту?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3177/</id>
    <title type="text">Ошибка при тестировании</title>
    <published>2012-11-19T19:59:23Z</published>
    <updated>2012-11-19T19:59:23Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">При тестировании периодически возникает:&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_eaa90e7154b84a879bab1f04245b381c');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_eaa90e7154b84a879bab1f04245b381c' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;
System.NullReferenceException: Object reference not set to an instance of an object.
   at #=qkoSo$d923scmg_sYtLvcgC1T0ft2pstJcPersksBoZKwr0BQW4jZhfAQW1xMmBut.#=qg67115AckIhO5d2zxyCZAQ==(Boolean #=qLADmQb8cJ4Y_nd7XlXaXQw==)
   at #=qkoSo$d923scmg_sYtLvcgC1T0ft2pstJcPersksBoZKwr0BQW4jZhfAQW1xMmBut.#=qm3V9Kfo72M8TE2px_zLo9xQM1RL6SFBGqLB3If2f6Fw=.#=qPPbjei2wiECkz_QeThbm2A5qP5NSKd6ArG8wtLmBsyA=()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.TimerQueueTimer.CallCallback()
   at System.Threading.TimerQueueTimer.Fire()
   at System.Threading.TimerQueue.FireNextTimers()&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3176/</id>
    <title type="text">Нужен программист</title>
    <published>2012-11-19T09:47:15Z</published>
    <updated>2012-11-19T09:47:15Z</updated>
    <author>
      <name>kpacaba</name>
      <uri>https://stocksharp.ru/users/6435/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Работа" />
    <content type="html">Нужен программист со знанием C# и билиотек S#, довести начатый проект, проект готов на 70%. Зп 50 000 в мес, работа в офисе.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3175/</id>
    <title type="text">ZigZag</title>
    <published>2012-11-19T09:06:19Z</published>
    <updated>2012-11-19T09:06:19Z</updated>
    <author>
      <name>yammm</name>
      <uri>https://stocksharp.ru/users/6162/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Ошибка либо у меня либо у вас :)&lt;br /&gt;&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/102165/19-11-2012-13-05-51.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/102165/19-11-2012-13-05-51.png?size=800x800" alt=""/&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3174/</id>
    <title type="text">ContiniousSecurity не рисует свечки</title>
    <published>2012-11-19T01:43:32Z</published>
    <updated>2012-11-19T01:43:32Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.ru/users/340/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">При тестировании на истории, в CandleManager не приходят новые свечки по ContinuousSecurity&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_fb78e2a4fa2e43949c3842239ee8bbfd');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_fb78e2a4fa2e43949c3842239ee8bbfd' 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 cFuture = new ContinuousSecurity();
            cFuture.ExpirationJumps.AddRange(
                Securities
                    .Where(s =&amp;gt; s.Type == SecurityTypes.Future)
                    .Select(f =&amp;gt; { return new KeyValuePair&amp;lt;Security, DateTime&amp;gt;(f, (DateTime)f.ExpiryDate); })
            );

            Trader = new EmulationTrader(
                new[] { cFuture },
                new[] { Portfolio },
                storage
            );

            Trader.Connect();
            Trader.StartExport();

            CM = new CandleManager(Trader);
            CM.Processing += (series, candle) =&amp;gt; { Trader.AddInfoLog(&amp;quot;new candle value&amp;quot;); };

            CM.Start(new CandleSeries(typeof(TimeFrameCandle), cFuture, timeFrame));

            Trader.Start(stDate, enDate);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Если в CM передавать не ContinuousSecurity, а фьючерсы на основании которых он построен, то свечки приходят нормально&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_775e98ad3ae1434b89e2a2963b7745db');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_775e98ad3ae1434b89e2a2963b7745db' 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;

            Securities.Where(s =&amp;gt; s.Type == SecurityTypes.Future).ForEach(fut =&amp;gt;
            {
                CM.Start(new CandleSeries(typeof(TimeFrameCandle), fut, timeFrame));
            });
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Это баг при тестировании на истории, или не так что-то делаю?&lt;br /&gt;&lt;br /&gt;При этом лог для ContinuousSecurity&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_20a5603fc3b84b6f877b74a10a7ac4d8');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_20a5603fc3b84b6f877b74a10a7ac4d8' style='display:none'&gt;&lt;br /&gt;EmulationTrader | 01.01.0001 00:00:00.000 |            | Экспорт запущен.&lt;br /&gt;EmulationTrader | 01.01.2012 00:00:00.000 |            | Loading 01.01.2012 0:00:00 Events: 0&lt;br /&gt;EmulationTrader | 01.01.2012 00:00:00.000 |            | Loading 02.01.2012 0:00:00 Events: 1&lt;br /&gt;EmulationTrader | 01.01.2012 00:00:00.000 |            | Loading 03.01.2012 0:00:00 Events: 2&lt;br /&gt;EmulationTrader | 01.01.2012 00:00:00.000 |            | Loading 04.01.2012 0:00:00 Events: 169&lt;br /&gt;EmulationTrader | 01.01.2012 00:00:00.000 |            | Loading 05.01.2012 0:00:00 Events: 336&lt;br /&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_8626fd71370841fe9cef148de7ba23cb');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_8626fd71370841fe9cef148de7ba23cb' style='display:none'&gt;&lt;br /&gt;EmulationTrader | 01.01.0001 00:00:00.000 |            | Экспорт запущен.&lt;br /&gt;EmulationTrader | 01.01.2012 00:00:00.000 |            | Loading 01.01.2012 0:00:00 Events: 0&lt;br /&gt;EmulationTrader | 01.01.2012 00:00:00.000 |            | Loading 02.01.2012 0:00:00 Events: 1798&lt;br /&gt;EmulationTrader | 01.01.2012 18:45:00.000 |            | Loading 03.01.2012 0:00:00 Events: 3596&lt;br /&gt;EmulationTrader | 03.01.2012 21:19:16.107 |            | Loading 04.01.2012 0:00:00 Events: 197041&lt;br /&gt;EmulationTrader | 04.01.2012 20:52:25.887 |            | Loading 05.01.2012 0:00:00 Events: 435865&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;показывает разное к-во загруженных сделок</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3173/</id>
    <title type="text">Заявки</title>
    <published>2012-11-15T17:10:08Z</published>
    <updated>2012-11-15T17:10:08Z</updated>
    <author>
      <name>nuan</name>
      <uri>https://stocksharp.ru/users/6492/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Добрый вечер, встал простой вопрос, как сделать так, чтобы заявка выставленная, но не исполненная - отменялась. &lt;br /&gt;/*_traider.MarketDepthsChanged += depths =&amp;gt; this.GuiAsync(() =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                foreach(var ord in Orders)&lt;br /&gt;                    if (ord.IsMatched() == false)&lt;br /&gt;                        _traider.CancelOrders();&lt;br /&gt;            });&lt;br /&gt;            */&lt;br /&gt;Orders -коллекция заявок. &lt;br /&gt;И как сделать, чтобы отмена была через некоторые время.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3172/</id>
    <title type="text">BasketTrader.Connect</title>
    <published>2012-11-15T10:29:24Z</published>
    <updated>2012-11-15T10:29:24Z</updated>
    <author>
      <name>Eskra</name>
      <uri>https://stocksharp.ru/users/711/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Добрый день!&lt;br /&gt;В последней сборке 4.1.6(21002) баскеттрейдер не коннектится к терминалам на Trader.Connect(). Проверил на примере со смартом - тоже не работает, никаких исключений или ошибок не выводит.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3171/</id>
    <title type="text">Предложение</title>
    <published>2012-11-15T07:35:33Z</published>
    <updated>2012-11-15T07:35:33Z</updated>
    <author>
      <name>rbnkmr</name>
      <uri>https://stocksharp.ru/users/27971/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Добрый день. Предложение для продажи: около десятка систем (проверены не только &amp;#171;историей&amp;#187;, но и по текущий день работают на реальном рынке). Результаты работы систем адекватны движениям рынка. Не грааль. По 1000% процентов не делают. Не депозит (капитал не растет непрерывно). С десятым плечом лучше не использовать. Вариант продажи, как алгоритма, так и реализации алгоритма. Каталог, подробности и вопрос на электронную почту: &lt;a href="https://stocksharp.ru/away/?u=AQAAAAAAAAAbsGj2MMZj5RbyewRZOaO49A5gh0-psTP5uV9gGv0PBg"&gt;rbnkmr@yandex.ru&lt;/a&gt;.&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3170/</id>
    <title type="text">Не приходят свечи Real-time</title>
    <published>2012-11-14T19:25:52Z</published>
    <updated>2012-11-14T19:25:52Z</updated>
    <author>
      <name>Mirovan</name>
      <uri>https://stocksharp.ru/users/797/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Обнови версию StockSharp до версии 4.1.6 - перестали поступать данные Real-time свечей. Открыл пример SampleCandles - тоже самое, данные портфелей и инструменты поступают, а свечи не идут.&lt;br /&gt;&lt;br /&gt;Т.е. не вызывается событие Processing.&lt;br /&gt;&lt;br /&gt;Как можно продиагностировать данную ошибку?</content>
  </entry>
</feed>