﻿<?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=174</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-22T16:10:55Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=community&amp;page=174" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/3294/</id>
    <title type="text">RawConvertableCandleBuilderSource</title>
    <published>2013-01-13T17:39:24Z</published>
    <updated>2013-01-13T17:39:24Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Подскажите, пожалуйста!
У меня есть готовая коллекция IEnumerable&amp;lt;Candle&amp;gt; Candles, содержащая свечи 10мин. Я хочу их запихнуть в источник.
Как я понимаю это можно сделать через RawConvertableCandleBuilderSource&amp;lt;TSourceValue&amp;gt;. Но как именно это сделать ни где не нашел, ни в документации, ни на форуме. Везде пишут про сделки RawConvertableCandleBuilderSource&amp;lt;Trade&amp;gt;. А что в моем случае писать вместо TSourceValue?&lt;/p&gt;
&lt;p&gt;Пробовал&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;var cbs = new RawConvertableCandleBuilderSource&amp;lt;Candle&amp;gt;(security, startTime, endTime, Candles);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Выдает исключение:
Вызвано: &amp;quot;Объект должен реализовывать интерфейс IConvertible.&amp;quot; (System.InvalidCastException)	Сообщение об исключении = &amp;quot;Объект должен реализовывать интерфейс IConvertible.&amp;quot;, Тип исключения = &amp;quot;System.InvalidCastException&amp;quot;, Данные среды выполнения Windows для исключения = &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;Может кто сталкивался подскажите!&lt;/p&gt;
&lt;p&gt;P.S. С наступающим Старым Новым годом! [biggrin]&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3293/</id>
    <title type="text">Как устроено тестирование стратегии?</title>
    <published>2013-01-12T22:55:44Z</published>
    <updated>2013-01-12T22:55:44Z</updated>
    <author>
      <name>FlashPlayer</name>
      <uri>https://stocksharp.ru/users/16669/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;p&gt;Подскажите пожалуйста такой момент:&lt;/p&gt;
&lt;p&gt;Предположим, я хочу протестировать какую-то стратегию на исторических данных. Создаю эмулятор трейдер, подсасываюсь к сохраненной истории. Запускаю эмулятор трейдер. Если просто его запустить - он пробежится от старт тайма до стоп тайма, отреагировав на все подписанные события (сделки, заявки итп итд) ну и остановится. А теперь, я дополнительно создам стратегию (пусть даже пустую), и в настройках стратегии скажу ей - используй этот же эмулятор трейдер. Запускаю стратегию. Что в этот момент технически происходит? В дополнительном потоке заново запускается эмулятор трейдер от времени старта до стопа, но теперь исполняя стратегию? То есть вопрос больше вот в чем - эмулятор запустить все равно нужно, но важно ли когда я запускаю стратегию? Не получится ли так, что я запускаю стратегию почти одновременно с эмулятором, но чуть позже и она не с старт тайма начинает работать, а с того времени, которое было в эмуляторе на момент запуска стратегии?&lt;/p&gt;
&lt;p&gt;И еще один вопрос. При тестировании на исторических данных тестер всегда тестирует на стаканах? То есть если я имею из истории - только трейды - он из них постарается сделать стаканы и на них тестировать? Ведь как тестировать на трейдах - непонятно. А если есть ордерлог и трейды - чтобы тестер тестил на стаканах, построенных на ордерлоге, я должен это дополнительно указать - в противном случае он будет стараться строить стаканы по трейдам, так? То есть интересует - как устроены умолчания. Что по умолчанию берется для тестинга - какой тип сохраненной истории.&lt;/p&gt;
&lt;p&gt;Заранее спасибо за ответ.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3292/</id>
    <title type="text">SampleHistoryTestingParallel - как запустить?</title>
    <published>2013-01-11T18:04:06Z</published>
    <updated>2013-01-11T18:04:06Z</updated>
    <author>
      <name>Геннадий Ванин (Gennady Vanin)</name>
      <uri>https://stocksharp.ru/users/6413/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;p&gt;На всех версиях, начиная с 4.1.5, StockSharp при попытке открыть SampleHistoryTestingParallel выдаются ошибка в MainWindow.xaml  на линии:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-css"&gt;&amp;lt;my:EquityCurveChart x:Name=&amp;quot;Curve&amp;quot; Grid.Row=&amp;quot;4&amp;quot; Grid.ColumnSpan=&amp;quot;3&amp;quot;  /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)
При этом, на версиях 4.1.5-4.1.6 картинка ваще не показывается на Design surface&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://i.imgur.com/F0fx1.jpg" alt="S# 4.1.5 bug" /&gt;&lt;/p&gt;
&lt;p&gt;на последней версии 22122 уже показывается,
с уже более открытой информацией об ошибке:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Could not load file or assembly 'Microsoft.Practices.Unity, Version=2.1.505.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
at &lt;strong&gt;Ecng.Configuration.ConfigManager..cctor()&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://i.imgur.com/sBLK9.jpg" alt="StockSharp 22122 error" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://i.imgur.com/Z1mxv.jpg" alt="StockSharp 22122 error" /&gt;&lt;/p&gt;
&lt;p&gt;Самое весёленькое - на скрипте XAML показывается зелёная галочка
&lt;strong&gt;&amp;quot;No errors or warnings&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Как бы мне запустить проект, не потеряв ту самую историческую кривую?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3291/</id>
    <title type="text">При тестировании выдает исключение  ContextSwitchDeadlock was detected</title>
    <published>2013-01-11T09:35:33Z</published>
    <updated>2013-01-11T09:35:33Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;p&gt;С тестирование на тиках так и не разобрался из-за переполнения индикаторов...  Пришлось тестировать на реале.&lt;/p&gt;
&lt;p&gt;Теперь к проблеме )))
Тестировал свои стратегии на старых версиях S#.  Все было отлично.  Решил полностью перейти на 4.1.6. Набросал простенькую стратегию на 15мин свечках. Шаблон взял полностью из SampleHistoryTesting. Свечки не рисую.
Начинается тест, первые два дня эквити рисуется достаточно быстро, потом начинает обновляться с интервалом секунд в 5 и в итоге форма вообще зависает, через минуту выскакивает это исключение:
&lt;img src="http://gyazo.com/33487bf9f0488b3202765aa81a7b97c0" alt="Ошибка" /&gt;&lt;/p&gt;
&lt;p&gt;Код:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-plain"&gt;

 protected override void OnStarted()
        {
            //vcon.Open();
            CommissionRule commissionRule = new CommissionRule { Type = CommissionTypes.PerTradeVolume, Value = new Unit(3m) };
            _commissionManager.Rules.Add(commissionRule);
           
            Sostoyanie = &amp;quot;кэш&amp;quot;;
           
            takeprofit  = decimal.Parse(MainWindow.Instance.takeprofit_form.Text);
            proskalz = decimal.Parse(MainWindow.Instance.proskalz.Text);
            vol_kontr = decimal.Parse(MainWindow.Instance.vol_lotov.Text);
            vcon.Open();
           
            // Создание элемента графика представляющего свечки
            _candlesElem = new ChartCandleElement();
            MainWindow.Instance._area.Elements.Add(_candlesElem);

            //MainWindow.Instance._area_ind.Elements.Add(_longMaElem);
            //MainWindow.Instance._area_ind.Elements.Add(_shortMaElem);

         
            this
                .WhenNewMyTrades()
                .Do(ProcessNewTrades)
                .Apply(this);

            _series
                .WhenCandlesFinished()
                .Do(ProcessCandle)
                .Apply(this);
            
            base.OnStarted();
        }

             
        private void ProcessCandle(Candle candle)
        {

          //  if (candle.State == CandleStates.Finished) MainWindow.Instance.GuiAsync(() =&amp;gt; MainWindow.Instance.Chart.ProcessCandle(_candlesElem, candle));
            Indicator.Process(candle.ClosePrice);
            
            MainWindow.Instance.GuiAsync(() =&amp;gt;
            {
                MainWindow.Instance.trades_time.Text = Security.LastTrade.Time.ToString();
                MainWindow.Instance.pos2_form.Text = Sostoyanie;
                MainWindow.Instance.position_form.Text = Position.ToString();
            });

         
            if (!START)
            {
                if (Indicator.Container.Count &amp;gt; 2)
                {
                    START = true;
                    Security
               .WhenNewTrades()
               .Do(ProcessNewTrade)
               .Apply(this);

                }
            }

        }

        private void Comission_raschet()
        {
            comission = 0;
            foreach (MyTrade trade in MyTrades)
            {
                comission = comission + _commissionManager.ProcessMyTrade(trade);
            }
            //MainWindow.Instance.GuiAsync(() =&amp;gt;
            //{
            //    MainWindow.Instance.comission_form.Text = comission.ToString();
            //});
        }
       
        private void ProcessNewTrade()
        {
            if (Security.LastTrade == null)
            { goto propusk2; }

            if (Security.LastTrade.Time.Hour == 19 &amp;amp;&amp;amp; Security.LastTrade.Time.Minute == 0 &amp;amp;&amp;amp; Security.LastTrade.Time.Second &amp;lt; 10)
            { goto propusk2; }

            switch (Sostoyanie)
            {
                case &amp;quot;кэш&amp;quot;:
                    {
                        if (...)
                        {
                            Sostoyanie = &amp;quot;Long&amp;quot;;
                            Buy_Order(vol_kontr);
                        }
                        else if (...)
                        {
                            Sostoyanie = &amp;quot;Short&amp;quot;;
                            Sell_Order(vol_kontr);
                        }
                    }
                    break;
                case &amp;quot;Long&amp;quot;:
                    {
                        if (...)
                        {
                            Sostoyanie = &amp;quot;кэш&amp;quot;;
                            Sell_Order(vol_kontr);
                        }
                    }
                    break;
                case &amp;quot;Short&amp;quot;:
                    {
                        if (...)
                        {
                            Sostoyanie = &amp;quot;кэш&amp;quot;;
                            Buy_Order(vol_kontr);
                        }
                    }
                    break;
            }

        propusk2:
    
            //MainWindow.Instance.GuiAsync(() =&amp;gt;
            //{

            //    MainWindow.Instance.trades_time.Text = Security.LastTrade.Time.ToString();
            //    //MainWindow.Instance.now_time.Text = DateTime.Now.ToString();
            //    MainWindow.Instance.pos2_form.Text = pos;
            //    MainWindow.Instance.position_form.Text = Position.ToString();
            //    MainWindow.Instance.komiss_form.Text = comission.ToString();
               
            //});

        }

        private void Buy_Order(decimal volume)
        {

            EntryPrice = Security.LastTrade.Price; ;

            this.AddInfoLog(&amp;quot;Сигнал на покупку&amp;quot;);
            nomersdelki++;
            order_open_long = this.CreateOrder(OrderDirections.Buy, Security.LastTrade.Price + proskalz, volume);
            order_open_long.Security = Security;
            this.RegisterOrder(order_open_long);
            order_open_long
                                .WhenMatched()
                                .Do(pos_change_long)
                                .Apply(this);

            this.AddInfoLog(PnLManager.PnL.ToString());
            //string vsql = string.Format(&amp;quot;insert into Rez2 (nomer_sdelki, data_vxoda,vremya_vxoda, cena_vxoda, High, Low,stop_price) Values ({0}, {1}, {2}, {3}, {4}, {5}, {6})&amp;quot;,
            //          (nomersdelki), (Security.LastTrade.Time.ToString(&amp;quot;dd.MM&amp;quot;)), (Security.LastTrade.Time.ToString(&amp;quot;HH.mmss&amp;quot;)), (order_open_long.Price.ToString()), (candle_high),(candle_low),(stop_price));


            //OleDbCommand vcom = new OleDbCommand(vsql, vcon);
            //vcom.ExecuteNonQuery();
        }


        private void Sell_Order(decimal volume)
        {
            EntryPrice = Security.LastTrade.Price;
            this.AddInfoLog(&amp;quot;Сигнал на продажу&amp;quot;);
            nomersdelki++;
            order_open_short = this.CreateOrder(OrderDirections.Sell, Security.LastTrade.Price - proskalz, volume);
            order_open_short.Security = Security;

            this.RegisterOrder(order_open_short);
            order_open_short
                                .WhenMatched()
                                .Do(pos_change_short)
                                .Apply(this);
            //string vsql = string.Format(&amp;quot;insert into Rez2 (nomer_sdelki, data_vxoda,vremya_vxoda, cena_vxoda, High, Low,stop_price) Values ({0}, {1}, {2}, {3}, {4}, {5}, {6})&amp;quot;,
            //          (nomersdelki), (Security.LastTrade.Time.ToString(&amp;quot;dd.MM&amp;quot;)), (Security.LastTrade.Time.ToString(&amp;quot;HH.mmss&amp;quot;)), (order_open_long.Price.ToString()), (candle_high), (candle_low), (stop_price));
            //OleDbCommand vcom = new OleDbCommand(vsql, vcon);
            //vcom.ExecuteNonQuery();
        }



&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3290/</id>
    <title type="text">HistoryTesting-что нужно инициализировать, чтобы не соединяться к терминалу?</title>
    <published>2013-01-11T06:48:13Z</published>
    <updated>2013-01-11T06:48:13Z</updated>
    <author>
      <name>Геннадий Ванин (Gennady Vanin)</name>
      <uri>https://stocksharp.ru/users/6413/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;p&gt;Только начал разбираться с тестированием на исторических данных&lt;/p&gt;
&lt;p&gt;Пока не нашёл примера - можно ли провести тестирование без соединения к терминалу
И, если можно то, что нужно инициализировать?&lt;/p&gt;
&lt;p&gt;Имеется SampleHistoryTesting, в котором устанавливается соединение с терминалом КВИК и экспортируются все таблицы из КВИК.
Почему нельзя обойтись EmulationTrader - без соединения и экспорта?&lt;/p&gt;
&lt;p&gt;Даже если использовать соединение и экспорт - то, какой минимум таблиц нужен для работы SampleHistoryTesting, чтобы не перегружать компьютер ненужными загрузками?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3289/</id>
    <title type="text">GuiDispatcher.AddPeriodicalAction</title>
    <published>2013-01-10T18:04:14Z</published>
    <updated>2013-01-10T18:04:14Z</updated>
    <author>
      <name>FlashPlayer</name>
      <uri>https://stocksharp.ru/users/16669/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <content type="html">&lt;p&gt;Подскажите пожалуйста - как работает GuiDispatcher.AddPeriodicalAction? Судя из названия метода - действие вызывается периодически - но с какой частотой. Пример использования встречается в SampleGui, где с помощью этого метода обновляется информация в открытых стаканах. Логика там, как я понимаю, следующая - ведется два синхронизированных словаря ключ-значение: один - инструмент/окно стакана, другой - рыночный стакан/окно стакана.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;	private readonly SynchronizedDictionary&amp;lt;Security, QuotesWindow&amp;gt; _quotesWindows = new SynchronizedDictionary&amp;lt;Security, QuotesWindow&amp;gt;();
            private readonly SynchronizedDictionary&amp;lt;MarketDepth, QuotesWindow&amp;gt; _changedDepths = new SynchronizedDictionary&amp;lt;MarketDepth, QuotesWindow&amp;gt;(); 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Далее происходит подписка на обновление стаканов trader.MarketDepthsChanged += TraderOnMarketDepthsChanged, и вот совсем мне непонятно, что делается в TraderOnMarketDepthsChanged:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;            private void TraderOnMarketDepthsChanged(IEnumerable&amp;lt;MarketDepth&amp;gt; depths)
	{
		foreach (var depth in depths)
		{
			var wnd = _quotesWindows.TryGetValue(depth.Security);

			if (wnd != null)
				_changedDepths[depth] = wnd;
		}
	}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Что тут происходит, как я понимаю: рассматриваем каждый обновившийся стакан и ищем соответствующее ему окно стакана в _quotesWindows:
var wnd = _quotesWindows.TryGetValue(depth.Security);&lt;/p&gt;
&lt;p&gt;Далее что происходит в этой строчке: _changedDepths[depth] = wnd; ? Откуда мы знаем, что в словаре _changedDepths есть элемент с ключом depth? И зачем на каждом обновлении стакана depth мы переприсваиваем значение wnd в словаре? Ну и самый главные вопрос - как потом в wnd появляются новые котировки с обновленного depth? Как работает .AddPeriodicalAction?&lt;/p&gt;
&lt;p&gt;Просто я думал логика должна была быть примерно такая - достаточно держать лишь один словарь - _quotesWindows и при получении обновленного MarketDepth - найти соответствующий ему элемент в _quotesWindows и обновить _quotesWindows.Value. Разве не так?&lt;/p&gt;
&lt;p&gt;Я еще только начинаю разбираться в программировании такого уровня, так что сильно не бейте и спасибо за помощь.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3288/</id>
    <title type="text">Не могу понять почему не видно свечей</title>
    <published>2013-01-08T15:49:09Z</published>
    <updated>2013-01-08T15:49:09Z</updated>
    <author>
      <name>RoboKrolik</name>
      <uri>https://stocksharp.ru/users/16730/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Пишу каркас для торговой стратегии.&lt;/p&gt;
&lt;p&gt;Вот так создаю свечи:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
public partial class MainWindow : Window
    {

        // Объявление переменных
       
        private CandleManager _candleManager; // менеджер свечек

private void Connect_Click(object sender, RoutedEventArgs e)   // жму на кнопку подключения
        {

                _candleManager = new CandleManager(_trader); // создаем менеджер свечек для Трейдера

                _candleManager.Processing += DrawCandle; // подписываемся на событие

private void StartRobo_Click(object sender, RoutedEventArgs e)  // жму на кнопку запуска страты
        {

               CandleSeries series;

                series = new CandleSeries(typeof(TimeFrameCandle), _security, _timeFrame);

                _candleManager.Start(series);
                
                Label3.Content = Convert.ToString(series.GetCandle&amp;lt;TimeFrameCandle&amp;gt;(1).ClosePrice);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;При запуске стратегии выскакивает вот такая ошибка&lt;/p&gt;
&lt;p&gt;**An unhandled exception of type 'System.NullReferenceException' occurred in WpfApplication1.exe&lt;/p&gt;
&lt;p&gt;Additional information: Ссылка на объект не указывает на экземпляр объекта.**&lt;/p&gt;
&lt;p&gt;Не знаю что и делать. Я так понял что свечи не экспортируются.&lt;/p&gt;
&lt;p&gt;Какой экземпляр я не создал?&lt;/p&gt;
&lt;p&gt;Что делать?&lt;/p&gt;
&lt;p&gt;Код основного окна&lt;/p&gt;
&lt;details&gt;&lt;summary&gt;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Configuration;&lt;/summary&gt;
&lt;p&gt;// using S#
using Ecng.Common;
using Ecng.ComponentModel;
using Ecng.Xaml;
using Ecng.Serialization;
using Ecng.Collections;
using StockSharp.Algo;
using StockSharp.Algo.Indicators;
using StockSharp.Algo.Indicators.Trend;
using StockSharp.Algo.Candles;
using StockSharp.Algo.Strategies;
using StockSharp.BusinessEntities;
using StockSharp.Quik;
using StockSharp.Logging;
using StockSharp.Xaml;&lt;/p&gt;
&lt;p&gt;namespace WpfApplication1
{&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public partial class MainWindow : Window
{

    // Объявление переменных

    private QuikTrader _trader;   // квик трейдер

    private TimeSpan _timeFrame = TimeSpan.FromMinutes(1);  // таймфрейм
    private TimeSpan _timeRefreshStrategy = TimeSpan.FromSeconds(1);  // частота обновления стратегии
    
    int _sharecount; // количество торгуемых контрактов
    private DartWeiderStretegy _strategy; // обявляем стратегию
    
    private Security _security; // инструмент
    private Portfolio _portfolio; // портфель

    private CandleManager _candleManager; // менеджер свечек
                          

    public MainWindow()
    {
        InitializeComponent();
      

    }

    // Кнопка &amp;quot;Подключение&amp;quot; - Метод подключения к квику
    private void Connect_Click(object sender, RoutedEventArgs e)
    {
        if (_trader == null)
        {
            _trader = new QuikTrader(QuikTerminal.GetDefaultPath());

            //Подписываемся на событие появления новых портфелей
            _trader.NewPortfolios += portfolios =&amp;gt; this.GuiAsync(() =&amp;gt; {Portfolios.ItemsSource = _trader.Portfolios;});

            //Подписываемся на событие появления новых инстументов
            _trader.NewSecurities += securities =&amp;gt; this.GuiAsync(() =&amp;gt; {Securities.ItemsSource = _trader.Securities;});
           
        }

        try
        {
            // подключаем квик
            _trader.Connect();
        }
        catch (System.IO.IOException err)
        {
            MessageBox.Show(&amp;quot;Не удается подключиться к квику&amp;quot; + err.Message);
        }

        //Начинаем Экспорт данных

            _trader.StartExport(); //получение он-лайн данных из квика Инструменты,Заявки , Портфели и так далее

            _candleManager = new CandleManager(_trader); // создаем менеджер свечек для Трейдера

            _candleManager.Processing += DrawCandle; // подписываемся на событие


    }


    private void DrawCandle(CandleSeries series, Candle candle)
    {
        this.GuiAsync(() =&amp;gt;
        {

          //  _chart.ProcessCandle((ChartCandleElement)_chart.Areas[0].Elements[0], candle);

        });
    }

    // Кнопка &amp;quot;Остановка&amp;quot; - Метод остановки робота
    private void StopRobot_Click(object sender, RoutedEventArgs e)
    {
        if (_trader != null)
        {
            //отключаем экспорт со стакана и останавливаем стратегию
            _trader.UnRegisterMarketDepth(_security);
            if (_strategy.ProcessState == ProcessStates.Started) _strategy.Stop();
            if (_trader.Orders != null) _trader.CancelOrders();
            _trader.StopExport();              
        }
    }

    // Метод на случай закрытия окна робота
    private void ProgramWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        if (_trader != null)
        {
            //отключаем экспорт со стакана и останавливаем стратегию
            _trader.UnRegisterMarketDepth(_security);
            if (_strategy.ProcessState == ProcessStates.Started) _strategy.Stop();
            if (_trader.Orders != null) _trader.CancelOrders();
            _trader.StopExport();
        }
    }

    // Кнопка &amp;quot;Запуск робота&amp;quot; - метод запуск робота
    private void StartRobo_Click(object sender, RoutedEventArgs e)
    {
        // проверяем подключен ли квик трейдер, задан ли портфель, инструмент
        if (_trader == null)
        {
            MessageBox.Show(&amp;quot;Терминал не задан&amp;quot;);
            return;
        }

        if (_trader.Portfolios == null)
        {
            MessageBox.Show(&amp;quot;Портфель не задан&amp;quot;);
            return;
        }

        if (_trader.Securities == null)
        {
            MessageBox.Show(&amp;quot;Инструмент не задан&amp;quot;);
            return;
        }

        // код запуска стратегии

        if (_strategy == null)
        {

            CandleSeries series;

            series = new CandleSeries(typeof(TimeFrameCandle), _security, _timeFrame);

            _candleManager.Start(series);


            Label3.Content = Convert.ToString(series.GetCandle&amp;lt;TimeFrameCandle&amp;gt;(1).ClosePrice);
            
            this.GuiAsync(() =&amp;gt;
            {



            _strategy = new DartWeiderStretegy(_candleManager, _timeFrame)
            {
                Volume = _sharecount,
                Security = _security,
                Portfolio = _portfolio,
                Trader = _trader,
                Interval = _timeRefreshStrategy
            };



                
            });

       

        }


        if (_strategy.ProcessState == ProcessStates.Stopped)
        {
            // запускаем процесс получения стакана, необходимый для работы алгоритма котирования
            //_trader.RegisterQuotes(_strategy.Security);
            _trader.RegisterMarketDepth(_security);
            _strategy.Start();
        }

    }


    private void Securities_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        string sec = Convert.ToString(Securities.SelectedItem);
        sec = sec.Replace(&amp;quot;@RTS&amp;quot;, string.Empty);
        _security = _trader.Securities.First(s =&amp;gt; s.Code == sec &amp;amp;&amp;amp; s.Type == SecurityTypes.Future);
    }

    private void Portfolios_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        _portfolio = _trader.Portfolios.FirstOrDefault(p =&amp;gt; p.Name == Convert.ToString(Portfolios.SelectedItem));
    }

    private void PositionSize_TextChanged(object sender, TextChangedEventArgs e)
    {
        try
        {
            _sharecount = Convert.ToInt32(PositionSize.Text);
        }
        catch
        {
        MessageBox.Show(&amp;quot;Неправильный размер позиции&amp;quot;);
        }
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        


    }

}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;Код стратегии&lt;/p&gt;
&lt;details&gt;&lt;summary&gt;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;&lt;/summary&gt;
&lt;p&gt;using StockSharp.Algo;
using StockSharp.Algo.Strategies;
using StockSharp.Algo.Candles;
using Ecng.Xaml;
using StockSharp.Quik;
using StockSharp.BusinessEntities;&lt;/p&gt;
&lt;p&gt;namespace WpfApplication1
{
class DartWeiderStretegy : TimeFrameStrategy
{&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    decimal openPrice; // цена открытия свечи
    decimal lastPrice; // цена предПРЕДпоследней свечи

    private Order _order;   // текущая заявка

    private TimeSpan _timeFrame;  // таймфрейм

    private CandleManager _candleManager;

    // конструктор для работы стратегии
    public DartWeiderStretegy(CandleManager candleManager, TimeSpan timeFrame) : base(timeFrame)
    {
        _candleManager = candleManager;

        _timeFrame = TimeFrame;
    }

    /// &amp;lt;summary&amp;gt;
    /// Запуск стратегии
    /// &amp;lt;/summary&amp;gt;
    protected void OnStarting()
    {
        base.OnStarted();
    }

    // Выполнение стратегии
    protected override ProcessResults OnProcess()
    {

      

        /*

        //Определяем количество открытых позиций по инструменту
        int openPos = Convert.ToInt32(this.MyTrades.GetPosition());
        
        //Получаем цену открытия этой свечи
        openPrice = _lastCandle1.ClosePrice;

        //Получаем цену открытия предПРЕДпоследней свечи
        lastPrice = _lastCandle2.ClosePrice;

        //Если есть 2 свечи и нет открытых позиций
        if (_lastCandle1!=null &amp;amp;&amp;amp; _lastCandle2!=null &amp;amp;&amp;amp; openPos == 0)
        {
            // Если свеча выше предыдущей открываем лонг
            if (openPrice &amp;gt; lastPrice)
            {
                // создаем заявку на покупку
                _order = this.CreateOrder(OrderDirections.Buy, base.Security.GetMarketPrice(OrderDirections.Buy), base.Volume);
                
                // регистрируем ее
                base.RegisterOrder(_order);

                if (_order.IsMatched() == true)
                {

                    //Выставляем стоп-лосс и тейкпрофит через метод
                    _order = this.CreateStopLimitAndTakeProfit(openPrice);

                    // регистрируем его
                    base.RegisterOrder(_order);
                }
            }
        }
         * 
         * */


        return ProcessResults.Continue;
    }


    private Order CreateStopLimitAndTakeProfit(decimal openPrice2)
    {
        decimal stopPrice = Convert.ToDecimal(openPrice2) - 20;
        decimal tpPrice = Convert.ToDecimal(openPrice2) + 20;

        return new Order
        {
            Type = OrderTypes.Conditional,
            Volume = base.Volume,
            Price = Convert.ToDecimal(stopPrice),
            Security = base.Security,
            Portfolio = base.Portfolio,
            Direction = OrderDirections.Sell,
            StopCondition = new QuikStopCondition
            {
                Type = QuikStopConditionTypes.LinkedOrder,
                LinkedOrderPrice = tpPrice,
            },
        };
    }


     
     
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/details&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3287/</id>
    <title type="text">TRANStoQUIK.dll и WIN 7 64 бита</title>
    <published>2013-01-08T11:17:11Z</published>
    <updated>2013-01-08T11:17:11Z</updated>
    <author>
      <name>qpile</name>
      <uri>https://stocksharp.ru/users/6397/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Здравствуйте!
Торговый робот без проблем работает на 32 битах, а на 64 то не находит библиотеку, то отказано в доступе. В чем может быть проблема?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3286/</id>
    <title type="text">Какие ресурсы нужны простому роботу на S#</title>
    <published>2013-01-04T10:20:30Z</published>
    <updated>2013-01-04T10:20:30Z</updated>
    <author>
      <name>votor</name>
      <uri>https://stocksharp.ru/users/5938/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">&lt;p&gt;Какие ресурсы будут достаточны для простого робота на S#? Например, пересечение скользящих средних на 1 тикере 15мин.&lt;/p&gt;
&lt;p&gt;И каие ресурсы для робота с 7-10 простых стратегияими на 7-10 тикерах 15-60 мин, если работать будет все через Quik? Хватит ли ресурсов виртуальной машины ОЗУ 512 Мб, HDD 40Гб, 2400Mhz на технологии VDS Hyper-V ( Windows )&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3284/</id>
    <title type="text">Автоверсионность файлов</title>
    <published>2012-12-27T18:36:01Z</published>
    <updated>2012-12-27T18:36:01Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">&lt;p&gt;Простой способ автоверсионности:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Скачать и установить task
&lt;a href="http://archive.msdn.microsoft.com/AssemblyInfoTaskvers/Release/ProjectReleases.aspx?ReleaseId=232" rel="nofollow" target="_blank"&gt;AssemblyInfoTask&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Найти установленный файл &lt;em&gt;Microsoft.VersionNumber.targets&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Скопировать его в папку солюшна&lt;/li&gt;
&lt;li&gt;Прописать в проектах (в самом конце)&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="language-xml"&gt;  &amp;lt;Import Project=&amp;quot;$(SolutionDir)\Microsoft.VersionNumber.Targets&amp;quot; /&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="5"&gt;
&lt;li&gt;Отредактировать &lt;em&gt;Microsoft.VersionNumber.targets&lt;/em&gt; по желанию. Например так&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="language-xml"&gt;  
......
&amp;lt;PropertyGroup&amp;gt;
    &amp;lt;AssemblyMajorVersion&amp;gt;0&amp;lt;/AssemblyMajorVersion&amp;gt;
    &amp;lt;AssemblyMinorVersion&amp;gt;1&amp;lt;/AssemblyMinorVersion&amp;gt;
    &amp;lt;AssemblyBuildNumber&amp;gt;&amp;lt;/AssemblyBuildNumber&amp;gt;
    &amp;lt;AssemblyRevision&amp;gt;&amp;lt;/AssemblyRevision&amp;gt;
    &amp;lt;AssemblyBuildNumberType&amp;gt;DateString&amp;lt;/AssemblyBuildNumberType&amp;gt;
    &amp;lt;AssemblyBuildNumberFormat&amp;gt;MMdd&amp;lt;/AssemblyBuildNumberFormat&amp;gt;
    &amp;lt;AssemblyRevisionType&amp;gt;AutoIncrement&amp;lt;/AssemblyRevisionType&amp;gt;
    &amp;lt;AssemblyRevisionFormat&amp;gt;000&amp;lt;/AssemblyRevisionFormat&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

  &amp;lt;!-- Properties for controlling the Assembly File Version --&amp;gt;
  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;AssemblyFileMajorVersion&amp;gt;0&amp;lt;/AssemblyFileMajorVersion&amp;gt;
    &amp;lt;AssemblyFileMinorVersion&amp;gt;1&amp;lt;/AssemblyFileMinorVersion&amp;gt;
    &amp;lt;AssemblyFileBuildNumber&amp;gt;&amp;lt;/AssemblyFileBuildNumber&amp;gt;
    &amp;lt;AssemblyFileRevision&amp;gt;&amp;lt;/AssemblyFileRevision&amp;gt;
    &amp;lt;AssemblyFileBuildNumberType&amp;gt;DateString&amp;lt;/AssemblyFileBuildNumberType&amp;gt;
    &amp;lt;AssemblyFileBuildNumberFormat&amp;gt;MMdd&amp;lt;/AssemblyFileBuildNumberFormat&amp;gt;
    &amp;lt;AssemblyFileRevisionType&amp;gt;AutoIncrement&amp;lt;/AssemblyFileRevisionType&amp;gt;
    &amp;lt;AssemblyFileRevisionFormat&amp;gt;000&amp;lt;/AssemblyFileRevisionFormat&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

  &amp;lt;!-- Properties for controlling COM visibility --&amp;gt;
  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;AssemblyComVisible&amp;gt;&amp;lt;/AssemblyComVisible&amp;gt;
    &amp;lt;AssemblyGuid&amp;gt;&amp;lt;/AssemblyGuid&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

  &amp;lt;!-- Propeties for controlling extended assembly attributes --&amp;gt;
  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;AssemblyCompany&amp;gt;Pushkin&amp;lt;/AssemblyCompany&amp;gt;
 
    &amp;lt;AssemblyTrademark&amp;gt;Alex&amp;lt;/AssemblyTrademark&amp;gt;
    &amp;lt;AssemblyConfiguration&amp;gt;&amp;lt;/AssemblyConfiguration&amp;gt;
    &amp;lt;AssemblyCopyright&amp;gt;Pushkin © 2012&amp;lt;/AssemblyCopyright&amp;gt;
    &amp;lt;AssemblyCulture&amp;gt;&amp;lt;/AssemblyCulture&amp;gt;
    &amp;lt;AssemblyDescription&amp;gt;&amp;lt;/AssemblyDescription&amp;gt;
    &amp;lt;AssemblyProduct&amp;gt;PushkinRobot&amp;lt;/AssemblyProduct&amp;gt;
    &amp;lt;AssemblyTitle&amp;gt;&amp;lt;/AssemblyTitle&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;
.......

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Частично дёрнуто &lt;a href="http://stackoverflow.com/questions/4562845/how-can-i-change-assembly-version-number-using-assemblyinfotask" rel="nofollow" target="_blank"&gt;отсюда&lt;/a&gt;
Только проследите, чтоб в каждом номере версии было не более 4 цифр (код по ссылке нормально не работает).
В итоге у вас при каждом билде номер версии будет изменяться в соответствии с шаблоном. Причём и номер версии файла тоже.
И информацию о продукте также можно будет редактировать только в одном месте.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3283/</id>
    <title type="text">Изменения API</title>
    <published>2012-12-27T17:59:02Z</published>
    <updated>2012-12-27T17:59:02Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Вообще изменения существующего API в серьёзных проектах не приветствуются.
Но если они жизненно необходимы, то это делается так:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;устаревший метод/класс помечается атрибутом Obsolete ([System.Obsolete(&amp;quot;use class B&amp;quot;)]). При билде в Visual Studio это будет видно в warnings.&lt;/li&gt;
&lt;li&gt;содержимое устаревшего метода заменяется рабочей обёрткой над новым функционалом&lt;/li&gt;
&lt;li&gt;при выпуске мажорной версии (например 1.7 -&amp;gt; 2.0) устаревший код окончательно выбрасывается с указанием в описании релиза.
Вот как-то так.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3282/</id>
    <title type="text">MarketDepthsChanged !!!</title>
    <published>2012-12-27T17:52:08Z</published>
    <updated>2012-12-27T17:52:08Z</updated>
    <author>
      <name>Tik_Time</name>
      <uri>https://stocksharp.ru/users/6440/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Добрый вечер.
Помогите разобраться вот с чем.
Как подписаться на изменения котировок конкретного стакана?
Событие MarketDepthsChanged - подписывается на изменение последнего зарегистрированного стакана. А если я зарегистрировал их несколько (к примеру 3) как подписаться на изменение котировок 2-ого стакана? Или придется 2-ой стакан снова регистрировать и к нему уже подвязываться?
Как, к примеру, через Trader.MarketDepthsChanged += Changeddepths подписаться на изменение котировок нужного стакана, а не последнего?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3281/</id>
    <title type="text">Ровно через 10 минут закрывается консольное приложение</title>
    <published>2012-12-27T16:11:17Z</published>
    <updated>2012-12-27T16:11:17Z</updated>
    <author>
      <name>Aleksey Bulygin</name>
      <uri>https://stocksharp.ru/users/6173/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;Имеется непонятное поведение консольного приложения, использующего SmartTrader. А именно самопроизвольное закрытие консольного приложения ровно через 10 минут с момента создания экземпляра класса SmartTrader. При это даже не обязательно вызывать метод Connect().&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
...
static void Main()
{
    Console.WriteLine(&amp;quot; Press any key to continue. #1&amp;quot;);
    Console.ReadKey(true);

    SmartTrader trader = new SmartTrader(login, password);

    Console.WriteLine(&amp;quot; Press any key to continue. #2&amp;quot;);
    Console.ReadKey(true);
    ...
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Т.е. в &amp;quot;месте #1&amp;quot; программа может находиться любое время, пока не будет нажата любая клавиша. В тоже время после создания объекта &amp;quot;trader&amp;quot;, в &amp;quot;месте #2&amp;quot;, если не будет нажимата никакая из клавиш, то программа проработает ровно 10 минут с момента создания экземпляра класса SmartTrader, после чего консольное приложение автоматически завершиться. При этом если даже весь код в методе main() обернуть в контрукцию try ... catch ..., то в область catch мы не попадаем и как бы никаких исключительных ситуаций не происходит. Более того, даже обернув весь код в методе main() в конструкцию try ... finally ..., то в область finally мы почему-то тоже не попадаем ((( При этом никаких сообщений об ошибках и прочее ни на экран, ни в консоль не выводится.
В итоге единственное что есть в остатке после завершения приложения это все лишь код завершения программы равный &amp;quot;-1&amp;quot;:
&amp;quot;The program '[8792] SampleSmartConsole.vshost.exe: Managed (v4.0.30319)' has exited with code -1 (0xffffffff).&amp;quot;&lt;/p&gt;
&lt;p&gt;На самом деле к такому (код выше) упрощенному варианту кода я дошел естественно от реального кода. При этом в реальном коде, есть рабочий робот, который выполняет подключение к СмартКому, принимает потоки, отправляет заявки и вообще отлично работает и делает все, что от него требуется, но, к сожалению, всего 10 минут, после чего консольная программа схлопывается.&lt;/p&gt;
&lt;p&gt;Самое интересное, что для такого поведения программы (схлопывания) даже не обязательно иметь установленный SmartCOM, в этом удостоверился, проверяя упрощенный код на другом компьютере, где вообще не стоял СмартКом (после установки СмартКом на этот компьютер, поведение не изменилось ).&lt;/p&gt;
&lt;p&gt;Самое обидное, что даже зацепиться не за что в этой проблеме, просмотрел ветки форума по SmartCOM-у тоже ничего подобного не увидел, что еще более странно.&lt;/p&gt;
&lt;p&gt;Версии ПО:
StockSharp - 4.1.1.
SmartCOM   - 2.2.
Windows 7 64 bit (исходные коды скомпилированы под 32-х битную систему)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3280/</id>
    <title type="text">Ыыыы</title>
    <published>2012-12-26T17:47:51Z</published>
    <updated>2012-12-26T17:47:51Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;workingTime
Тип: StockSharp.BusinessEntities.WorkingTime
Информация о режиме работы биржы.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;:)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3279/</id>
    <title type="text">Как оставить заявки в стакане на вечерний клиринг?</title>
    <published>2012-12-26T15:11:02Z</published>
    <updated>2012-12-26T15:11:02Z</updated>
    <author>
      <name>Den</name>
      <uri>https://stocksharp.ru/users/6003/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">&lt;p&gt;Коллеги, кто через плазу торгует!&lt;/p&gt;
&lt;p&gt;Правильно я понимаю, что в стакане на время вечернего клиринга остаются только заявки, выставленные через шлюз?&lt;/p&gt;
&lt;p&gt;А квик просто тупо все автоматически снимает?&lt;/p&gt;
&lt;p&gt;Неужели нужна обязательно plaza II, чтобы заявки не снимались?
Или это не вопрос торговой платформы, а прихоть брокера?&lt;/p&gt;
&lt;p&gt;P.S. про стоп заявки я знаю, но они на спайке не сильно помогут…&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3278/</id>
    <title type="text">Гидра не сохраняет стаканы из Альфа-Директа</title>
    <published>2012-12-25T20:16:55Z</published>
    <updated>2012-12-25T20:16:55Z</updated>
    <author>
      <name>Osmosis</name>
      <uri>https://stocksharp.ru/users/16698/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;p&gt;Гидра не сохраняет почему-то стаканы из Альфа-Директа. Все включено, инструмент в Гидру добавлены, таблица всех сделок закачивается, а стаканы нет. Может должно быть что-то настроено в самой Альфе? В Альфе на данный момент открыты таблица всех сделок по инструменту и его стакан. Никто с проблемой не сталкивался с такой?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3276/</id>
    <title type="text">Как написать личное сообщение?</title>
    <published>2012-12-25T07:19:35Z</published>
    <updated>2012-12-25T07:19:35Z</updated>
    <author>
      <name>roof</name>
      <uri>https://stocksharp.ru/users/16649/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">&lt;p&gt;Как написать личное сообщение участнику форума? Не нахожу нужных кнопок [cursing]&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3275/</id>
    <title type="text">Ошибка Гидра-сервера</title>
    <published>2012-12-24T13:20:28Z</published>
    <updated>2012-12-24T13:20:28Z</updated>
    <author>
      <name>anothar</name>
      <uri>https://stocksharp.ru/users/6089/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;p&gt;Запустил клиента, сервер и получил
19:04:56.676|Error  |Hydra Server|System.MissingMethodException: Method not found: 'StockSharp.Algo.Storages.IMarketDataStorageDrive StockSharp.Algo.Storages.IMarketDataStorage.get_StorageDrive()'.
at StockSharp.Hydra.HydraServer.HydraServerSource.Load()
at StockSharp.Hydra.Worker.WorkerProcess.&amp;lt;Download&amp;gt;b__12(IMarketDataSource source)
19:04:57.687|Error  |Hydra Server|System.MissingMethodException: Method not found: 'StockSharp.Algo.Storages.IMarketDataStorageDrive StockSharp.Algo.Storages.IMarketDataStorage.get_StorageDrive()'.
at StockSharp.Hydra.HydraServer.HydraServerSource.Load()
at StockSharp.Hydra.Worker.WorkerProcess.&amp;lt;Download&amp;gt;b__12(IMarketDataSource source)
19:04:58.668|Error  |Hydra Server|System.MissingMethodException: Method not found: 'StockSharp.Algo.Storages.IMarketDataStorageDrive StockSharp.Algo.Storages.IMarketDataStorage.get_StorageDrive()'.
at StockSharp.Hydra.HydraServer.HydraServerSource.Load()
at StockSharp.Hydra.Worker.WorkerProcess.&amp;lt;Download&amp;gt;b__12(IMarketDataSource source)&lt;/p&gt;
&lt;p&gt;Версия 2 недельной - недельной давности.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3274/</id>
    <title type="text">Тиковые данные из OEC демо</title>
    <published>2012-12-24T08:46:33Z</published>
    <updated>2012-12-24T08:46:33Z</updated>
    <author>
      <name>ruticker</name>
      <uri>https://stocksharp.ru/users/27708/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="OpenECry" />
    <content type="html">&lt;p&gt;На сколько я понял, для подключения к OEC.API нужне отдельный пароль, нежели к самому терминалу, ибо для самого терминала он подходид, а для самплов и &amp;quot;гидры&amp;quot; - нет.
Подскажите где его можно взять, как установить соединение?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3273/</id>
    <title type="text">Ошибки построения стакана</title>
    <published>2012-12-24T06:16:42Z</published>
    <updated>2012-12-24T06:16:42Z</updated>
    <author>
      <name>EugeneP</name>
      <uri>https://stocksharp.ru/users/603/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;pre&gt;&lt;code class="language-csharp"&gt;QuikTrader      | 24.12.2012 12:10:37.749 | Ошибка     | System.InvalidOperationException: Ошибка построения стакана для RIH3@RTS. ---&amp;gt; System.ArgumentException: Элемент с тем же ключом уже был добавлен.
   в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   в System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   в System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   в StockSharp.Quik.QuikTrader.#=qV1bJizWql1tv_UUSGOOjrLfH69ucjN$EvDgpzfAwkx0=.#=qwAVu03f70PvGv2NmDj0UqV626SmM6LRr5ZabpHQrX3s=.#=qDh6Dk7LB9SGgAbG1aRBpug==(IList`1 #=qOF1EeunfkAZjmZSGHm934g==, Func`2 #=qLERt9rtmrX2kmdAcPm2q4w==)
   в #=q8uFRfoNJsfU4W$UpY0s1SP$Gqe8tWIXu4piUrTmBp$_3yNnol7xUbbX3gyogXFF_.#=qg2GqyLE2SHCYlseIz6XwYA==(DdeTable #=qWNKxPL2Jpxg3XirwsAmdVA==, IList`1 #=q9WzmDybFvwlOxceuSNq7Jw==, Action`2 #=q7OXPBKmNFYVPhvlRHQ5OdA==, Action`1 #=q0lYpUC3ZnxZxS5sJJR_VkA==, Boolean #=qHIvG_pCs14eLi$pHTQv9FA==)
   --- Конец трассировки внутреннего стека исключений ---
   в StockSharp.Quik.QuikTrader.#=qV1bJizWql1tv_UUSGOOjrLfH69ucjN$EvDgpzfAwkx0=.#=qwAVu03f70PvGv2NmDj0UqV626SmM6LRr5ZabpHQrX3s=.#=qvTq8R6vK9ETSz_XHBJwPbA==(Exception #=qYPkPUD36_U$t7emTlUty0Q==)
   в #=q8uFRfoNJsfU4W$UpY0s1SP$Gqe8tWIXu4piUrTmBp$_3yNnol7xUbbX3gyogXFF_.#=qg2GqyLE2SHCYlseIz6XwYA==(DdeTable #=qWNKxPL2Jpxg3XirwsAmdVA==, IList`1 #=q9WzmDybFvwlOxceuSNq7Jw==, Action`2 #=q7OXPBKmNFYVPhvlRHQ5OdA==, Action`1 #=q0lYpUC3ZnxZxS5sJJR_VkA==, Boolean #=qHIvG_pCs14eLi$pHTQv9FA==)
   в StockSharp.Quik.QuikTrader.#=qV1bJizWql1tv_UUSGOOjrLfH69ucjN$EvDgpzfAwkx0=.#=qex1dodB4LLmjubDztY2NHQ==(Security #=qGxFPI4TVVm4wVgiofjtVOQ==)
   в StockSharp.Algo.BaseTrader.ProcessSecurityAction(String securityId, Object nativeSecurityId, Action`1 action, Boolean ignoreIfNotExist)
   в StockSharp.Quik.QuikTrader.#=qV1bJizWql1tv_UUSGOOjrLfH69ucjN$EvDgpzfAwkx0=.#=qta8vvXCGjBmWr9OQyfTu8A==()
   в StockSharp.Algo.BaseTrader.ProcessEvents(Action handler)

&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
</feed>