﻿<?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=forum&amp;page=229</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-30T14:31:18Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=229" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/1482/</id>
    <title type="text">Исключение при вводе заявки (Ecng.Trading.Quik.ApiException - WrongSyntax)</title>
    <published>2011-03-29T06:39:10Z</published>
    <updated>2011-03-29T06:39:10Z</updated>
    <author>
      <name>poilka</name>
      <uri>https://stocksharp.ru/users/28519/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Михаил, форумчане, доброе утро.&lt;br /&gt;Разобрался со стратегиями, запустил тест - &lt;br /&gt;при регистрации заявки вылетает ошибка про неправильный синтаксис.&lt;br /&gt;Квик последней версии (5.21), S# версии 3.0.19.&lt;br /&gt;&lt;br /&gt;Вот лог:&lt;br /&gt;SS_01:00:01 09:54:58.8178056 Стратегия запущена.&lt;br /&gt;SS_01:00:01 09:55:39.1501124 Ecng.Trading.Quik.ApiException: Код ошибки WrongSyntax Сообщение ACCOUNT=NC0011100000; CLIENT_CODE=S#; TRANS_ID=35595486; CLASSCODE=QJSIM; SECCODE=LKOH; QUANTITY=1; OPERATION=B; TYPE=L; ACTION=NEW_ORDER; PRICE=2037,6; EXECUTION_CONDITION=PUT_IN_QUEUE;&lt;br /&gt;   в #=qe5yLdIzi$8a3p7QevlfBtdu51_lStqsU7mFOj$YVDVAi699VUV$_PTRsL8c5lXOC.#=qkexMpdeQpL5tlMU7l5x6Aw==(Int32 #=qPWPfx5JrbjpLNX1_Spj$IA==, StringBuilder #=q$kN4v38bzSPqA8WIBKesDw==)&lt;br /&gt;   в #=qoXwOPiKu6rKxfqRbyQH_8kmNOB382r_Z62UoStG__20=.#=qqqjfNu5FDvUnmIHLI7eIpqULYCdQ6s45iJpvRMufTTo=(String #=qMyxjjZn7gcLlgrKmKE6fdw==, OrderStatus&amp;amp; #=qfMzUMVwoA9vTKeRIC2yVBg==, UInt32&amp;amp; #=qx89Qmj8$YdXkVw2g47iBHA==, Int64&amp;amp; #=qru3jL$hLUeCwshCq6a0lcA==, String&amp;amp; #=qJTAyuLuvPwQ9HQzhdHWM2g==)&lt;br /&gt;   в Ecng.Trading.Quik.QuikTrader.#=q54MTj4O0HyGlsuBk4LMgvyLClWnXw07g5l8N_CZjZXo=(Order #=qfB2F85tURLB4YdJcjKMYgg==, TransactionBuilder #=qk_SbqcrTyofJ_NTgcHp8Fg==)&lt;br /&gt;   в Ecng.Trading.Quik.QuikTrader.OnRegisterOrder(Order order)&lt;br /&gt;   в Ecng.Trading.Algo.BaseTrader.RegisterOrder(Order order)&lt;br /&gt;   в Ecng.Trading.Algo.Strategies.Strategy.RegisterOrder(Order order)&lt;br /&gt;   в SampleSMA.SmaStrategy.OnProcess() в C:\S#3\Sources\SampleSMA\SmaStrategy.cs:строка 77&lt;br /&gt;   в Ecng.Trading.Algo.Strategies.Strategy.#=qnMN_PMdUfHysEK$_tfQ8grn_QTjzOIMGPiv$tYCH2Bw=.#=q3rD2zIrUx4ViUbhRH66B2w==()&lt;br /&gt;SS_01:00:01 09:55:39.1501124 Стратегия останавливается.&lt;br /&gt;SS_01:00:01 09:55:40.0841659 Стратегия остановлена.&lt;br /&gt;&lt;br /&gt;Принудительно менял код клиента в _trader на выданный брокером {ClientCode = &amp;quot;OPEN596&amp;quot;} - такая же ошибка.&lt;br /&gt;В чем может быть дело?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1481/</id>
    <title type="text">Protect в событийной модели</title>
    <published>2011-03-28T16:13:50Z</published>
    <updated>2011-03-28T16:13:50Z</updated>
    <author>
      <name>vvt</name>
      <uri>https://stocksharp.ru/users/34/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Взял пример кода из хелпа (событийная модель):&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;When(_order.NewTrades()).&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;Do(this.Protect(_order,&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                t =&amp;gt; new TakeProfitStrategy(t, 150.Points(Security)), // тейк на 150 пунктов&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                t =&amp;gt; new StopLossStrategy(t, 100.Points(Security)))). // стоп на 100 пунктов&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;Activated&amp;lt;Strategy&amp;gt;(s =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;When(s.Stopped()).&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;Do(() =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;   &amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;   &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;/* сработало стоп условие */&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;   &amp;nbsp; &amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;nbsp; &amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;при наступлении события NewTrades выдает следующее:&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;System.InvalidOperationException: Значение стоимости шага цены не инициализировано.&lt;br /&gt;   в Ecng.Trading.BusinessEntities.UnitHelper.GetStepPrice(Unit unit)&lt;br /&gt;   в Ecng.Trading.BusinessEntities.Unit.op_Explicit(Unit unit)&lt;br /&gt;   в Ecng.Trading.BusinessEntities.Unit.CreateResult(Unit u1, Unit u2, Func`3 operation, Func`3 percentOperation)&lt;br /&gt;   в Ecng.Trading.BusinessEntities.Unit.op_Subtraction(Unit u1, Unit u2)&lt;br /&gt;   в Ecng.Trading.Algo.Strategies.StopLossStrategy.GetNewPrice()&lt;br /&gt;   в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()&lt;br /&gt;   в Ecng.Trading.Algo.Strategies.Strategy.&lt;br /&gt;#=qnMN_PMdUfHysEK$_tfQ8grn_QTjzOIMGPiv$tYCH2Bw=.#=q3rD2zIrUx4ViUbhRH66B2w==()&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1480/</id>
    <title type="text">Событийный подход</title>
    <published>2011-03-28T07:06:21Z</published>
    <updated>2011-03-28T07:06:21Z</updated>
    <author>
      <name>poilka</name>
      <uri>https://stocksharp.ru/users/28519/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Доброго всем дня, особенно Михаилу :).&lt;br /&gt;Начал осваивать событийный подход, забуксовал.&lt;br /&gt;&lt;br /&gt;Подскажите, пожалуйста, как правильно запускать стратегию наподобие той,&lt;br /&gt;что приведена в примере (class MyOwnStrategy : ActionStrategy)?&lt;br /&gt;Нужно ли добавлять в нее конструктор и отдельно передавать Security?&lt;br /&gt;&lt;br /&gt;Сейчас запускаю на ФОРТС так:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;_strategy = new MyOwnStrategy() { Volume = 1 };&lt;br /&gt;_manager.Register(_strategy, this.Portfolios.SelectedPortfolio, _rts);&lt;br /&gt;if (_strategy.ProcessState == StrategyProcessStates.Stopped)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;_strategy.Start();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;_strategy.Stop();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Стратегия нормально запускается и останавливается из GUI примера SampleSMA, лог пишется, но сделок не происходит на любом таймфрейме.&lt;br /&gt;&lt;br /&gt;Лог обычно такой:&lt;br /&gt;MOS 20:34:52.0212958 Стратегия запущена.&lt;br /&gt;MOS 20:36:11.3213772 Стратегия останавливается.&lt;br /&gt;MOS 20:36:11.6273947 Стратегия остановлена.&lt;br /&gt;&lt;br /&gt;Событийную стратегию взял из мануала, без изменений, версия 3.0.&lt;br /&gt;Буду признателен за помощь.&lt;br /&gt;&lt;br /&gt;Весь запускающий код, кроме самой стратегии из примера:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;namespace SampleSMA&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System.Collections.Generic;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System.Linq;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System.ComponentModel;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System.Globalization;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System.IO;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System.Threading;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System.Windows;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using System.Windows.Forms;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using MessageBox = System.Windows.MessageBox;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using AmCharts.Windows.Stock;&lt;br /&gt;    using Ecng.Collections;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Common;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.ComponentModel;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Trading.Algo;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Trading.Algo.Candles;&lt;br /&gt;    using Ecng.Trading.Algo.Logging;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Trading.Algo.Reporting;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Trading.Algo.Strategies;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Trading.BusinessEntities;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Trading.Quik;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Trading.Xaml;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;using Ecng.Xaml;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;public partial class MainWindow&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(1);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private QuikTrader _trader;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private MyOwnStrategy _strategy;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private RealTimeStrategyManager _manager;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private bool _isDdeStarted;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private Security _rts;&lt;br /&gt;        public CandleManager _candleManager;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;public MainWindow()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; InitializeComponent();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;// изменяет текущий формат, чтобы нецелое числа интерпритировалось как разделенное точкой.&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; var cci = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name) { NumberFormat = { NumberDecimalSeparator = &amp;quot;.&amp;quot; } };&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;     Thread.CurrentThread.CurrentCulture = cci;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void _orders_OrderSelected(object sender, EventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.CancelOrders.IsEnabled = _orders.SelectedOrders.Count() &amp;gt; 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; protected override void OnClosing(CancelEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (_trader != null)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_manager.Dispose();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (_isDdeStarted)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;StopDde();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_trader.Dispose();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;base.OnClosing(e);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}    &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void FindPath_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;var dlg = new FolderBrowserDialog();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (!this.Path.Text.IsEmpty())&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;dlg.SelectedPath = this.Path.Text;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Path.Text = dlg.SelectedPath;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void Connect_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (_trader == null || !_trader.IsConnected)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (_trader == null)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (this.Path.Text.IsEmpty())&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;MessageBox.Show(this, &amp;quot;Путь к Quik не выбран.&amp;quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;return;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;// создаем шлюз&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_trader = new QuikTrader(this.Path.Text);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;// создаем менеджер стратегий&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_manager = new RealTimeStrategyManager(_trader);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Portfolios.Trader = _trader;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_trader.Connected += () =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;                        _candleManager = new CandleManager(_trader);&lt;br /&gt;&lt;br /&gt;                        _trader.NewSecurities += securities =&amp;gt; this.GuiAsync(() =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;// находим нужную бумагу&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;var rts = securities.FirstOrDefault(s =&amp;gt; s.Code == &amp;quot;RIM1&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (rts != null)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_rts = rts;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.GuiAsync(() =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Start.IsEnabled = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_trader.ConnectionError += ex =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (ex != null)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.GuiAsync(() =&amp;gt; MessageBox.Show(this, ex.ToString()));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.GuiAsync(() =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.ConnectBtn.IsEnabled = false;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.ExportDde.IsEnabled = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Report.IsEnabled = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;};&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_trader.Connect();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_trader.Disconnect();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;       &amp;nbsp; &amp;nbsp;&amp;nbsp;private void OnNewOrder(Order order)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_orders.Orders.Add(order);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.GuiAsync(() =&amp;gt; _chart.Orders.Add(order));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void OnLog(Strategy strategy, StrategyErrorStates errorState, string message)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;// если стратегия вывела не просто сообщение, то вывести на экран.&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (errorState != StrategyErrorStates.None)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.GuiAsync(() =&amp;gt; MessageBox.Show(this, message));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void OnStrategyPropertyChanged(object sender, PropertyChangedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.GuiAsync(() =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Status.Content = _strategy.ProcessState;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.PnL.Content = _strategy.PnLManager.PnL;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Slippage.Content = _strategy.SlippageManager.Slippage;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Position.Content = _strategy.PositionManager.Position;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Latency.Content = _strategy.LatencyManager.Latency;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void StartDde()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_trader.StartExport();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_isDdeStarted = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void StopDde()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_trader.StopExport();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_isDdeStarted = false;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void ExportDde_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (_isDdeStarted)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;StopDde();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;StartDde();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void CancelOrders_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_orders.SelectedOrders.ForEach(_trader.CancelOrder);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;private void Start_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (_strategy == null)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (this.Portfolios.SelectedPortfolio == null)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;MessageBox.Show(this, &amp;quot;Портфель не выбран.&amp;quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;return;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;// создаем стратегию&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_strategy = new MyOwnStrategy() { Volume = 1 };&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_strategy.Log += OnLog;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_strategy.NewOrder += OnNewOrder;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_strategy.PropertyChanged += OnStrategyPropertyChanged;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;// регистрируем стратегию, чтобы она начала обрабатываться&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_manager.Register(_strategy, this.Portfolios.SelectedPortfolio, _rts);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;var fileLogger = new FileStrategyLogger(&amp;quot;{0}_{1:00}_{2:00}.txt&amp;quot;.Put(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day));&lt;br /&gt;                &lt;br /&gt;                fileLogger.Strategies.Add(_strategy);&lt;br /&gt;                &lt;br /&gt;                this.Report.IsEnabled = true;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;            &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (_strategy.ProcessState == StrategyProcessStates.Stopped)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_strategy.Start();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Start.Content = &amp;quot;Хватит&amp;quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_strategy.Stop();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Start.Content = &amp;quot;Понеслась&amp;quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;        &lt;br /&gt;        private void Report_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;var fileName = &amp;quot;report_{0}_{1}.xls&amp;quot;.Put(_strategy.Security.Code, DateTime.Now.ToString(&amp;quot;yyyy_MM_dd_HH_mm&amp;quot;));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;new ExcelStrategyReport(_strategy, System.IO.Path.Combine(Directory.GetCurrentDirectory(), fileName)).Generate();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1479/</id>
    <title type="text">Ошибка при импорте инструментов с Финама</title>
    <published>2011-03-27T20:31:36Z</published>
    <updated>2011-03-27T20:31:36Z</updated>
    <author>
      <name>mantis</name>
      <uri>https://stocksharp.ru/users/28480/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">Возникает ошибка при импорте с Финама валют, сырья, индексов (проверял на USD\RUB, EUR\USD, Золоте, Brent, Light, Hong Kong Index)&lt;br /&gt;Пример ошибки при импорте золота:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;Finam 00:11:27.8750000 Стартовал для 5 инструментов.&lt;br /&gt;Finam 00:11:27.9531250 Загружено 2265 сделок.&lt;br /&gt;Finam 00:11:27.9531250 Первая сделка 18000200 для comex.GC@Finam за 02.01.2011 17:00:02.&lt;br /&gt;Finam 00:11:27.9531250 Последняя сделка 20518300 для comex.GC@Finam за 02.01.2011 23:59:43.&lt;br /&gt;Finam 00:11:28 System.ArgumentException: Инструмент comex.GC@Finam имеет нулевой шаг цены.&lt;br /&gt;Parameter name: security&lt;br /&gt;   at #=qI$AFfqtRkaWsSrk1G77y4YVftKihcZywxov00VALnWESHMbPDR6hSXTmKPOnd_$J..ctor(Security #=q_t_f7DAJxr3yMNYYfzx0Wg==, String #=qWLVUH$orL91fT9AB_4HN9w==, Func`2 #=q_nwOpf$JdlXAgBkOSKEZrg==, Func`2 #=qcNQcSzzVnMPP1IjXNIDq5A==, Func`2 #=qa5ooANemE8UfJF5rha41YQ==)&lt;br /&gt;   at #=qrKR6kWyLe8ObgQHvOuVYRBdNY1eShDKIgufJnSUn6n0JOLES0qvPKuuXWk3NQyuZ..ctor(Security #=qG4MAajhSW0M9Q5AJXypkng==, String #=qSmbuIB5b_KNctzs4MO4e_Q==)&lt;br /&gt;   at Ecng.Trading.Algo.Storages.TradingStorage.#=qH4PbuaYgtvAqqahwDaQJLc60ghyGpLapPXRH03U0Tt0=(Security #=qwmH8_ognY8UX5u2oaE_n5A==)&lt;br /&gt;   at Ecng.Collections.CollectionHelper.SafeAdd&amp;#91;TKey,TValue&amp;#93;(IDictionary`2 dictionary, TKey key, Func`2 handler)&lt;br /&gt;   at Ecng.Trading.Algo.Storages.TradingStorage.GetTradeStorage(Security security)&lt;br /&gt;   at Ecng.Trading.Hydra.Worker.&amp;lt;Download&amp;gt;b__10(IMarketDataSource source) in C:\Projects\StockSharp_3.0.19\Sources\Hydra\Hydra\Worker.cs:line 136&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;настройки финама:&lt;br /&gt;&lt;a href='http://s54.radikal.ru/i143/1103/08/9252cad103cd.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://s54.radikal.ru/i143/1103/08/9252cad103cd.jpg" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1478/</id>
    <title type="text">Обозначения на графике</title>
    <published>2011-03-27T19:06:15Z</published>
    <updated>2011-03-27T19:06:15Z</updated>
    <author>
      <name>foRs</name>
      <uri>https://stocksharp.ru/users/28037/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Добрый день! Подскажите как можно на графике добавить какую-нибудь метку обозначающую вход или выход из позиции. Актуально для теста на истории. Наверно нужно в методе DrawCandles работать?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1477/</id>
    <title type="text">Именования методаданных</title>
    <published>2011-03-27T09:46:59Z</published>
    <updated>2011-03-27T09:46:59Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">Сейчас поймал себя на мысли, что предложенное (возможно мной) раньше стиль именования колонок не очень удобен. Например, общая инфа по инструментам. Называется PlazaXXXCommonColumns. Глазами же я ищу инфу сначала Common, а затем уже что это - фьючерсы или опционы. Другими словами, все наоборот.&lt;br /&gt;&lt;br /&gt;А теперь возьмем PlazaVmXXXColumns. Здесь оказалось для меня удобнее. Я нашел сразу три файла для вариационки, и уже потом нашел, для чего именно (фьюч или опцион).&lt;br /&gt;&lt;br /&gt;Кто за первый, а кто за второй стиль именования? Я это переделаю сам.&lt;br /&gt;&lt;br /&gt;И еще переделаю названия полей в PlazaTableRegistry. Они должны совпадать с названиями PlazaXXXColumns.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1475/</id>
    <title type="text">Начало работы. Исключение в конструкторе QuikTrader</title>
    <published>2011-03-25T12:54:25Z</published>
    <updated>2011-03-25T12:54:25Z</updated>
    <author>
      <name>proton</name>
      <uri>https://stocksharp.ru/users/28372/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Действую по инструкции &lt;a href="http://stocksharp.com/doc/Default.aspx?topic=Stock%23%2fQuik
" title="http://stocksharp.com/doc/Default.aspx?topic=Stock%23%2fQuik
"&gt;http://stocksharp.com/do...x?topic=Stock%23%2fQuik
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;При выполении &lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;var trader = new QuikTrader(@&amp;quot;C:\quik\info.exe&amp;quot;);&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Получаю исключение.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;The type initializer for &amp;#39;Ecng.Trading.Quik.QuikTrader&amp;#39; threw an exception.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;win xp, ms vs 2010</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1474/</id>
    <title type="text">AlorTrader - исходники</title>
    <published>2011-03-24T19:13:21Z</published>
    <updated>2011-03-24T19:13:21Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Alor" />
    <content type="html">Выкладываю исходники недоделанного AlorTrader. Степень законченности - 60-70%. Кто хочет доделать, пишите сюда. Дам доступ к исходникам.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1473/</id>
    <title type="text">Посоветуйте книжку по С#</title>
    <published>2011-03-24T18:25:34Z</published>
    <updated>2011-03-24T18:25:34Z</updated>
    <author>
      <name>Garic</name>
      <uri>https://stocksharp.ru/users/809/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Около 8 лет программировал на Java-образном языке (Axapta).&lt;br /&gt;На С# писать приходилось как-то раз, но не углублялся - писал кое-как.&lt;br /&gt;&lt;br /&gt;Т.е. нужно что-то не совсем для чайника, но и не талмуд на 1000 страниц ))</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1472/</id>
    <title type="text">Память.</title>
    <published>2011-03-24T14:23:38Z</published>
    <updated>2011-03-24T14:23:38Z</updated>
    <author>
      <name>Serg</name>
      <uri>https://stocksharp.ru/users/484/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Знает ли кто какие методики и варианты есть по оптимизации приложений на .net?&lt;br /&gt;Что посоветуете почитать куда посмотреть? Както много памяти кушаеться при исполнении.&lt;br /&gt;Столкнулся тут недавно с програмкой от фсфр, называется она анкета 2,16 для отчетности ПУ. Написана на нете с использованием впф. Я был сражен наповал - в среднем 500мб кушает. Этож кошмар.&lt;br /&gt;Сразу решил взглянуть робота самописанного так он 100мб ест.&lt;br /&gt;Вобщем разволновал меня этот вопрос. Память конечно дешева, но как то все это некрасиво с точки зрения минимализма))</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1471/</id>
    <title type="text">Order.Cancel();</title>
    <published>2011-03-24T09:45:09Z</published>
    <updated>2011-03-24T09:45:09Z</updated>
    <author>
      <name>dave</name>
      <uri>https://stocksharp.ru/users/140/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="wealth-lab" />
    <content type="html">Ответьте пожалуйста:&lt;br /&gt;&lt;br /&gt;При выполнении в OQ команды&lt;br /&gt;if(order!=null)if(order.isDone!=true)order.Cancel();&lt;br /&gt;в вашем адаптере возникает необработанное исключение.&lt;br /&gt;есть вероятность что перед этим заявка была частично исполнена.&lt;br /&gt;В чем дело ??&lt;br /&gt;&lt;br /&gt;System.MissingMethodException: Method not found: &amp;#39;Void OpenQuant.API.Plugins.UserProvider.EmitCancelReject(OpenQuant.API.Order, System.String)&amp;#39;.&lt;br /&gt;   at QuikAdapter.QuikMarketDataProvider.Cancel(Order order)&lt;br /&gt;   at OpenQuant.API.Plugins.SQProvider.SendOrderCancelRequest(OrderCancelRequest request)&lt;br /&gt;   at SmartQuant.Execution.OrderManager.eIfUM2GQx(SingleOrder )&lt;br /&gt;   at SmartQuant.Execution.SingleOrder.Cancel()&lt;br /&gt;   at OpenQuant.API.Order.Cancel()&lt;br /&gt;   at MyStrategy.OnBar(Bar bar) in c:\Users\Администратор\Documents\OpenQuant\Projects\Swing\code.cs:line 608&lt;br /&gt;   at OpenQuant.Trading.StrategyRunner.OnNewBar(Instrument instrument, Bar bar)&lt;br /&gt;   at OpenQuant.Trading.StrategyRunner.SetNewBarSlice(Int64 barSize)&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1470/</id>
    <title type="text">Эффективное создание объектов Security</title>
    <published>2011-03-23T22:14:08Z</published>
    <updated>2011-03-23T22:14:08Z</updated>
    <author>
      <name>igork</name>
      <uri>https://stocksharp.ru/users/6303/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Собственно вопрос в том, что инструментов очень много, а нужно 3-4 штуки. Судя по примерам, для нахождения нужного объекта Security применяется следующие подходы. &lt;br /&gt;&lt;br /&gt;1. На примере SampleSmartConsole. Вначале просим у пользователя ввести название инструмента (тот же LKOH). Затем подписываемся на NewSecurities &lt;br /&gt;&lt;br /&gt;trader.NewSecurities += securities =&amp;gt; &lt;br /&gt;{ if (_lkoh == null)&lt;br /&gt;      _lkoh = securities.FirstOrDefault(sec....);&lt;br /&gt;      if (_lkoh != null) &lt;br /&gt;          нашли объект. &lt;br /&gt;&lt;br /&gt;2. В SampleSmart применяется фактически та же технология, и вся коллекция сохраняется в памяти формы SecuritiesWindow. В том случае, когда мы ищем какой-то инструмент, то объект находим в коллекции. &lt;br /&gt;&lt;br /&gt;Данный подход кажется не совсем эффективным. Если я в момент подписки на инструменты еще не имею набора инструментов либо буду менять их в ходе работы, то как быть? Я не хочу хранить все 15 000 инструментов в памяти. Извиняюсь, если невнимательно смотрел примеры. Хотелось бы, что бы была возможность в любой момент времени сделать что-то подобное&lt;br /&gt;&lt;br /&gt;_lkoh = trader.GetSecurity(&amp;quot;LKOH@RTS&amp;quot;, optional &amp;quot;PORTFOLIO_NAME&amp;quot;);&lt;br /&gt;&lt;br /&gt;и получить необходимый объект для дальнейшего использования при создании ордеров и т.д.. &lt;br /&gt;&lt;br /&gt;Как обходной вариант, в данный момент рассматриваю подписку на событие SecurityChanged(). Через это событие идет непрерывная трансляция изменений по инструментам, и можно выловить необходимый объект (за исключением редкоторгуемых). Этот подход в общем виде ничем не лучше предыдщего. Как сделать красиво?&lt;br /&gt;&lt;br /&gt;И еще просьба объяснить последовательность работы с инструментами (Security). Подписываясь на SecurityChanged(), мы получаем возможность проверять коллекцию securities на нужный нам инструмент, типа if (securities.contains(_lkoh)).... . Если трансляция изменений уже идет, то зачем тогда &lt;br /&gt;&lt;br /&gt;trader.RegisterSecurity(_lkoh)? &lt;br /&gt;&lt;br /&gt;Спасибо. </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1469/</id>
    <title type="text">[3.0.19] Неправильно считается Position в PositionManager</title>
    <published>2011-03-23T10:36:54Z</published>
    <updated>2011-03-23T10:36:54Z</updated>
    <author>
      <name>IvanK</name>
      <uri>https://stocksharp.ru/users/6531/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Здравствуйте.&lt;br /&gt;&lt;br /&gt;При переходе с версии 3.0.15 на 3.0.19 у меня стала неправильно считаться текущая позиция (_strategy.PositionManager.Position).&lt;br /&gt;&lt;br /&gt;Более подробное описание проблемы:&lt;br /&gt;&lt;br /&gt;Я написал примитивное приложение для тестирования стратегии на исторических данных (скопировал код из примеров и документации). &lt;br /&gt;&lt;br /&gt;При запуске этого кода с использованием Stock# 3.0.15 выражение _strategy.PositionManager.Position возвращало текущую позицию, например -1 или 0 или 1 (SmaStrategy, все сделки с Volume=1).&lt;br /&gt;&lt;br /&gt;Сейчас, при переходе на Stock# 3.0.19 мое то же самое примитивное приложение выдает вместо текущей позиции общее количество сделок (все сделки с Volume=1).&lt;br /&gt;&lt;br /&gt;Что происходит на версиях 3.0.16, 3.0.17, 3.0.18 не знаю, не проверял.&lt;br /&gt;&lt;br /&gt;Из-за этого пока не могу использовать Stock# 3.0.19, так не хочется самостоятельно реализовывать параллельный самописный механизм контроля текущей позиции. Это же будет код на выброс.&lt;br /&gt;&lt;br /&gt;Иван К.&lt;br /&gt;&lt;br /&gt;UPD:&lt;br /&gt;Проверил в стандартном примере SampleHistoryTesting, прилагающемся к библиотеке. Тот же результат.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1468/</id>
    <title type="text">Order.Balance после снятия заявки</title>
    <published>2011-03-23T09:48:35Z</published>
    <updated>2011-03-23T09:48:35Z</updated>
    <author>
      <name>a.dobryn</name>
      <uri>https://stocksharp.ru/users/28111/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Нужно получить нереализованный объем заявки после ее снятия. Order.Balance показывает полный объем, как узнать именно нереализованный?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1467/</id>
    <title type="text">Ошибка: WrongSyntax. При регистрации Тэйк-профита</title>
    <published>2011-03-23T08:13:19Z</published>
    <updated>2011-03-23T08:13:19Z</updated>
    <author>
      <name>VsevolodG</name>
      <uri>https://stocksharp.ru/users/1525/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Ни с того ни с сего начала появляться ошибка при регистрации тэйк-профита&lt;br /&gt;&lt;br /&gt;Message:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;Код ошибки WrongSyntax Сообщение &lt;br /&gt;ACCOUNT=NL0011100043; &lt;br /&gt;CLIENT_CODE=S#; &lt;br /&gt;TRANS_ID=39362527; &lt;br /&gt;CLASSCODE=QJSIM; &lt;br /&gt;SECCODE=LKOH; &lt;br /&gt;QUANTITY=1; &lt;br /&gt;OPERATION=B; &lt;br /&gt;ACTION=NEW_STOP_ORDER; &lt;br /&gt;STOPPRICE=2014,535; &lt;br /&gt;OFFSET=1; &lt;br /&gt;OFFSET_UNITS=PRICE_UNITS; &lt;br /&gt;SPREAD=1; &lt;br /&gt;SPREAD_UNITS=PRICE_UNITS; &lt;br /&gt;STOP_ORDER_KIND=TAKE_PROFIT_STOP_ORDER;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;StackTrace:&lt;br /&gt;  &lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt; в #=qhU_HiYiSh_oF65WXskCOgpUMgOCtzs2dId5cN22xqOPGyC55soAndVJh3uAp7AOF.#=qDzR$gjcurAcvaCLqvYgVKg==(Int32 #=q_35a$rnh0yvYWdEi4z12zw==, StringBuilder #=qGj9taV1UkaQh_JYih4d64w==)&lt;br /&gt;   в #=qdzCukHLvO8aXNypcYUzYmA7fq5ItKo93xxZhdiR8GZY=.#=qWQ6uAvtsEt7sV4Ga2wQuOTOAucnFP1ye3WDttH_ovsU=(String #=qpG5Yhr2NerTH8fca7fqkSQ==, OrderStatus&amp;amp; #=q1S0ekwQJTaXXg6aodaLs0w==, UInt32&amp;amp; #=qoTX$9zAp_MtmcDcGSiGhGA==, Int64&amp;amp; #=qxtChma1B6uWAOpBGo$0LhQ==, String&amp;amp; #=qoS3lOA1Ghi9_hJCbRwVbvg==)&lt;br /&gt;   в Ecng.Trading.Quik.QuikTrader.#=qvAIqROxsHIdJliBiZL7hk5SA$IKBPnfdUTCWHOh2tYo=(Order #=qSuQ7McRdw_KDpMiq$wEifw==, TransactionBuilder #=qQf66UOkk5HY5u9mYQgF24Q==)&lt;br /&gt;   в Ecng.Trading.Quik.QuikTrader.OnRegisterOrder(Order order)&lt;br /&gt;   в Ecng.Trading.Algo.BaseTrader.RegisterOrder(Order order)&lt;br /&gt;   в TradeRobot.Strategy_1.RegisterTakeProfit(OrderDirections Direction, Double price) в D:\Projects\TradeRobot\TradeRobot\Strategy_1.cs:строка 330&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1466/</id>
    <title type="text">Некорректный вывод стаканов в Гидре</title>
    <published>2011-03-22T20:38:02Z</published>
    <updated>2011-03-22T20:38:02Z</updated>
    <author>
      <name>chudokos</name>
      <uri>https://stocksharp.ru/users/28654/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Добрый день, Михаил.&lt;br /&gt;Настроил Гидру - работает со сделками из Финама корректно. С РТС в справочник тянет только инструменты 2010 года.&lt;br /&gt;Из стаканов Квика данные пишутся - вроде бы все хорошо, но когда открываю стакан - в колонке &amp;quot;покупка&amp;quot; и &amp;quot;цена&amp;quot; пусто, а в &amp;quot;продаже&amp;quot; отображаются значения цены. Причем, может так и нужно, но я думал что непосредственно в самой базе есть таблица, где хранятся данные стакана, но таковой не нашел - заполенны только спрвачники. &lt;br /&gt;Возможно не правильно установил Гидру, но тогда наверное она бы вообще не работала? &lt;br /&gt;  &lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1465/</id>
    <title type="text">3.1 фиче реквест: Multi Security Strategy</title>
    <published>2011-03-22T15:49:29Z</published>
    <updated>2011-03-22T15:49:29Z</updated>
    <author>
      <name>pyhta4og</name>
      <uri>https://stocksharp.ru/users/497/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Пишу сюда пожелания к будущим версиям S#.&lt;br /&gt;&lt;br /&gt;Следующее пожелание вызвано попыткой написать что-то типа PairTrading&lt;br /&gt;&lt;br /&gt;MultiSecurityStrategy&lt;br /&gt;============================&lt;br /&gt;&lt;br /&gt;Редизайн Strategy для поддержки нескольких Security в одной Strategy.&lt;br /&gt;Сейчас у Strategy фиксирована одна Security, один Portfolio. Методы BuyAt()/SellAt() привязаны к этой Security. &lt;br /&gt;&lt;br /&gt;PositionManager трекает ровно одну Security.&lt;br /&gt;&lt;br /&gt;Это не означает что стратегию работающую по нескольким инструментам нельзя сделать. Достаточно генерировать Order и руками выставлять в нем Security, Portfolio. Но позиции тоже придется мониторить руками.&lt;br /&gt;&lt;br /&gt;Что хочется. Класс PositionManager, трекающий отображение (Security,Portfolio)-&amp;gt;Position&lt;br /&gt;&lt;br /&gt;Как я понимаю в самом BaseTrader так и сделано. Хочу, чтобы в PositionManager тоже было свойство Positions, элементы которого Position = (Portfolio,Security,CurrentValue)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C учетом того что стратегия одну Security скорее всего будет на одном Portfolio торговать, методы Strategy.BuyAt(), SellAt() в идеале должны принимать аргумент Security, находить для него Portfolio где эта Security торгуется (первый попавшийся Portfolio, если надо - потом его можно переопределить).&lt;br /&gt;&lt;br /&gt;Понятно, что для этого надо по Security подходящий Portfolio искать (типа для LKM1@RTS это -RF- счет в SmartCOM, для LKOH@EQBR это -MS- счет, для РТС-Стандарта возможно третий счет)&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1464/</id>
    <title type="text">[3.0.18] SmartCom Security.LastTrade, Security.BestBid, Security.BestAsk не обновляются</title>
    <published>2011-03-22T11:21:21Z</published>
    <updated>2011-03-22T11:21:21Z</updated>
    <author>
      <name>pyhta4og</name>
      <uri>https://stocksharp.ru/users/497/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">В HistoryTrader &lt;br /&gt;Security .LastTrade, .BestBid, .BestAsk к моменту Strategy.OnProcess обновляются последними значениями.&lt;br /&gt;В SmartTrader этого не происходит&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1463/</id>
    <title type="text">SmartCOM Шаг цены ММВБ</title>
    <published>2011-03-22T10:39:45Z</published>
    <updated>2011-03-22T10:39:45Z</updated>
    <author>
      <name>pyhta4og</name>
      <uri>https://stocksharp.ru/users/497/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">SmartDemo&lt;br /&gt;показывает цену LKOH 1965.4, в стакане вроде тоже шаг цен 0.1 рубля&lt;br /&gt;&lt;br /&gt;В объекте Security для LKOH@EQBR через NewSecurities MinStepSize=1 и MinStepPrice=1.&lt;br /&gt;&lt;br /&gt;Вроде MinStepSize и MinStepPrice должны быть 0.1 или я что-то путаю?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1462/</id>
    <title type="text">Две (и более) программы, работающие одновременно через SmartCOM</title>
    <published>2011-03-22T09:54:47Z</published>
    <updated>2011-03-22T09:54:47Z</updated>
    <author>
      <name>Vadimus</name>
      <uri>https://stocksharp.ru/users/99/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Привет, всем! Решил пополнить ряды писателей на S# ;)&lt;br /&gt;&lt;br /&gt;Такая ситуация. &lt;br /&gt;Использую стороннюю программу, работающую через SmartCOM 2.0.&lt;br /&gt;Нужно одновременно запускать своё ПО, которое будет тоже использовать SmartCOM.&lt;br /&gt;Возможно ли такое?&lt;br /&gt;&lt;br /&gt;В поддержке SmartCOM сказали, что нельзя, т.к. поток данных один и события будут некорректно обрабатываться. Предложили пускать одну из программ под виртуальной машиной, но мне такой подход не нравится!&lt;br /&gt;&lt;br /&gt;P.S. извините за невнимательность, если эта тема уже поднималась</content>
  </entry>
</feed>