﻿<?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=34</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-19T23:51:33Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=34" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/9095/</id>
    <title type="text">[ТехПоддержка] Библиотека DevExpress.Pdf.v17.2.Core</title>
    <published>2018-02-05T23:09:07Z</published>
    <updated>2018-02-07T09:42:17Z</updated>
    <author>
      <name>JaguarFX</name>
      <uri>https://stocksharp.ru/users/49779/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый вечер! &lt;br /&gt;&lt;br /&gt;При попытке запуска примера SampleMultiConnector на VS2017-Enterprise, получаю ошибку вида:&lt;br /&gt;Message	&amp;quot;Не удалось загрузить файл или сборку \&amp;quot;DevExpress.Pdf.v17.2.Core, Version=17.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a\&amp;quot; либо одну из их зависимостей. Не удается найти указанный файл.&amp;quot;	string&lt;br /&gt;См. приложенный скрин-шот.&lt;br /&gt;&lt;br /&gt;При этом данная библиотека отсутствует в стандартном наборе DevExpress-библиотек, к-рые прилагаются к S#.API.&lt;br /&gt;Прошу вас прислать мне данную библиотеку на регистрационую почту, и &amp;quot;довложить&amp;quot; ее в новый билд S#.API.&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9100/</id>
    <title type="text">Quick Lua</title>
    <published>2018-02-06T18:09:15Z</published>
    <updated>2018-02-06T18:09:15Z</updated>
    <author>
      <name>Gii</name>
      <uri>https://stocksharp.ru/users/5912/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день!&lt;br /&gt;Может кто нибудь знает, как получить дополнительные параметры Security,  например количество Lot, через соединнение Quick Lua.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9097/</id>
    <title type="text">Эдвард, криптобиржи, ошибка. В чем ошибка?</title>
    <published>2018-02-06T11:39:16Z</published>
    <updated>2018-02-06T11:39:16Z</updated>
    <author>
      <name>grigorovsv</name>
      <uri>https://stocksharp.ru/users/99895/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">11:36:46.005|Error  |EdwardCrypto|System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.&lt;br /&gt;   в EdwardCrypto.EdwardPropertiesPanel.AddPairBtn_OnClick(Object sender, RoutedEventArgs e)&lt;br /&gt;   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)&lt;br /&gt;   в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)&lt;br /&gt;   в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)&lt;br /&gt;   в System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)&lt;br /&gt;   в System.Windows.Controls.Primitives.ButtonBase.OnClick()&lt;br /&gt;   в System.Windows.Controls.Button.OnClick()&lt;br /&gt;   в DevExpress.Xpf.Core.SimpleButton.OnClick()&lt;br /&gt;   в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)&lt;br /&gt;   в DevExpress.Xpf.Core.SimpleButton.OnMouseLeftButtonUp(MouseButtonEventArgs e)&lt;br /&gt;   в System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)&lt;br /&gt;   в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)&lt;br /&gt;   в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)&lt;br /&gt;   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)&lt;br /&gt;   в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)&lt;br /&gt;   в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)&lt;br /&gt;   в System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)&lt;br /&gt;   в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)&lt;br /&gt;   в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)&lt;br /&gt;   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)&lt;br /&gt;   в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)&lt;br /&gt;   в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)&lt;br /&gt;   в System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)&lt;br /&gt;   в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)&lt;br /&gt;   в System.Windows.Input.InputManager.ProcessStagingArea()&lt;br /&gt;   в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)&lt;br /&gt;   в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)&lt;br /&gt;   в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)&lt;br /&gt;   в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean&amp;amp; handled)&lt;br /&gt;   в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp;amp; handled)&lt;br /&gt;   в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp;amp; handled)&lt;br /&gt;   в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)&lt;br /&gt;   в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)&lt;br /&gt;   в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8969/</id>
    <title type="text">Как настроить точность отображение цифр на свечном графике?</title>
    <published>2017-12-29T12:03:06Z</published>
    <updated>2018-01-31T15:25:43Z</updated>
    <author>
      <name>Maxxxim</name>
      <uri>https://stocksharp.ru/users/99659/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">С Наступающим всех! Искал контрол свечного графика и наткнулся на ваши библиотеки. Вопрос собственно в названии топика: как настроить точность отображения цифр на свечном графике? Я имею ввиду цифры на всплывающих нотациях и других, для наглядности прикрепляю скрины где отмечены данные, отображение которых нужно изменить.&lt;br /&gt;И ещё вопрос по техподдержке: я оплатил базовую, это где-то должно отображаться, чтобы я мог следить когда кончается подписка?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2699/</id>
    <title type="text">Тестирование стратегий в рамках S# на длительной истории, при отсутствии тиков ?</title>
    <published>2012-05-17T18:02:22Z</published>
    <updated>2018-01-30T03:23:54Z</updated>
    <author>
      <name>fxDio</name>
      <uri>https://stocksharp.ru/users/5931/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Уважаемые разработчики StockSharp!&lt;br /&gt;&lt;br /&gt;Длительное время для написания и тестирования стратегий использовал TradeStation с его плюсами и минусами, и в итоге все программистские навыки ограничились его встроенным языком. Постоянно сталкивался с проблемой невозможности написания и тестирования более сложных алгоритмов. В принципе, в TS есть возможность через написание DLL усложнять свои алгоритмы, но для этого надо было для начала научиться программированию на &amp;quot;традиционных языках&amp;quot; типа C++, но все как-то не успевал, не хотелось отвлекаться надолго от самих алгоритмов стратегий.&lt;br /&gt;Посему, когда нашел на пауке упоминания об S#, зашел на сайт и вник в содержимое, то сразу понял, что потратив относительно небольшую сумму на обучение, смогу получить 3 в одном - получу навыки программирования на современном языке - C#, эти навыки будут еще узко-направленны в редкой прикладной области - программирование роботов, да еще и познакомлюсь поближе с готовой библиотекой, заточенной под мои потребности тестирования стратегий.&lt;br /&gt;Курсы заканчиваются, и я более чем доволен результатом и полученными знаниями.&lt;br /&gt;Единственная для меня проблема, связанная с библиотекой S#, заключается в следующем:&lt;br /&gt;&lt;br /&gt;Я разрабатываю в основном стратегии, связанные с форексом. Во всех платформах, которые я использовал для написания стратегий или с которыми знаком, в алгоритмах используется достаточно похожий набор ордеров - Market, Limit, Stop. Все известные мне платформы достаточно похожи в тестировании алгоритмов, основанных на барах (свечках). И хотя они и позволяют использовать тики, как основу истории, с историей, основанной на TimeFrame барах все работают похоже и без проблем.&lt;br /&gt;В ходе курсов, я понял, что S# больше все же направлена на работу с тиками и стаканами, что позволяет очень точно эмулировать действие стратегии в реальном рынке на реальных данных, а также получать результаты работы стратегии на исторических данных, максимально приближенные к реальным. &lt;br /&gt;Но &lt;u&gt;такой подход - опора в расчетах стратегии на тиковую историю, фактически, не позволяет тестировать алгоритмы, для расчета которых нужна история за несколько месяцев или лет, т.е., это те алгоритмы, которыми я в основном и занимался&lt;/u&gt;. Конечно, я успел достаточно поверхностно познакомиться с библиотекой, и, возможно, ее и можно приспособить к написанию и расчету алгоритмов за длительную историю, но для этого придется искать ухищрения и обходные маневры. Артем в качестве варианта предложил тестировать стратегии в WealthLab, a для реальной торговли уже создавать робот с этим алгоритмом на S#.&lt;br /&gt;Возможно, и придется использовать этот вариант, но для этого придется знакомиться с WealthLab  и вникать в его возможности. &lt;br /&gt;Но уж о&lt;u&gt;чень была красивой надежда, научиться программировать на C# и писать и тестировать стратегии в рамках одной библиотеки - S#, не подвязываясь к другим программам&lt;/u&gt;. Вот и возникли вопросы, на которые ответить могут непосредственно разработчики StockSharp:&lt;br /&gt;&lt;em&gt;1. Может быть у разработчиков StockSharp есть в планах добавить в свою библиотеку недостающую функциональность - возможность тестирования стратегий с использованием истории, сохраненной в отличных от тиков TimeFrame? Может быть, что-то подобное есть уже StockSharpStudio?&lt;/em&gt;&lt;br /&gt;&lt;em&gt;2. Если сейчас проверка выполнения ордеров при тестировании стратегий на истории производится на тиковой основе, очень ли сложно создать эмулятор, который бы при отсутствии тиковой истории (только баров различных TF) эмулировал бы ордера типа: &lt;/em&gt;&lt;br /&gt;&lt;span class="highlight"&gt;Buy Next Bar at Stop OrderLevel&lt;br /&gt;Buy Next Bar at Limit OrderLevel&lt;br /&gt;Buy this Bar at Close&lt;/span&gt;&lt;br /&gt;На первый взгляд (ИМХО), создание эмулятора стакана на основе только тиков, вряд ли алгоритмически сложнее, чем эмуляция поведения тиков внутри существующего в истории бара.&lt;br /&gt;Может быть и тиковой эмуляции не требуется, достаточно просто проверять достигнута ли цена ордера на текущем баре и этот текущий бар воспринимать, как отдельный некий усложненный trade, только он уже будет не в виде точки (TickPrice), a в виде отрезка [Low,High]. И если текущий алгоритм при тестировании стратегии на исторических данных с использованием тиков для ордера:&lt;br /&gt;&lt;span class="highlight"&gt;    Buy Next Bar at Limit OrderLevel&lt;/span&gt;&lt;br /&gt;делает проверку типа:&lt;br /&gt;&lt;span class="highlight"&gt;    if TickPrice &amp;lt;= OrderLevel then Order = Done&lt;/span&gt;&lt;br /&gt;то, если в качестве Trade использовать не тики, а TF_bar, то при том же самом ордере производилась бы проверка типа:&lt;br /&gt;&lt;span class="highlight"&gt;     if OrderLevel inside TF_bar then Order = Done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Т.е. можно попробовать использовать каждый TF_bar, как некая разновидность trade, только не в виде точки, а в виде отрезка, с несколько большим количеством параметров.&lt;br /&gt;На первый взгляд, для возможности тестирования стратегий при наличии только TF-истории, можно создать еще один вид эмулятора к 3-4 существующим на текущий момент.&lt;br /&gt;&lt;br /&gt;Понятно, что то, что мне (ИМХО) кажется не очень сложным, с точки зрения программирования может оказаться нетривиальным. Но и плюсов, на мой взгляд, от такой дополнительной фичи немало:&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;Нереальность тестирования алгоритмов (основанных нa анализе Candles) на большом периоде времени (месяцы-годы)&lt;/b&gt; из-за огромных временных затрат, связанных с преобразованием тиков в свечки, &lt;b&gt;исчезает&lt;/b&gt;.&lt;br /&gt;2. Частая невозможность достать тиковую историю для тестирования стратегий, которые основаны на TimeFrame Candles, не будет больше проблемой, так как &lt;b&gt;интрадейную историю найти намного проще&lt;/b&gt;.&lt;br /&gt;3. При наличии очень больших плюсов у S# относительно других платформ, позволяющих создавать и тестировать алгоритмы, текущий недостаток S# (IMHO, для меня уж точно) будет устранен, а значит &lt;b&gt;для той доли разработчиков, которые в своих алгоритмах используют тестирование на большом промежутке истории, не придется изыскивать для подобных тестов другие программные комплексы.&lt;/b&gt;&lt;br /&gt;4. Понятно, что одним из самых главных плюсов S# является реалистичность и точность результатов тестирования стратегий, достигаемое за счет использования тиков. И основная направленность S# в начале ее создания, судя по всему (ИМХО), была на биржевую торговлю и удобство создания роботов именно для биржевой торговли. Но к&lt;b&gt;оли уже проделана такая гигантская работа, может быть имеет смысл внесением небольших дополнений в библиотеку захватить и другой сегмент разработчиков стратегий, алгоритмы которых заточены больше на работу с теханализом на больших промежутках времени?&lt;/b&gt; Относительно уже проделанной работы по созданию библиотеки, это не потребует (ИМХО) больших временных/трудозатрат.&lt;br /&gt;А что касается достоверности полученных в процессе тестирования результатов, так п&lt;b&gt;огрешность и неточность вычислений&lt;/b&gt;, возникающие при переходе от тиков к TF-барам, &lt;b&gt;очень часто менее важны, чем время вычисления&lt;/b&gt;. И разработчик сам волен принимать решение - что он выбирает - точность результатов на тиках, либо потеря точности, при повышении на порядок скорости вычисления, при использовании TF-баров. В конце концов, если стратегия плохая или хорошая, то по результату, даже с погрешностью, это обычно и так понятно.&lt;br /&gt;&lt;br /&gt;И отдельный вопрос по форексу. &lt;br /&gt;&lt;u&gt;&lt;em&gt;Нет ли в планах или не рассматривалась  разработчиками идея создания адаптера под MetaTrader&lt;/em&gt;&lt;/u&gt;, который очень популярен для написания роботов для форекса?&lt;br /&gt;По мне, так это немалый сегмент рынка, который мог бы заинтересоваться в использовании S#.&lt;br /&gt;&lt;br /&gt;Еще раз уточню, весь мой немалый пост связан с тем, что на основе моих познаний по S#, которые я смог получить за время знакомства с ним, я сделал вывод, что &lt;u&gt;в текущем виде S# не позволит мне тестировать мои стратегии, из-за того, что они в своих идеях требуют для себя историю за длительные периоды времени и используют TF = 5,60...1440 min&lt;/u&gt;, и, даже если я найду тиковую историю, то тестирование будет занимать нереальное время, с существующую у меня интрадейную историю я не могу использовать в текущей версии S#  для тестирования стратегий.&lt;br /&gt;Если мои посылы и выводы неправильные, и я просто плохо разобрался с S# - я буду только рад.   Тогда поправьте меня плз, что я неправильно увидел в библиотеке.&lt;br /&gt;&lt;br /&gt;Извиняюсь, что очень многа букф[blush] </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9050/</id>
    <title type="text">Невозможно изменить значение для свечи</title>
    <published>2018-01-28T01:06:08Z</published>
    <updated>2018-01-28T01:06:08Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.ru/users/98279/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день! Вот такой код:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_228a0a15e30b47cf96b14422365b5950');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_228a0a15e30b47cf96b14422365b5950' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Security;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using Ecng.Common;&lt;br /&gt;using StockSharp.Algo;&lt;br /&gt;using StockSharp.Algo.Candles;&lt;br /&gt;using StockSharp.BusinessEntities;&lt;br /&gt;using StockSharp.Xaml.Charting;&lt;br /&gt;using StockSharp.Quik;&lt;br /&gt;using Ecng.Xaml;&lt;br /&gt;using StockSharp.Messages;&lt;br /&gt;using System.Linq;&lt;br /&gt;&lt;br /&gt;namespace ShowChart&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Логика взаимодействия для MainWindow.xaml&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public partial class MainWindow : Window&lt;br /&gt;    {&lt;br /&gt;        private QuikTrader _trader;&lt;br /&gt;        public static CandleManager CandleManager { get; private set; }&lt;br /&gt;        public static CandleSeries Series { get; private set; }&lt;br /&gt;        public CandleSeries CandleSeries { get; private set; }&lt;br /&gt;        public ChartArea Area { get; set; }&lt;br /&gt;        public bool IsRealtiem { get; set; }&lt;br /&gt;        public ChartCandleElement ChartCandleElement { get; private set; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        public MainWindow()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            Loaded += MainWindow_Loaded;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void MainWindow_Loaded(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            _trader = new QuikTrader()&lt;br /&gt;            {&lt;br /&gt;                LuaLogin = &amp;quot;Quik&amp;quot;,&lt;br /&gt;                LuaPassword = &amp;quot;Quik&amp;quot;.To&amp;lt;SecureString&amp;gt;(),&lt;br /&gt;                LuaFixServerAddress = &amp;quot;127.0.0.1:5001&amp;quot;.To&amp;lt;EndPoint&amp;gt;(),&lt;br /&gt;            };&lt;br /&gt;            CandleManager = new CandleManager(_trader);&lt;br /&gt;&lt;br /&gt;            _trader.NewSecurity += security =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                if (security.Id == &amp;quot;SBER@QJSIM&amp;quot;)&lt;br /&gt;                {&lt;br /&gt;                    CandleSeries = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(1));&lt;br /&gt;                    this.GuiAsync(InitCart);&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;            };&lt;br /&gt;            _trader.Connect();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void InitCart()&lt;br /&gt;        {&lt;br /&gt;            Chart.ClearAreas();&lt;br /&gt;&lt;br /&gt;            Area = new ChartArea();&lt;br /&gt;            var yAxis = Area.YAxises.First();&lt;br /&gt;            yAxis.AutoRange = true;&lt;br /&gt;            Chart.IsAutoScroll = true;&lt;br /&gt;            Chart.ShowOverview = true;&lt;br /&gt;            Chart.AddArea(Area);&lt;br /&gt;&lt;br /&gt;            ChartCandleElement = new ChartCandleElement()&lt;br /&gt;            {&lt;br /&gt;                DownFillColor = Brushes.DarkRed.Color,&lt;br /&gt;                UpFillColor = Brushes.DarkGreen.Color,&lt;br /&gt;                DownBorderColor = Brushes.Red.Color,&lt;br /&gt;                UpBorderColor = Brushes.Green.Color,&lt;br /&gt;            };&lt;br /&gt;            Chart.AddElement(Area, ChartCandleElement, CandleSeries);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void DisplayNewMarketData(CandleSeries candleSeries, Candle candle)&lt;br /&gt;        {&lt;br /&gt;            IsRealtiem = candle.CloseTime + TimeSpan.FromSeconds(5) &amp;gt; DateTimeOffset.Now || IsRealtiem;&lt;br /&gt;&lt;br /&gt;            var chartDrawData = new ChartDrawData();&lt;br /&gt;            var group = chartDrawData.Group(candle.OpenTime);&lt;br /&gt;            group.Add(ChartCandleElement, candle);&lt;br /&gt;            if (IsRealtiem || candle.State == CandleStates.Finished)&lt;br /&gt;                Chart.Draw(chartDrawData);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        private void StartButton_Click(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;br /&gt;            CandleManager.Processing += DisplayNewMarketData;&lt;br /&gt;            CandleManager.Start(CandleSeries);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void StopButton_Click(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            CandleManager.Processing -= DisplayNewMarketData;&lt;br /&gt;            CandleManager.Stop(CandleSeries);&lt;br /&gt;            InitCart();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Данный код рисует свечи при клике по кнопке Start и очищает чарт при клике по кнопке Stop. Если запустить отрисовку свечей кликом по кнопке Start, за тем остановить кнопкой Stop и снова запустить Start то выскакивает исключение:&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;System.InvalidOperationException: &amp;quot;Невозможно изменить значение для свечи для даты 01/27/2018 04:05:00 +03:00 последнее добавленное значение для даты 01/27/2018 22:58:00.&amp;quot;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;В обработчике события (StopButton_Click) по кнопке Stop происходит инициализация чарта заново. Весь день ломаю голову. Почему так происходит? Подскажите пожалуйста.&lt;br /&gt;Во вложении проект.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9037/</id>
    <title type="text">Цена реальной сделки</title>
    <published>2018-01-23T08:47:27Z</published>
    <updated>2018-01-24T12:55:04Z</updated>
    <author>
      <name>vovka_</name>
      <uri>https://stocksharp.ru/users/28876/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="OrderChange" />
    <category term="Таблица" />
    <category term="сделок" />
    <content type="html">Регистрирую заявку допустим покупка по цене 25075 объемом 50 лотов. В стакане несколько заявок/бидов на продажу (по цене 25060, 25065 и 25070) и моя заявка должна собрать весь объемом этих трех заявок.&lt;br /&gt;&lt;br /&gt;В OrderChange у объекта заявки приходит цена заявки, которая указана при ее создании, но по факту реальная цена сделки средняя между 25060/25065/25070. В этом случае в OrderChange не приходит частичное исполнение заявки, а приходит одно событие, что заявка исполнилась, т.к. она собрала объем этих трех заявок и состояние заявки исполнена. Как оптимально и быстро узнать реальную цену совершенных сделок? Мало ли кто-то быстро поставит большой объем в 25060 и сделка совершится по этой цене. Мне для точных расчетов необходимо знать точную/реальную цену сделки, которая совершилась на бирже по факту.&lt;br /&gt;&lt;br /&gt;В квике есть Таблица сделок. В ней, как раз показываются все исполненные сделки с указанием Id заявки, реальной цены сделки на бирже, по которой прошла сделка и объем этой сделки.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9028/</id>
    <title type="text">Неправильная отрисовка графика скользящей</title>
    <published>2018-01-20T13:58:26Z</published>
    <updated>2018-01-23T13:37:13Z</updated>
    <author>
      <name>Maxxxim</name>
      <uri>https://stocksharp.ru/users/99659/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Доброго времени суток. Испытываю сложности с отрисовкой графика скользящей. Добавляю скользящую так (так же как у вас в примере):&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;private void DrawCandle(TimeFrameCandle candle)&lt;br /&gt;        {&lt;br /&gt;            var data = new ChartDrawData();&lt;br /&gt;            var group = data.Group(candle.OpenTime);&lt;br /&gt;&lt;br /&gt;            group.Add(_candleElement, candle);&lt;br /&gt;&lt;br /&gt;            if (_indicatorElement != null)&lt;br /&gt;                    group.Add(_indicatorElement, _indicator.Process((double)candle.ClosePrice));&lt;br /&gt;            &lt;br /&gt;            tc.Chart.Draw(data);&lt;br /&gt;        }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;В итоге получается, что скользящая убегает вперёд свечного графика: &lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAD5elxUBNTs1oEALjOXcdojplD9wC8nitXh6xnDuEUVYA" title="https://ibb.co/fKkQuG"&gt;&lt;a href='https://preview.ibb.co/cU0Eob/image.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://preview.ibb.co/cU0Eob/image.jpg" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;/a&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;&lt;br /&gt;private void DrawCandle(TimeFrameCandle candle)&lt;br /&gt;        {&lt;br /&gt;            var data = new ChartDrawData();&lt;br /&gt;            var group = data.Group(candle.OpenTime);&lt;br /&gt;&lt;br /&gt;            group.Add(_candleElement, candle);&lt;br /&gt;&lt;br /&gt;            if(candle.State == CandleStates.Finished)&lt;br /&gt;            {&lt;br /&gt;                if (_indicatorElement != null)&lt;br /&gt;                    group.Add(_indicatorElement, _indicator.Process((double)candle.ClosePrice));&lt;br /&gt;            }&lt;br /&gt;            tc.Chart.Draw(data);&lt;br /&gt;        }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Так график скользящей отрисовывается не под активной свечой, а под последней законченной:&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABE9Q16B75lUk2VB1LnatCSEwf6vVZ1Oz7pvlDrHl9_1A" title="https://imgbb.com/"&gt;&lt;a href='https://image.ibb.co/hPY9ob/image.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://image.ibb.co/hPY9ob/image.jpg" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; Вопрос: как сделать, чтобы график отрисовывался под активной свечой? В первом примере (там код из вашего примера ), насколько я понял, так и было задумано, но у меня, как я понял, по каждой сделке добавляется новая точка на график. Как сделать, чтобы график под активной свечой менялся в реальном времени и никуда не убегал?&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9031/</id>
    <title type="text">Загрузка истории IB</title>
    <published>2018-01-21T23:23:38Z</published>
    <updated>2018-01-21T23:23:38Z</updated>
    <author>
      <name>SerGus</name>
      <uri>https://stocksharp.ru/users/100499/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Заинтересовался вашей платформой. Подключил к IB и попытался скачать историю через InteractiveBrokers. В настройках источника указал начальную дату загрузки данных 1янв2105. В логе пишет верно с 01.01.2105 - 21.01.2018  Фактически скачивает за три года с 2012 по 2105, как раз до стартовой даты :)&lt;br /&gt;Во-вторых, если идет подкачка или уже закончилась судя по логу, то Stop не останавливает...  процесс и программа фактически зависает. Источник данных уже не перенастроить, новый символ не добавить и т.д.&lt;br /&gt;Приходится закрывать программу и запускать заново.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9026/</id>
    <title type="text">вывод объема торгов на график</title>
    <published>2018-01-18T18:14:03Z</published>
    <updated>2018-01-19T15:11:11Z</updated>
    <author>
      <name>huskie</name>
      <uri>https://stocksharp.ru/users/94739/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">пожалуйста подскажите, как вывести объем торгов на график?&lt;br /&gt;в данном случае не выводится на нижний график&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADUYy2u2Zr01GrZjExd3lcKk94x9xKQ-BTl1y0jqVTE0g" title="https://clip2net.com/s/3Rae1BS"&gt;https://clip2net.com/s/3Rae1BS&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9005/</id>
    <title type="text">Новый коннектор</title>
    <published>2018-01-12T14:46:11Z</published>
    <updated>2018-01-18T08:01:06Z</updated>
    <author>
      <name>Knup</name>
      <uri>https://stocksharp.ru/users/50721/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="коннектор" />
    <content type="html">Добрый день,&lt;br /&gt;Можно ли, теоретически, не имея исходников S#.API написать (унаследовавшить от Connector и т.д.) свой коннектор к платформе, которую не поддерживает S#? Если да, то какие основные шаги нужно для этого сделать?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8999/</id>
    <title type="text">Отрисовка индикаторов на истории и онлайн.</title>
    <published>2018-01-10T23:05:50Z</published>
    <updated>2018-01-14T16:01:27Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.ru/users/98279/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день! Возмем индикатор SMA &lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt; _sma = new SimpleMovingAverage() { Length = 10 };&lt;br /&gt;....&lt;br /&gt;var smaValue = _sma.Process(candle);&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Далее если указать для smaValue.IsFinal = true то текущее значение будет браться за расчет и фиксироваться по оси x. То есть можно указать вот так:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;smaValue.IsFinal = candle.State == CandleStates.Finished;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Это будет логично. Если свеча закрыта то рассчитываем индикатор и фиксируем на оси x.&lt;br /&gt;&lt;br /&gt;От сюда вопрос: Почему это не работает при загрузке истории? &lt;br /&gt;Ведь у исторических свечей так же есть состояние Finished и Active.&lt;br /&gt;Если не отфильтровывать историю от реалтайма то индикатор убегает вперед свечек.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/9013/</id>
    <title type="text">S#.Designer не рисует новые свечи Live торговля, подключаю через lua</title>
    <published>2018-01-13T17:38:25Z</published>
    <updated>2018-01-13T17:38:25Z</updated>
    <author>
      <name>litvinovboris</name>
      <uri>https://stocksharp.ru/users/99147/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Live" />
    <content type="html">&lt;a href='https://stocksharp.ru/file/105621/0004-13.01.2018-16.08.46.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/105621/0004-13.01.2018-16.08.46.jpg?size=800x800" alt="0004 13.01.2018 16.08.46.jpg" title="0004 13.01.2018 16.08.46.jpg" /&gt;&lt;/a&gt;&lt;a href='https://stocksharp.ru/file/105622/0003-13.01.2018-15.45.40.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/105622/0003-13.01.2018-15.45.40.jpg?size=800x800" alt="0003 13.01.2018 15.45.40.jpg" title="0003 13.01.2018 15.45.40.jpg" /&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8995/</id>
    <title type="text">Прокрутить скрол стакана на середину</title>
    <published>2018-01-10T16:28:36Z</published>
    <updated>2018-01-11T17:26:40Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.ru/users/98279/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день. Скажите пожалуйста можно ли как то получить скрол стакана? Можно ли прокрутить его на середину автоматически?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8952/</id>
    <title type="text">Создание WeightedIndexSecurity из исторических данных (получить исторический спред 2-х инструментов)</title>
    <published>2017-12-21T20:39:37Z</published>
    <updated>2018-01-09T20:04:19Z</updated>
    <author>
      <name>Дмитрий_</name>
      <uri>https://stocksharp.ru/users/62269/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="исторические данные" />
    <category term="WeightedIndexSecurity" />
    <content type="html">Здравствуйте.&lt;br /&gt;&lt;br /&gt;Подскажите, как правильно создать WeightedIndexSecurity из исторических данных?&lt;br /&gt;&lt;br /&gt;Имею:&lt;br /&gt;Security _leg1Security = new Security() { Id = &amp;quot;SBER@TQBR&amp;quot; };&lt;br /&gt;Security _leg2Security = new Security() { Id = &amp;quot;SBERP@TQBR&amp;quot; };&lt;br /&gt;&lt;br /&gt;DateTime from = new DateTime(2017, 1, 3).ChangeKind(DateTimeKind.Utc);&lt;br /&gt;DateTime to = new DateTime(2017, 1, 4).ChangeKind(DateTimeKind.Utc);&lt;br /&gt;&lt;br /&gt;private TimeSpan _timeFrame = TimeSpan.FromMinutes(1);&lt;br /&gt;&lt;br /&gt;В переменных _leg1TimeFrameCandles и _leg2TimeFrameCandles исторические 1-мин свечи, загруженные из локального хранилища.&lt;br /&gt;&lt;br /&gt;_portfolio = new Portfolio&lt;br /&gt;            {&lt;br /&gt;                Name = &amp;quot;Test Account&amp;quot;,&lt;br /&gt;                BeginValue = 1000000,&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;WeightedIndexSecurity _spreadSecurity = new WeightedIndexSecurity() { Id = &amp;quot;Index1&amp;quot;, Board = ExchangeBoard.Forts };&lt;br /&gt;            _spreadSecurity.Weights.Add(_leg1Security.Id.ToSecurityId(), Convert.ToDecimal(1));&lt;br /&gt;            _spreadSecurity.Weights.Add(_leg2Security.Id.ToSecurityId(), Convert.ToDecimal(-1));&lt;br /&gt;&lt;br /&gt;            var securityList = new List&amp;lt;Security&amp;gt; { _spreadSecurity };&lt;br /&gt;            var portfolioList = new List&amp;lt;Portfolio&amp;gt; { _portfolio };&lt;br /&gt;&lt;br /&gt;_historyEmulationConnector = new HistoryEmulationConnector(securityList, portfolioList);&lt;br /&gt;            _spreadCandleSeries = new CandleSeries(typeof(TimeFrameCandle), _spreadSecurity, TimeSpan.FromMinutes(1)) { BuildCandlesMode = BuildCandlesModes.Build };&lt;br /&gt;&lt;br /&gt;            ConfigManager.RegisterService&amp;lt;ISecurityProvider&amp;gt;(_historyEmulationConnector);&lt;br /&gt;&lt;br /&gt;            CandleManager _spreadCandleManager = new CandleManager(_historyEmulationConnector);&lt;br /&gt;_spreadCandleManager.Processing += DrawSpreadCandle;&lt;br /&gt;&lt;br /&gt;            _spreadCandleManager.Start(_spreadCandleSeries); (Исключение - System.InvalidOperationException: &amp;quot;Инструмент S#:SBER@TQBR, Native:,Type: не найден.&amp;quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;private void DrawSpreadCandle(CandleSeries series, Candle candle)&lt;br /&gt;        {&lt;br /&gt;            Debug.WriteLine(string.Format(&amp;quot;series= {0}, candle= {1}, candleseries= {2}&amp;quot;, series.Security.Id, candle.Security.Id, _spreadCandleSeries.Security.Id));&lt;br /&gt;&lt;br /&gt;            var data = new ChartDrawData();&lt;br /&gt;            data.Group(candle.OpenTime).Add(_spreadChartCandleElement, candle);&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                Chart.Draw(data);&lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Как получить исторический спред этих 2-х инструментов?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8816/</id>
    <title type="text">Не правильное исполнение сделок при тестировании на свечах</title>
    <published>2017-11-10T17:10:36Z</published>
    <updated>2018-01-09T10:34:06Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Стратегия из примера SampleHistoryTesting. Та что на СМА. &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;_shortMa = new SimpleMovingAverage { Length = 1 };&lt;br /&gt;_longMa = new SimpleMovingAverage { Length = 30 };&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Инструмент сбер за октябрь 2017, минутки. &lt;br /&gt;&lt;a href='https://stocksharp.ru/file/105254/image5334.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/105254/image5334.png?size=800x800" alt="image5334.png" title="image5334.png" /&gt;&lt;/a&gt;&lt;br /&gt;Такой эквити на этой стратегии быть не может. Ни стратегия а грааль просто.&lt;br /&gt;Как она так сделки исполняет непонятно.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/105255/image7243.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/105255/image7243.png?size=800x800" alt="image7243.png" title="image7243.png" /&gt;&lt;/a&gt;&lt;br /&gt;Еще раз хочу обратить внимание это не моя стратегия, а стандартная из примера SampleHistoryTesting.&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8979/</id>
    <title type="text">RelativeVigorIndex ошибка &amp;quot;Индекс за пределами диапазона&amp;quot;</title>
    <published>2018-01-04T09:10:34Z</published>
    <updated>2018-01-04T09:12:24Z</updated>
    <author>
      <name>megagnom</name>
      <uri>https://stocksharp.ru/users/50444/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="RelativeVigorIndex" />
    <category term="ArgumentOutOfRangeException" />
    <content type="html">Добрый день.&lt;br /&gt;&lt;br /&gt;Пишу свой индикатор, который использует значения из индикатора RelativeVigorIndex. В методе Process() возникает ошибка: System.ArgumentOutOfRangeException: &amp;quot;Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.&lt;br /&gt;Имя параметра: index&amp;quot;&lt;br /&gt;&lt;br /&gt;В чем может быть причина?&lt;br /&gt;Пример упрощенного кода в котором возникает ошибка:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public class Test : BaseIndicator&lt;br /&gt;    {&lt;br /&gt;         public override bool IsFormed =&amp;gt; _rvi.IsFormed;&lt;br /&gt;         private readonly RelativeVigorIndex _rvi = new RelativeVigorIndex(new RelativeVigorIndexAverage { Length = 1 },&lt;br /&gt;             new RelativeVigorIndexSignal { Length = 1 });&lt;br /&gt;&lt;br /&gt;        protected override IIndicatorValue OnProcess(IIndicatorValue input)&lt;br /&gt;        {&lt;br /&gt;             _rvi.Process(input);&lt;br /&gt;             _rvi.Average.Process(input);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;             if (input.IsFormed)&lt;br /&gt;             {&lt;br /&gt;                  var result = _rvi.Average.GetCurrentValue();&lt;br /&gt;                  return new DecimalIndicatorValue(this, result);&lt;br /&gt;             }&lt;br /&gt;&lt;br /&gt;             return new DecimalIndicatorValue(this, 0);&lt;br /&gt;        }&lt;br /&gt;    }</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8960/</id>
    <title type="text">MarketQuotingStrategy не работает на QUIK Junior</title>
    <published>2017-12-25T06:22:00Z</published>
    <updated>2017-12-26T15:29:54Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">MarketQuotingStrategy не работает на QUIK Junior, на боевом не проверял.&lt;br /&gt;в логе выдает следующее&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_0d075ca776284660808a8b1709ccf1e3');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_0d075ca776284660808a8b1709ccf1e3' style='display:none'&gt;&lt;br /&gt;MQ_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:44 PM +10:00	Info	Strategy Started. [0,-1]. Position 0.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:44 PM +10:00	Info	Strategy Started. [0,1]. Position 0.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:44 PM +10:00	Info	Quoting to Buy volume 1.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:44 PM +10:00	Info	Price of current NULL and best 132.36.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:44 PM +10:00	Info	Best bid NULL and best ask NULL.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:44 PM +10:00	Info	Registration of new  (0xF952C9) order for Buy with price 132.36 and volume 1. &lt;br /&gt;MQ_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	New position: (S#:SBER@QJSIM, Native:,Type:Stock, NL0011100043)=0.&lt;br /&gt;MQ_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Error	Order 47284174 (0xEB01F5) was not registered because &amp;#39; Not found transaction for this class: &amp;quot;QJSIM&amp;quot;.&amp;#39;.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	New position: (S#:SBER@QJSIM, Native:,Type:Stock, NL0011100043)=0.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Position changed by 0. Remaining volume 1.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Order 47284173 (0xF952C9) accepted by the exchange.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Reset registration errors counter from 0 to zero.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Price of current 132.36 and best 132.61.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Best bid NULL and best ask NULL.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Quoting order 47284173 (0xF952C9) to Buy with price 132.36 volume 1.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Reregistration of order 47284173 (0xF952C9) with price 132.36 to price 132.61. &lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Requoting registered for order 47284174 (0xEB01F5) to Buy with price 132.61.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Error	Order 47284173 (0xF952C9) was not cancelled because System.InvalidOperationException:  Not found transaction for this class: &amp;quot;QJSIM&amp;quot;..&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Error	Order 47284174 (0xEB01F5) was not registered because &amp;#39; Not found transaction for this class: &amp;quot;QJSIM&amp;quot;.&amp;#39;.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Error	Order 47284174 (0xEB01F5) was not registered because &amp;#39; Not found transaction for this class: &amp;quot;QJSIM&amp;quot;.&amp;#39;.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Current errors count 1. Maximum 100.&lt;br /&gt;MQS_SBER@QJSIM_NL0011100043	25-Dec-17 01:08:48 PM +10:00	Info	Order 47284174 (0xEB01F5) no longer active.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;То есть она сначала выставляет заявку, потом не может ее перерегистрировать так как &amp;quot;Not found transaction for this class: &amp;quot;QJSIM&amp;quot;. Раньше такой проблемы не было.&lt;br /&gt;Хотя если руками выставлять и отменять заявку проблемы не возникает.&lt;br /&gt;и еще заметил что в PortfolioGrid инструмент отображается как SBER@MICEX а не SBER@QJSIM. Возможно это связанные проблемы.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/105485/image9161.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/105485/image9161.png?size=800x800" alt="image9161.png" title="image9161.png" /&gt;&lt;/a&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8922/</id>
    <title type="text">правила Security.WhenLastTradePriceMore и Security.WhenLastTradePriceLess</title>
    <published>2017-12-11T09:29:24Z</published>
    <updated>2017-12-26T12:03:34Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">1) При следующем коде WhenLastTradePriceLess вообще ни разу не сработало, WhenLastTradePriceMore срабатывает как то избирательно и очень редко. Хотя в connector.NewTrade я вижу, что сделки приходят. Как я понимаю они при таких условиях все сделки мне выдавать должны.&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;pre class="brush:c#"&gt;

//-----------------------------------------------------------------------------------------------------------------------------------
            connector.NewTrade += (t) =&amp;gt;
            {
                if (t.Security == security)
                {

                }
            };
//-----------------------------------------------------------------------------------------------------------------------------------

            security.WhenLastTradePriceLess(connector, connector, new Unit(999999999m)).Do((a) =&amp;gt;
            {

            }).Apply();

            security.WhenLastTradePriceMore(connector, connector, new Unit(0.1m)).Do((a) =&amp;gt;
            {

            }).Apply();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;2) Судя по исходникам правила  Security.WhenLastTradePriceMore и Security.WhenLastTradePriceLess будут срабатывать не только при получении новой сделки но и при любом изменении инструмента, даже если новой сделки не было. Чем обосновано такое решение?&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_0c9a17f23fd44680b437e3b85bc5cf79');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_0c9a17f23fd44680b437e3b85bc5cf79' style='display:none'&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:c#"&gt;

		public static MarketRule&amp;lt;Security, Security&amp;gt; WhenBestAskPriceLess(this Security security, IConnector connector, Unit price)
		{
			return CreateSecurityCondition(security, connector, Level1Fields.BestAskPrice, price, true);
		}
		public static MarketRule&amp;lt;Security, Security&amp;gt; WhenLastTradePriceMore(this Security security, IConnector connector, IMarketDataProvider provider, Unit price)
		{
			return CreateLastTradeCondition(security, connector, provider, price, false);
		}
//-----------------------------------------------------------------------------------------------------------------------------------
		private static SecurityChangedRule CreateSecurityCondition(Security security, IConnector connector, Level1Fields field, Unit offset, bool isLess)
		{
			if (security == null)
				throw new ArgumentNullException(nameof(security));

			if (offset == null)
				throw new ArgumentNullException(nameof(offset));

			if (offset.Value == 0)
				throw new ArgumentException(LocalizedStrings.Str1051, nameof(offset));

			if (offset.Value &amp;lt; 0)
				throw new ArgumentException(LocalizedStrings.Str1052, nameof(offset));

			var price = (decimal?)connector.GetSecurityValue(security, field);

			if (price == null &amp;amp;&amp;amp; offset.Type != UnitTypes.Limit)
				throw new InvalidOperationException(LocalizedStrings.Str1053);

			if (isLess)
			{
				var finishPrice = (decimal)(offset.Type == UnitTypes.Limit ? offset : price - offset);
				return new SecurityChangedRule(security, connector, s =&amp;gt;
				{
					var quote = (decimal?)connector.GetSecurityValue(s, field);
					return quote != null &amp;amp;&amp;amp; quote &amp;lt; finishPrice;
				});
			}
			else
			{
				var finishPrice = (decimal)(offset.Type == UnitTypes.Limit ? offset : price + offset);
				return new SecurityChangedRule(security, connector, s =&amp;gt;
				{
					var quote = (decimal?)connector.GetSecurityValue(s, field);
					return quote != null &amp;amp;&amp;amp; quote &amp;gt; finishPrice;
				});
			}
//-----------------------------------------------------------------------------------------------------------------------------------
		private sealed class SecurityLastTradeRule : SecurityRule&amp;lt;Security&amp;gt;
		{
			private readonly Func&amp;lt;Security, bool&amp;gt; _condition;

			public SecurityLastTradeRule(Security security, IConnector connector, Func&amp;lt;Security, bool&amp;gt; condition)
				: base(security, connector)
			{
				if (condition == null)
					throw new ArgumentNullException(nameof(condition));

				_condition = condition;

				Name = LocalizedStrings.Str1049 + &amp;quot; &amp;quot; + security;

				Connector.SecurityChanged += OnSecurityChanged;
				Connector.NewTrade += OnNewTrade;
			}

			private void OnSecurityChanged(Security security)
			{
				if (CheckLastTrade(security))
					Activate(security);
			}

			private bool CheckLastTrade(Security security)
			{
				if (Security is BasketSecurity basket)
				{
					return basket.Contains(SecurityProvider, security) &amp;amp;&amp;amp; _condition(security);
				}
				else
				{
					return security == Security &amp;amp;&amp;amp; _condition(Security);
				}
			}

			private void OnNewTrade(Trade trade)
			{
				if (CheckTrades(Security, trade))
					Activate(trade.Security);
			}

			private bool CheckTrades(Security security, Trade trade)
			{
				return security is BasketSecurity basket
					? basket.Contains(SecurityProvider, trade.Security) &amp;amp;&amp;amp; _condition(trade.Security)
					: trade.Security == security &amp;amp;&amp;amp; _condition(trade.Security);
			}

			protected override void DisposeManaged()
			{
				Connector.NewTrade -= OnNewTrade;
				Connector.SecurityChanged -= OnSecurityChanged;

				base.DisposeManaged();
			}
		}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8958/</id>
    <title type="text">Сделки дочерней стратегии MarketQuotingStrategy, не считаются сделками родительской стратегии</title>
    <published>2017-12-24T07:35:50Z</published>
    <updated>2017-12-24T08:14:03Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Сделки дочерней стратегии MarketQuotingStrategy, не считаются сделками родительской стратегии.&lt;br /&gt;Тоесть, если я использую&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:c#"&gt;

var childStrategy = new MarketQuotingStrategy(Sides.Buy, 1);
ChildStrategies.Add(childStrategy);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;то в сделки совершенные MarketQuotingStrategy не будут приходить через событие _strategy.NewMyTrade родительской стратегии. &lt;br /&gt;PNL тоже не считается.</content>
  </entry>
</feed>