﻿<?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=130</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-01T00:03:34Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=130" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/3599/</id>
    <title type="text">Урок 2. Потоковые данные (сделки, котировки). Шаблон для универсального (безопасного) подключения.</title>
    <published>2013-04-20T13:08:12Z</published>
    <updated>2013-04-20T13:08:12Z</updated>
    <author>
      <name>IvanB</name>
      <uri>https://stocksharp.ru/users/26984/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;b&gt;&lt;span style="font-size:120%"&gt;Видео-уроки:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Создание обертки коннекторов (шаблон для подключений)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167470507&amp;amp;hash=5aed0d16f3d8cb3b&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Работа с потоковыми данными&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167477199&amp;amp;hash=974c22b650016bee&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Видео-уроки (экстра):&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Работа с котировками, отслеживание сигналов&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167477299&amp;amp;hash=130700df674df7af&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Темы занятия:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Создание безопасной обертки (шаблона) для различных коннекторов&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Создание безопасного варианта универсального подключения&lt;br /&gt;&lt;li&gt;Создание элемента управления для работы с коннектором (подключение, отключение, инструменты)&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Потоковые данные&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Котировки&lt;br /&gt;&lt;li&gt;Сделки&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Создание приложения, отображающего потоковые данные&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Вывод всех сделок в окно&lt;br /&gt;&lt;li&gt;Создание визуального стакана котировок&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Домашнее задание:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Вывести в окно значение латентности и время последнего обновления стакана.&lt;br /&gt;&lt;li&gt;Добавить в окно второй стакан глубиной в 5.&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Полезные ссылки:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://stocksharp.com/doc/html/T_StockSharp_BusinessEntities_MarketDepth.htm" title="http://stocksharp.com/doc/html/T_StockSharp_BusinessEntities_MarketDepth.htm"&gt;Класс MarketDepth&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stocksharp.com/doc/html/T_StockSharp_BusinessEntities_Quote.htm" title="http://stocksharp.com/doc/html/T_StockSharp_BusinessEntities_Quote.htm"&gt;Класс Quote&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stocksharp.com/doc/html/T_StockSharp_BusinessEntities_Trade.htm" title="http://stocksharp.com/doc/html/T_StockSharp_BusinessEntities_Trade.htm"&gt;Класс Trade&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rc9GNm78BSRg5Z4VassvwQDkRd2Zr9oYK0Wxc0eTuVnw" title="http://vk.com/docs?oid=-66650972"&gt;Скачать проекты&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Изменения в проектах:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_175f1971cd2b4e369f79364d4edf11c4');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_175f1971cd2b4e369f79364d4edf11c4' style='display:none'&gt;&lt;br /&gt;Проект StockSharp.TraderConnection&lt;br /&gt;Файл SafeConnection.cs&lt;br /&gt;&lt;br /&gt;В версии S# 4.1.19.1 настройки переподключения сгруппированы в следующие свойства:&lt;br /&gt;Trader.ReConnectionSettings.ConnectionSettings - настройки для подключения&lt;br /&gt;Trader.ReConnectionSettings.ExportSettings - настройки для экспорта&lt;br /&gt;&lt;br /&gt;В связи с чем, изменен вид указания интервала попыток подключений, теперь он внутри свойства ConnectionSettings.&lt;br /&gt;Возобновление экспорта теперь осуществляется автоматически, поэтому строка:&lt;br /&gt;Trader.ReConnectionSettings.IsReStartExport = true;&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;pre class="brush:csharp"&gt;

        /// &amp;lt;summary&amp;gt;
        /// Подключиться безопасно к торговой платформе
        /// &amp;lt;/summary&amp;gt;
        public void ConnectSafe()
        {
            //Интервал переподключения
            Trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
            //Когда переподключаться
            Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;
            //Запускать ли заново экспрорт после переподключения
            Trader.ReConnectionSettings.IsReStartExport = true;
            //Подписаться на появление ошибки подключения от трейдера
            Trader.ConnectionError += OnNewException;
            //Подписаться на появление ошибок не выставленной заявки
            Trader.OrdersRegisterFailed += fails =&amp;gt; fails.ForEach(f =&amp;gt; OnNewException(f.Error));
            //Подписаться на событие успешного подключения к торговой платформе
            Trader.Connected += () =&amp;gt;
                                    {
                                        try
                                        {
                                            //Запустить экспорт данных из торговой платформы
                                            Trader.StartExport();
                                        }
                                        catch (Exception ex)
                                        {
                                            //Вызвать событие появления нового исключения
                                            OnNewException(ex);
                                        }
                                    };

            //Подключиться к торговой платформе
            Trader.Connect();
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;pre class="brush:csharp"&gt;

        public void ConnectSafe()
        {
            //Интервал переподключения
            Trader.ReConnectionSettings.ConnectionSettings.Interval = TimeSpan.FromSeconds(10);
            //Когда переподключаться
            Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;
            //Запускать ли заново экспрорт после переподключения
            //Trader.ReConnectionSettings.IsReStartExport = true;
            //Подписаться на появление ошибки подключения от трейдера
            Trader.ConnectionError += OnNewException;
            //Подписаться на появление ошибок не выставленной заявки
            Trader.OrdersRegisterFailed += fails =&amp;gt; fails.ForEach(f =&amp;gt; OnNewException(f.Error));
            //Подписаться на событие успешного подключения к торговой платформе
            Trader.Connected += () =&amp;gt;
                                    {
                                        try
                                        {
                                            //Запустить экспорт данных из торговой платформы
                                            Trader.StartExport();
                                        }
                                        catch (Exception ex)
                                        {
                                            //Вызвать событие появления нового исключения
                                            OnNewException(ex);
                                        }
                                    };

            //Подключиться к торговой платформе
            Trader.Connect();
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Начиная с версии S# 4.1.19.1 статус подключения коннектора вынесен в специальное свойство ConnectionState, которое может принимать следующие значения:&lt;br /&gt;Disconnected - Не активно,&lt;br /&gt;Disconnecting - В процессе отключения,&lt;br /&gt;Connected - В процессе подключения,&lt;br /&gt;Connecting - Подключение активно,&lt;br /&gt;Failed - Ошибка подключения&lt;br /&gt;&lt;br /&gt;Таким образом, теперь нет свойства IsConnected, а наличие статуса подключения мы можем получать от свойства ConnectionState.&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:csharp"&gt;

        public void DisConnectSafe()
        {
            //Если коннектор к торговой платформе не пуст и соединение установлено
            if (Trader != null &amp;amp;&amp;amp; Trader.IsConnected)
            {
                Trader.StopExport();
                Trader.Disconnect();
            }
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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:csharp"&gt;

        public void DisConnectSafe()
        {
            //Если коннектор к торговой платформе не пуст и соединение установлено
            if (Trader != null &amp;amp;&amp;amp; Trader.ConnectionState == ConnectionStates.Connected)
            {
                Trader.StopExport();
                Trader.Disconnect();
            }
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;pre class="brush:csharp"&gt;

        public bool IsConnected
        {
            get
            {
                return Trader != null &amp;amp;&amp;amp; Trader.IsConnected;
            }
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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:csharp"&gt;

        public bool IsConnected
        {
            get
            {
                return Trader != null &amp;amp;&amp;amp; Trader.ConnectionState == ConnectionStates.Connected;
            }
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3598/</id>
    <title type="text">вылетает Exception</title>
    <published>2013-04-19T08:41:57Z</published>
    <updated>2013-04-19T08:41:57Z</updated>
    <author>
      <name>tourtika</name>
      <uri>https://stocksharp.ru/users/39055/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">версия 4.1.11&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;вылетает Exception&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:csharp"&gt;

Exception:Thrown: &amp;quot;Требуемый объект не найден.
&amp;quot; (System.Security.Cryptography.CryptographicException)
A System.Security.Cryptography.CryptographicException was thrown: &amp;quot;Требуемый объект не найден.
&amp;quot;
&lt;/pre&gt;
&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;&lt;pre class="brush:csharp"&gt;

Trader = new QuikTrader(Path.Text);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;лицензия номер 42860 установлена&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;pre class="brush:csharp"&gt;

[h]
 	mscorlib.dll!System.Security.Cryptography.CryptographicException.ThrowCryptographicException(int hr = {unknown})	
 	mscorlib.dll!System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(string fileName = {unknown}, object password = {unknown}, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags = {unknown})	
 	mscorlib.dll!System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromSignedFile(string filename = {unknown})	
 	StockSharp.Algo.dll!StockSharp.Algo.Licensing.LicenseHelper.#=qIK7OFIa$yAkUGe_EpX$owg==()	
 	StockSharp.Algo.dll!StockSharp.Algo.Licensing.LicenseHelper.#=q$JHDqHbGS2gS3Zq8PrMHkMoXswey6biyTUDWThHiVm4=(System.Func&amp;lt;StockSharp.Algo.Licensing.License,bool&amp;gt; #=qqkg0GsHa8_O4y5uQTyDpgw== = {unknown})	
 	StockSharp.Algo.dll!StockSharp.Algo.Licensing.LicenseHelper.IsLicenseSupport(System.Type featureType = {unknown})	
 	StockSharp.Algo.dll!StockSharp.Algo.Licensing.LicenseHelper.StartValidation(object feature = {unknown}, System.Action failedAction = {unknown})	
 	StockSharp.Algo.dll!StockSharp.Algo.BaseTrader..ctor(Ecng.Interop.Platforms platform = {unknown}, bool checkLicense = {unknown})	
 	StockSharp.Quik.dll!StockSharp.Quik.QuikTrader..ctor(string path = {unknown})	
&amp;gt;	Sample.exe!Sample.MainWindow.ConnectClick(object sender = {unknown}, System.Windows.RoutedEventArgs e = {unknown})	
 	PresentationCore.dll!System.Windows.RoutedEventHandlerInfo.InvokeHandler(object target = {unknown}, System.Windows.RoutedEventArgs routedEventArgs = {unknown})	
 	PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source = {unknown}, System.Windows.RoutedEventArgs args = {unknown}, bool reRaised = {unknown})	
 	PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender = {unknown}, System.Windows.RoutedEventArgs args = {unknown})	
 	PresentationCore.dll!System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs e = {unknown})	
 	PresentationFramework.dll!System.Windows.Controls.Primitives.ButtonBase.OnClick()	
 	PresentationFramework.dll!System.Windows.Controls.Button.OnClick()	
 	PresentationFramework.dll!System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e = {unknown})	
 	PresentationCore.dll!System.Windows.UIElement.OnMouseLeftButtonUpThunk(object sender = {unknown}, System.Windows.Input.MouseButtonEventArgs e = {unknown})	
 	PresentationCore.dll!System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate genericHandler = {unknown}, object genericTarget = {unknown})	
 	PresentationCore.dll!System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate handler = {unknown}, object target = {unknown})	
 	PresentationCore.dll!System.Windows.RoutedEventHandlerInfo.InvokeHandler(object target = {unknown}, System.Windows.RoutedEventArgs routedEventArgs = {unknown})	
 	PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source = {unknown}, System.Windows.RoutedEventArgs args = {unknown}, bool reRaised = {unknown})	
 	PresentationCore.dll!System.Windows.UIElement.ReRaiseEventAs(System.Windows.DependencyObject sender = {unknown}, System.Windows.RoutedEventArgs args = {unknown}, System.Windows.RoutedEvent newEvent = {unknown})	
 	PresentationCore.dll!System.Windows.UIElement.OnMouseUpThunk(object sender = {unknown}, System.Windows.Input.MouseButtonEventArgs e = {unknown})	
 	PresentationCore.dll!System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate genericHandler = {unknown}, object genericTarget = {unknown})	
 	PresentationCore.dll!System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate handler = {unknown}, object target = {unknown})	
 	PresentationCore.dll!System.Windows.RoutedEventHandlerInfo.InvokeHandler(object target = {unknown}, System.Windows.RoutedEventArgs routedEventArgs = {unknown})	
 	PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source = {unknown}, System.Windows.RoutedEventArgs args = {unknown}, bool reRaised = {unknown})	
 	PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender = {unknown}, System.Windows.RoutedEventArgs args = {unknown})	
 	PresentationCore.dll!System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs args = {unknown})	
 	PresentationCore.dll!System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs args = {unknown}, bool trusted = {unknown})	
 	PresentationCore.dll!System.Windows.Input.InputManager.ProcessStagingArea()	
 	PresentationCore.dll!System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs input = {unknown})	
 	PresentationCore.dll!System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport inputReport = {unknown})	
 	PresentationCore.dll!System.Windows.Interop.HwndMouseInputProvider.ReportInput(System.IntPtr hwnd = {unknown}, System.Windows.Input.InputMode mode = {unknown}, int timestamp = {unknown}, System.Windows.Input.RawMouseActions actions = {unknown}, int x = {unknown}, int y = {unknown}, int wheel = {unknown})	
 	PresentationCore.dll!System.Windows.Interop.HwndMouseInputProvider.FilterMessage(System.IntPtr hwnd = {unknown}, MS.Internal.Interop.WindowMessage msg = {unknown}, System.IntPtr wParam = {unknown}, System.IntPtr lParam = {unknown}, ref bool handled = {unknown})	
 	PresentationCore.dll!System.Windows.Interop.HwndSource.InputFilterMessage(System.IntPtr hwnd = {unknown}, int msg = {unknown}, System.IntPtr wParam = {unknown}, System.IntPtr lParam = {unknown}, ref bool handled = {unknown})	
 	WindowsBase.dll!MS.Win32.HwndWrapper.WndProc(System.IntPtr hwnd = {unknown}, int msg = {unknown}, System.IntPtr wParam = {unknown}, System.IntPtr lParam = {unknown}, ref bool handled = {unknown})	
 	WindowsBase.dll!MS.Win32.HwndSubclass.DispatcherCallbackOperation(object o = {unknown})	
 	WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback = {unknown}, object args = {unknown}, int numArgs = {unknown})	
 	WindowsBase.dll!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(object source = {unknown}, System.Delegate method = {unknown}, object args = {unknown}, int numArgs = {unknown}, System.Delegate catchHandler = {unknown})	
 	WindowsBase.dll!System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority priority = {unknown}, System.TimeSpan timeout = {unknown}, System.Delegate method = {unknown}, object args = {unknown}, int numArgs = {unknown})	
 	WindowsBase.dll!MS.Win32.HwndSubclass.SubclassWndProc(System.IntPtr hwnd = {unknown}, int msg = {unknown}, System.IntPtr wParam = {unknown}, System.IntPtr lParam = {unknown})	
 	WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame frame = {unknown})	
 	WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame frame = {unknown})	
 	PresentationFramework.dll!System.Windows.Application.RunDispatcher(object ignore = {unknown})	
 	PresentationFramework.dll!System.Windows.Application.RunInternal(System.Windows.Window window = {unknown})	
 	PresentationFramework.dll!System.Windows.Application.Run(System.Windows.Window window = {unknown})	
 	PresentationFramework.dll!System.Windows.Application.Run()	
 	Sample.exe!Sample.App.Main()	
 	mscorlib.dll!System.AppDomain.ExecuteAssembly(string assemblyFile = {unknown}, System.Security.Policy.Evidence assemblySecurity = {unknown}, string[] args = {unknown})	
 	Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()	
 	mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state = {unknown})	
 	mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext = {unknown}, System.Threading.ContextCallback callback = {unknown}, object state = {unknown}, bool ignoreSyncCtx = {unknown})	
 	mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext = {unknown}, System.Threading.ContextCallback callback = {unknown}, object state = {unknown})	
 	mscorlib.dll!System.Threading.ThreadHelper.ThreadStart()	


[/h]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3597/</id>
    <title type="text">6 урок</title>
    <published>2013-04-18T21:25:16Z</published>
    <updated>2013-04-18T21:25:16Z</updated>
    <author>
      <name>Валентин Мирошниченко</name>
      <uri>https://stocksharp.ru/users/6156/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66674131&amp;amp;id=167402168&amp;amp;hash=6a06bbd53d74a826&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:140%"&gt;&lt;b&gt;Темы занятия 6 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Написание сложных стратегий на основе&lt;br /&gt;&lt;li&gt;Нескольких тайм фреймов&lt;br /&gt;&lt;li&gt;Нескольких символов&lt;br /&gt;&lt;li&gt;Нескольких позиций&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3596/</id>
    <title type="text">5 урок</title>
    <published>2013-04-18T17:18:17Z</published>
    <updated>2013-04-18T17:18:17Z</updated>
    <author>
      <name>Валентин Мирошниченко</name>
      <uri>https://stocksharp.ru/users/6156/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66674131&amp;amp;id=167402162&amp;amp;hash=1174a061e5e5d00c&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:140%"&gt;&lt;b&gt;Темы занятия 5 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Использование Visual Studio 2012 совместно с Wealth lab&lt;br /&gt;&lt;li&gt;Создание стратегии в Visual Studio 2012&lt;br /&gt;&lt;li&gt;Отладка стратегии с помощью Visual Studio 2012&lt;br /&gt;&lt;li&gt;Создание собственного индикатора&lt;br /&gt;&lt;li&gt;Создание собственного графика&lt;br /&gt;&lt;li&gt;Создание собственного PosSizer&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Что почитать по теме:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAA_BPYdS6F36dQ_hi4uKVix-meeroTR7i3E1KI8d7bf2g" title="http://www.wealth-lab.com/Wiki/"&gt;Wealth-Lab Development Guide&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3594/</id>
    <title type="text">Минимальный шаг цены 10 инструмента RIM3@RTS не соответствует самой цене 1</title>
    <published>2013-04-18T13:20:25Z</published>
    <updated>2013-04-18T13:20:25Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_f0ea4467399d47ef976d4cc20729cf3b');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_f0ea4467399d47ef976d4cc20729cf3b' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;
System.ArgumentException: Минимальный шаг цены 10 инструмента RIM3@RTS не соответствует самой цене 1.
Parameter name: minStepSize
   at #=qhBqOxQ5SIAbyY2y6N4BACFDFlQ_j1Q8yNEtvBOYqijcGVeDcDOSxfTG$NktAXwctZp34JExDBpwOQoEKZTC50Q==.#=q_vOdnDjt0o95tu6lpaSvEA==(List`1 #=qvi1hvqUL0DSx5vSH74$DGA==, Decimal #=qseJI7G69aeTL8l8DXFAQXw==, Decimal #=qFLu6zfeio1ecl5ZeIdHkbA==, Decimal #=q94p4WXWGblEjOsjI8IHiPw==, Security #=qv2EkoD7xxTCuL6hCJZeNmQ==)
   at #=qxG_Vfl$T_uy4vA9m$7W1_xmyAVQqcG1v4lzDFT8DC9Sb30g99WTTEntOcssQEeRcsS$u$nSq5Ifp_vaYxs9PDw==.#=qQNdI9PldNlsUIU6_Fg182g==(List`1 #=qACaLXvHVBqubi9_LnTZDVg==, #=qmNjEnDBKVrLDOU6jobs8dGnqD8CGMYHeA0hf$S93BcJOhYo0wAIzW93_dVw0fy3$ #=q5pCS7t8NtAdURybFwsgvUA==, Decimal #=qzJrezToKPF11h44hjmpyFw==)
   at #=qxG_Vfl$T_uy4vA9m$7W1_xmyAVQqcG1v4lzDFT8DC9Sb30g99WTTEntOcssQEeRcsS$u$nSq5Ifp_vaYxs9PDw==.#=qCEgRZ7zMatuTnCBjCsX89w==(List`1 #=qKT9CHNpy7v_GC687I0NC6Q==, IEnumerable`1 #=qpBurEoTpqQvEQWw_PI$n9g==, #=qmNjEnDBKVrLDOU6jobs8dGnqD8CGMYHeA0hf$S93BcJOhYo0wAIzW93_dVw0fy3$ #=qK58DZPl6Akmk3nYyjooXag==)
   at #=q96bOQJMhTwQYjnfhf17fdS0p4WDMdepDMZs$SZHQLSCC34pzcC1ASLBmFlJs2NGU2hbAw_tIB8bBBCaun7c13g==.#=qztnUT8i4uih8ghBtA8V9b5pqus8h7W$73VIkWqEhq0OCsGYxNBFYKttlfLWtdVNbIpBhJzULuLT$mHIuCRCdKonXjIKi$ku8FSX8gFmLZPc=(IEnumerable`1 #=q2LPfToWgMbY02lXn0xD70Q==, #=qz_YSKkqpEa8T1noUGgstEnzfhRAfvkQ_jma49bEj1TM1IXjZ89_cIkuk_ipRDKMj #=qp8o4WTpUtDBZ3rdzLRkXWA==)
   at #=qsYrHh4n$Wb0r_eEhp74i6jrpgrP_E1zwSLk_EwOMfquPXC4HaB6nLxCoirlmQgUa.#=qLVFHa7Avg_AjiPQ0ZyDj$w==(DateTime #=qvrlSbw2vzShjBaP0B5f4CA==, #=q_NyXhk9YU4Ct0ArVARtkBQ==[] #=qwm1Cl3Z8BSshe8r4bcS$BQ==, Boolean #=qHP6cE96hLTBDQ6s3SiXlPw==)
   at #=qsYrHh4n$Wb0r_eEhp74i6jrpgrP_E1zwSLk_EwOMfquPXC4HaB6nLxCoirlmQgUa.Save(IEnumerable`1 #=qxggFozLcdd97rChxaYKbMw==)
   at AlgoTrading.Library.StorageManagement.Hydra.SaveSecurityChange() in c:\ActiveProjects\AlgoTrading\trunk\SourceCode\Libraries\AlgoTrading.Library\StorageManagement\Hydra.cs:line 513
   at AlgoTrading.Library.StorageManagement.Hydra.&amp;lt;.ctor&amp;gt;b__e(Object sender, DoWorkEventArgs args) in c:\ActiveProjects\AlgoTrading\trunk\SourceCode\Libraries\AlgoTrading.Library\StorageManagement\Hydra.cs:line 232
   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
   --- End of inner exception stack trace ---
   at AlgoTrading.Library.StorageManagement.Hydra.&amp;lt;.ctor&amp;gt;b__f(Object sender, RunWorkerCompletedEventArgs args) in c:\ActiveProjects\AlgoTrading\trunk\SourceCode\Libraries\AlgoTrading.Library\StorageManagement\Hydra.cs:line 257
   at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
   at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Какая-то странная ошибка при закачке маркет данных. Иногда появляется при старте закачки, иногда закачка стартует без этой ошибки. До версии 4.1.9 такого не было. Пробовал на 4.1.10 и 4.1.11.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3593/</id>
    <title type="text">4 урок</title>
    <published>2013-04-18T10:51:02Z</published>
    <updated>2013-04-18T10:51:02Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167882517&amp;amp;hash=dbb03646e95aee45&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAIzJHwV0tlbjaFgHtJkJp1zOdgVIedp7iF-mqR91_WQzBvRuO0Mrd2MqA9_yOz2aUFVHe6jxbYoiDSzYeDRVLt" title="https://www.dropbox.com/s/1ktsunp5fvqon0c/Lesson%25204.pptx"&gt;&lt;b&gt;Презентация&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Темы занятия 4 (Интерфейсы и дженерики)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;•	Разное о классах и полиморфизме&lt;br /&gt;•	Перегрузка операторов&lt;br /&gt;•	Индексаторы&lt;br /&gt;•	Интерфейсы, зачем и как&lt;br /&gt;•	Generic types (генерики), их использование, специализация параметров&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; Выбрать один из рассмотренных ранее классов и написать на основе него дженерик-тип. Можно придумать свою идею класса, желательно &lt;br /&gt;попробовать воспользоваться интерфейсами в ходе выполнения задания.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rdEmNK743h-ktqSOTKbllXbxeO8EEtMCCv4-sUOwrCTY" title="http://vk.com/docs?oid=-66674957"&gt;Код из урока(1)&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rdEmNK743h-ktqSOTKbllXbxeO8EEtMCCv4-sUOwrCTY" title="http://vk.com/docs?oid=-66674957"&gt;Код из урока(2)&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rdEmNK743h-ktqSOTKbllXbxeO8EEtMCCv4-sUOwrCTY" title="http://vk.com/docs?oid=-66674957"&gt;Пример решения домашнего задания&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3592/</id>
    <title type="text">4 урок</title>
    <published>2013-04-18T10:20:47Z</published>
    <updated>2013-04-18T10:20:47Z</updated>
    <author>
      <name>Валентин Мирошниченко</name>
      <uri>https://stocksharp.ru/users/6156/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66674131&amp;amp;id=167402149&amp;amp;hash=ec89897d51dded02&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:140%"&gt;&lt;b&gt;Темы занятия 4 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Оптимизация торговых стратегий&lt;br /&gt;&lt;li&gt;С использованием полного перебора&lt;br /&gt;&lt;li&gt;С использованием Монте-Карло&lt;br /&gt;&lt;li&gt;С использованием Генетического оптимизатора&lt;br /&gt;&lt;li&gt;Плюсы и минусы разных методов оптимизации&lt;br /&gt;&lt;li&gt;Отличие оптимизации от переоптимизации&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Что почитать по теме:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAD5ucWPmfXeH64E1lNf9e_eiQA1UOyWEmaCKK9rsSMIq-8UuTBVAtRB4mNW3o-D5Sk" title="http://www.ozon.ru/context/detail/id/6300525/"&gt;Генетические алгоритмы&lt;/a&gt;&lt;br /&gt;2. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAD5ucWPmfXeH64E1lNf9e_eiQA1UOyWEmaCKK9rsSMIq8FFb6UwnHPTl8itAQtNqBM" title="http://www.ozon.ru/context/detail/id/4847823/"&gt;Метод Монте-Карло в вычислительной математике. Вводный курс&lt;/a&gt;&lt;br /&gt;3. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAD5ucWPmfXeH64E1lNf9e_eiQA1UOyWEmaCKK9rsSMIq8-bHkkF01vbvIDyXn5rnng" title="http://www.ozon.ru/context/detail/id/1313873/"&gt;Разработка, тестирование, оптимизация торговых систем для биржевого трейдера&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Полезные материалы:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAD8EDHStws_1eGv8oSb0Hht6LBBd5V_w1zPL7D-KH7Ooq_wf-KCKl7AMWej_XnVwk0" title="http://megaswf.com/serve/1031310/"&gt;Генетический алгоритм - эволюционирующие машины&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3591/</id>
    <title type="text">Кружка S#</title>
    <published>2013-04-18T09:39:34Z</published>
    <updated>2013-04-18T09:39:34Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Хочу отправить &lt;a target="_blank" rel="nofollow" href="http://stocksharp.blogspot.ru/2011/08/blog-post.html" title="http://stocksharp.blogspot.ru/2011/08/blog-post.html"&gt;кружку тру алготрейдера&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://4.bp.blogspot.com/-hJI2iUUrVWM/TluSVIzC7mI/AAAAAAAAAOw/-liRZIJKmt0/s320/ss_cup_1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://4.bp.blogspot.com/-hJI2iUUrVWM/TluSVIzC7mI/AAAAAAAAAOw/-liRZIJKmt0/s320/ss_cup_1.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Предлагаю обсудить кандидатуры.&lt;br /&gt;&lt;br /&gt;ps. Кружка, кстати, уже раритет. Так как такой эмблемы не существует уже 2-ой год. Лет через 20, если не помрем, можно будет продать с молотка.[laugh]</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3590/</id>
    <title type="text">Перенос стратегий через ночь в QUik</title>
    <published>2013-04-17T14:23:07Z</published>
    <updated>2013-04-17T14:23:07Z</updated>
    <author>
      <name>dec99</name>
      <uri>https://stocksharp.ru/users/26939/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Внутри одной сессии понятно. Загрузили сохраненную стратегию и заявки.&lt;br /&gt;Ночью заявки будут сняты. Что делать в этом случае?&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3589/</id>
    <title type="text">Подтверждение перед закрытием</title>
    <published>2013-04-17T14:16:23Z</published>
    <updated>2013-04-17T14:16:23Z</updated>
    <author>
      <name>XMbIPb</name>
      <uri>https://stocksharp.ru/users/6200/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">Не могли бы Вы в новой версии убрать его или хотя бы добавить туда таймер, чтоб можно было корректно закрывать гидру программно?  </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3588/</id>
    <title type="text">Как запустить 32х битную версию?</title>
    <published>2013-04-17T11:50:28Z</published>
    <updated>2013-04-17T11:50:28Z</updated>
    <author>
      <name>XMbIPb</name>
      <uri>https://stocksharp.ru/users/6200/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Studio" />
    <content type="html">&lt;a href='http://s41.radikal.ru/i094/1304/2c/1c18565fb130.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://s41.radikal.ru/i094/1304/2c/1c18565fb130.jpg" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;64х битная запускается без проблем... &lt;br /&gt;Сносить всё пробовал.. файл Studio.x86.exe из папки с базой запускать тоже пробовал и в папку самой студии копировал.. пишет: Не указан файл для запуска.. под админом тоже всё пробовал...</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3587/</id>
    <title type="text">Пропадают все события</title>
    <published>2013-04-17T06:56:50Z</published>
    <updated>2013-04-17T06:56:50Z</updated>
    <author>
      <name>zhuravl</name>
      <uri>https://stocksharp.ru/users/38994/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="AlfaDirect" />
    <content type="html">Код:&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;            trader.RegisterTrades(security);&lt;br /&gt;            trader.CandlesFinished += trader_CandlesFinished;&lt;br /&gt;            trader.CandlesChanged += trader_CandlesChanged;&lt;br /&gt;&lt;br /&gt;            CandleManager candleManager = new CandleManager(trader);&lt;br /&gt;            CandleSeries series = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(5));&lt;br /&gt;            candleManager.Start(series);&lt;br /&gt;            trader.RegisterCandles(security, AlfaTimeFrames.Minute5, trader.GetMarketTime(Exchange.Rts).AddMinutes(-15));&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Все прекрасно работает, но в течение 10-15 минут. После этого пропадают события CandlesFinished и CandlesChanged навсегда! И больше никогда не вызываются.&lt;br /&gt;&lt;br /&gt;Почему?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3585/</id>
    <title type="text">3 урок</title>
    <published>2013-04-16T16:32:16Z</published>
    <updated>2013-04-16T16:32:16Z</updated>
    <author>
      <name>Валентин Мирошниченко</name>
      <uri>https://stocksharp.ru/users/6156/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66674131&amp;amp;id=167402143&amp;amp;hash=eabcb8fe62386bbd&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:140%"&gt;&lt;b&gt;Темы занятия 3 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Создание первой стратегии&lt;br /&gt;&lt;li&gt;С использованием мастера стратегий&lt;br /&gt;&lt;li&gt;С использованием C# + Wealth-Lab Api&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_f6969db9ecea4d04862fabbe7b1f6946');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_f6969db9ecea4d04862fabbe7b1f6946' style='display:none'&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;Запрограммируйте робота основанного на пересечении простых скользящих средних с использованием методов CrossOver и CrossUnder, а так же следуюших методов для входа и выхода из позиции BuyAtMarket, ShortAtMarket, ExitAtMarket. Также добавьте оптимизационные параметры для скользящих средних используя StrategyParameter и CreateParameter.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Решение домашнего задания&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_a8ea4af74f3e4cc29ff3a63964b3514b');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_a8ea4af74f3e4cc29ff3a63964b3514b' style='display:none'&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

using System;
using System.Collections.Generic;
using System.Text;
using WealthLab;
using WealthLab.Indicators;
using System.Drawing;

namespace WealthLabCompile
{
	class MovingAverageCrossover : WealthScript
	{
		private StrategyParameter slowPeriod; //Объявляем период для медленной скользящей средней.
		private StrategyParameter fastPeriod; //Объявляем период для быстрой скользящей средней..

		public MovingAverageCrossover() //Создаём конструктор для инициализации переменных 
		{
			fastPeriod = CreateParameter(&amp;quot;Fast Period&amp;quot;, 20, 1, 100, 1); //Инициализируем быструю скользящая среднею. 
			slowPeriod = CreateParameter(&amp;quot;Slow Period&amp;quot;, 50, 20, 300, 5); //Инициализируем медленную скользящая среднею.       
		}

		protected override void Execute()
		{
			int fastPer = fastPeriod.ValueInt; //Получаем значение периода для быстрой скользящей средней 
			int slowPer = slowPeriod.ValueInt; //Получаем значение периода для медленной скользящей средней 
      
			SMA smaFast = SMA.Series(Close, fastPer); //Создаём простую скользящая среднею с быстрым периодом
			SMA smaSlow = SMA.Series(Close, slowPer); //Создаём простую скользящая среднею с медленным периодом

			PlotSeries(PricePane, smaFast, Color.Green, LineStyle.Solid, 2); //Наносим скользящая на график 
			PlotSeries(PricePane, smaSlow, Color.Red, LineStyle.Solid, 2); //Наносим скользящая на график

			for (int bar = Math.Max(fastPer, slowPer); bar &amp;lt; Bars.Count; bar++) //Главный цикл который последовательно перебирает все доступные данные.  
			{
				if (IsLastPositionActive) //Проверяем существует ли открытая позиция  Если да то 
				{          
					if (CrossOver(bar, smaFast, smaSlow)) //Не произошло ли пересечения скользящих снизу вверх если произошло то     
					{
						ExitAtMarket(bar + 1, LastPosition); //Закрываем открытую короткую позицию
						BuyAtMarket(bar + 1); //Открываем длинную  позицию
					}
					if (CrossUnder(bar, smaFast, smaSlow)) //Если же произошло пересечение скользящих сверху вниз тогда    
					{
						ExitAtMarket(bar + 1, LastPosition); //Закрываем открытую длинную позицию
						ShortAtMarket(bar + 1); //Открываем короткую  позицию
					}
				}
				else //Если мы находимся не в позиции     
				{
					if (CrossOver(bar, smaFast, smaSlow)) //Проверяем не произошло ли пересечения скользящих снизу вверх если произошло то  
					{
						BuyAtMarket(bar + 1); //Открываем длинную  позицию
					}
					if (CrossUnder(bar, smaFast, smaSlow)) //Если же произошло пересечение скользящих сверху вниз тогда    
					{
						ShortAtMarket(bar + 1); //Открываем короткую  позицию
					}
				}
			}
		}
	}
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3583/</id>
    <title type="text">Компиляция плагинов под х86 в VS 2012</title>
    <published>2013-04-15T16:39:12Z</published>
    <updated>2013-04-15T16:39:12Z</updated>
    <author>
      <name>XMbIPb</name>
      <uri>https://stocksharp.ru/users/6200/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_2da886e8407e439aaeb71b91b75bde35');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_2da886e8407e439aaeb71b91b75bde35' style='display:none'&gt;Error	12	The command &amp;quot;call ..\..\..\plugins.bat Quik Debug&lt;br /&gt;&lt;br /&gt;copy StockSharp.Quik.dll ..\..\..\..\Hydra\bin\Debug\Plugins\StockSharp.Quik.dll&lt;br /&gt;copy NDde.dll ..\..\..\..\Hydra\bin\Debug\Plugins\NDde.dll&amp;quot; exited with code 1.	Quik&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Вылетает при компиляции..&lt;br /&gt;Пробовал поменять путь в plugins.bat на \Hydra\bin\x86\%2\Plugins - безрезультатно..&lt;br /&gt;Пробовал тупо перетащить плагин из папки Debug.. но гидра при работе с ним начинает выдавать это: &lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_abebed7d81cf4ac7a6d15713d894cf5d');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_abebed7d81cf4ac7a6d15713d894cf5d' style='display:none'&gt;20:19:53.127|Error  |Quik      |Exception of type &amp;#39;System.OutOfMemoryException&amp;#39; was thrown.&lt;br /&gt;20:20:07.899|Error  |Unhandled Exception|System.OutOfMemoryException: Exception of type &amp;#39;System.OutOfMemoryException&amp;#39; was thrown.&lt;br /&gt;   at System.Threading.Thread.GetCurrentThreadNative()&lt;br /&gt;   at System.Threading.Thread.get_CurrentThread()&lt;br /&gt;   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)&lt;br /&gt;   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)&lt;br /&gt;   at System.Threading.TimerQueueTimer.CallCallback()&lt;br /&gt;   at System.Threading.TimerQueueTimer.Fire()&lt;br /&gt;   at System.Threading.TimerQueue.FireQueuedTimerCompletion(Object state)&lt;br /&gt;   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()&lt;br /&gt;   at System.Threading.ThreadPoolWorkQueue.Dispatch()&lt;br /&gt;   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3581/</id>
    <title type="text">3 урок</title>
    <published>2013-04-15T11:29:11Z</published>
    <updated>2013-04-15T11:29:11Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167881080&amp;amp;hash=cdf8af0a565cce57&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAIzJHwV0tlbjaFgHtJkJp1rFCNMJyK7G2yVJiH4MH23PWezcPPF6JB9Pu7GJ-xxKB5p4uQ4ZA8L2_YNg4Dom5r" title="https://www.dropbox.com/s/ckvn7mqnwf4fv9f/Lesson3.pptx"&gt;&lt;b&gt;Презентация&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Темы занятия 3 (ООП в C#)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;•	Спецификаторы доступа&lt;br /&gt;•	Полифорфизм, инкапсуляция, наследование&lt;br /&gt;•	Свойства, как ими пользоваться&lt;br /&gt;•	Абстрактные классы&lt;br /&gt;•	Исключения&lt;br /&gt;•	Nullable types, статический класс&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; На основе кода, приведенного в проекте 1, написать простейший биржевой стакан. Класс должен уметь заполнять себя&lt;br /&gt;при помощи класса заполнения и выводить значения заявок на консоль. Также предлагается попробовать реализовать тоже самое на основе проекта 2 (где абстрактный класс).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Вложения:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rdEmNK743h-ktqSOTKbllXbxeO8EEtMCCv4-sUOwrCTY" title="http://vk.com/docs?oid=-66674957"&gt;Проект1&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rdEmNK743h-ktqSOTKbllXbxeO8EEtMCCv4-sUOwrCTY" title="http://vk.com/docs?oid=-66674957"&gt;Проект2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Пример решения домашнего задания:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rdEmNK743h-ktqSOTKbllXbxeO8EEtMCCv4-sUOwrCTY" title="http://vk.com/docs?oid=-66674957"&gt;Домашнее задание - 1&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rdEmNK743h-ktqSOTKbllXbxeO8EEtMCCv4-sUOwrCTY" title="http://vk.com/docs?oid=-66674957"&gt;Домашнее задание - 2&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3580/</id>
    <title type="text">Время заявок и сделок отстает от исторического при тестировании</title>
    <published>2013-04-15T09:42:41Z</published>
    <updated>2013-04-15T09:42:41Z</updated>
    <author>
      <name>Roma</name>
      <uri>https://stocksharp.ru/users/38969/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Время заявок и сделок отстает от исторического при тестировании.&lt;br /&gt;Использую EmulationTrader, данные загружаю из истории, закаченой через Гидру.&lt;br /&gt;В чем причина, как сделать правильно?&lt;br /&gt;Далее куски кода.&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_fde44c6c7e4142e080c7534d03dc3bf2');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_fde44c6c7e4142e080c7534d03dc3bf2' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
private void EmulateClick(object sender, RoutedEventArgs e)
        {
            if (!Directory.Exists(tbPathHistory.Text))
            {
                System.Windows.MessageBox.Show(string.Format(&amp;quot;Directory is not found: {0}&amp;quot;, tbPathHistory.Text));
                return;
            }

            // хранилище, через которое будет производиться доступ к тиковой и котировочной базе 
            var storageRegistry = new StorageRegistry();

            // изменяем путь, используемый по умолчанию
            ((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = tbPathHistory.Text;

            // используем алфавитное хранилище
            ((LocalMarketDataDrive)storageRegistry.DefaultDrive).UseAlphabeticPath = true;

            //===============
            
            // создаем тестовый инструмент, на котором будет производится тестирование 
            _security = new Security
            {
                Id = tbSecurityId.Text,//&amp;quot;RIZ2@RTS&amp;quot;,
                // по идентификатору инструмента будет искаться папка с историческими маркет данными
                Code = tbSecurityCode.Text,//&amp;quot;RIZ2&amp;quot;,
                Name = tbSecurityName.Text,//&amp;quot;RTS-12.12&amp;quot;,
                ExchangeBoard = (ExchangeBoard)cbSecurityExchangeBoard.SelectedItem,//ExchangeBoard.Forts,
            };

            // тестовый портфель 
            _portfolio = new Portfolio { Name = tbPortfolioName.Text, BeginValue = decimal.Parse(tbPortfolioBeginValue.Text) };

            // создаем шлюз для эмуляции 
            // инициализируем настройки (инструмент в истории обновляется раз в секунду) 
            _trader = new EmulationTrader(
                new[] { _security },
                new[] { _portfolio },
                storageRegistry)
            {
                MarketTimeChangedInterval = tpTimeFrame.Value.Value.TimeOfDay,
            };

            _trader.Connect();
            _trader.StartExport();           
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_e209370aaff643b3a3edeed15cdf748d');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_e209370aaff643b3a3edeed15cdf748d' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

_candleSeries.ProcessCandle += candle =&amp;gt;
            {
                //Debug.Print(&amp;quot;{0}&amp;quot;, candle);

                var candleBounds = timeFrame.GetCandleBounds(_candleSeries.Security);

                if (candle.State == CandleStates.Finished || candle.OpenTime &amp;gt;= candleBounds.Min)
                {
                    var valueSma = _indicatorSma.Process(candle);
                    var chartValueSma = new ChartIndicatorValue(_indicatorSma, valueSma);

                    var valueStohastic = _indicator.Process(candle);
                    var chartValueStohastic = new ChartIndicatorValue(_indicator, valueStohastic);

                    this.GuiAsync(() =&amp;gt; Chart.ProcessValues(candle.OpenTime, new Dictionary&amp;lt;IChartElement, object&amp;gt;()
                        {
                            {_chartCandleElement, candle},
                            {_chartIndicatorSmaElement, chartValueSma},
                            {_chartIndicatorStohasticElement, chartValueStohastic}
                        }));
                }
            };
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_2b53045182fb42d6899c1f6edfe62d5a');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_2b53045182fb42d6899c1f6edfe62d5a' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

strategy.WhenNewMyTrades()
                        .Do(mytrades =&amp;gt; this.GuiAsync(
                            () =&amp;gt;
                                {
                                    Debug.WriteLine(&amp;quot;NewMyTrades: &amp;quot; + mytrades.Count());
                                    mytrades.ForEach(
                                        t =&amp;gt; Chart.ProcessValues(t.Trade.Time, new Dictionary&amp;lt;IChartElement, object&amp;gt;()
                                            {
                                                {_tradeElement, t}
                                            }));
                                }))
                            .Apply();

strategy.WhenOrderRegistered()
                       .Do(order =&amp;gt;
                           {
                               Debug.WriteLine(&amp;quot;OrderRegistered: &amp;quot; + order.Volume.ToString());
                               this.GuiAsync(
                                   () =&amp;gt; Chart.ProcessValues(order.Time, new Dictionary&amp;lt;IChartElement, object&amp;gt;()
                                       {
                                           {_orderElement, order}
                                       }));

                           })
                       .Apply();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3578/</id>
    <title type="text">Коттировщик изменяет цену инструмента, стакан</title>
    <published>2013-04-15T01:58:43Z</published>
    <updated>2013-04-15T01:58:43Z</updated>
    <author>
      <name>shumak</name>
      <uri>https://stocksharp.ru/users/26776/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Доброго времени суток! Торгую по изменению стакана. Отправляю заявки на покупку или продажу по коттировщику. Первое время стратегия торгует корректно, а затем, что стакан, что инструмент начинаю показывать совершенно другие данные - это текущее время, биды аски, цену инструмента (сравниваю с квиком). Проверял таким же образом торговать с помощью простых лимитированных заявок стратегия багов не давала.&lt;br /&gt;В чем может быть проблема ? </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3577/</id>
    <title type="text">Урок 1. Быстрый старт StockSharp!</title>
    <published>2013-04-13T10:45:28Z</published>
    <updated>2013-04-13T10:45:28Z</updated>
    <author>
      <name>IvanB</name>
      <uri>https://stocksharp.ru/users/26984/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;b&gt;&lt;span style="font-size:120%"&gt;Видео-уроки:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Основной урок:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167466607&amp;amp;hash=c6ed55fcd6fec380&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Введение в StockSharp.Studio:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="390" src="//www.youtube.com/embed/g-g-r4qyPzI" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;В данном уроке настроим Вашу торговую платформу и напишем первого торгового робота!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Выбрать свою платформу:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAJcKzrSUf-fEuXRPnn2hXnJ6QViJC1ocJuL92DJxUaNA" title="http://www.quik.ru/"&gt;Quik&lt;/a&gt;.Реальный Quik лучше получать у каждого брокера отдельно. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAJcKzrSUf-fEuXRPnn2hXn3eIE16BexidHRSNLycPwXwbALR-Wdts_gxIXrfvb24naFYW3WgRjo-xojSWCuao-" title="http://www.quik.ru/user/client/quik/how-to-start/"&gt;Получить демо&lt;/a&gt;.&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABNztwpfok8rjZVHveP56Joy2kfAOgdAytwHjUNO0pjsM3EGKFV7ZRyTHKPnSvJtMM" title="http://www.itinvest.ru/software/smartcom/"&gt;SmartCOM&lt;/a&gt;. Работает как служба, не требует графической платформы для ручной торговли. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADbZ_jmxcqJrwMswXFymB-dy5d0bfVCW3sAHSbc1gDxCg" title="https://itinvest.ru/open_demo/"&gt;Получить демо.&lt;/a&gt; &lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABjrBBWp5h6sVsxer0u5YJaphw-XdVnavL6MNwOCkZ3mQ" title="http://www.alfadirect.ru/"&gt;Альфа-Директ&lt;/a&gt;. Демо можно получить только имея реальный счет [blink] &lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADN2-BnmJmlUbKWzHrpV0RWcnGbAifV-Phcqj73CdP2mA" title="http://moex.com/s438"&gt;Plaza II&lt;/a&gt;. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADN2-BnmJmlUbKWzHrpV0RWcnGbAifV-Phcqj73CdP2mA" title="http://moex.com/s438"&gt;Получить демо&lt;/a&gt; (написать письмо, отвечают оперативно). Примерно выглядеть должно оно &lt;a target="_blank" href="https://stocksharp.ru/file/102560/plaza.png" data-preview-id='102560' title="https://stocksharp.ru/file/102560/plaza.png"&gt;так&lt;/a&gt;.&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADJB47QYbkBdE4Ryl80P1xreyjuR9wkWL4P4X4z_EblCiJnORvLlng8MZSrbvnu08I" title="http://www.gtcapital.ru/fusion.html"&gt;Fusion/BlackWood&lt;/a&gt;. Уточнение: платформа для торговли не требуется. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADJB47QYbkBdE4Ryl80P1xrB0RtzuiMrmLkWTFtF1mmxjHyROoPdFAv94UxA5Ifvlg" title="http://www.gtcapital.ru/formdemo.html"&gt;Получить демо&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAR6NPBH_hY1LPd7Zlenayq5Yd2RKuqvj9kWl-AIEg-VZdaRhy0QX2OZI2SD8ibILM" title="http://www.finam.ru/howtotrade/tconnector/"&gt;Transaq&lt;/a&gt;. Если клиент Финама, логин/пароль можно получить в личном кабинете. Transaq абсолютно бесплатный. &lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Настройка/запуск торговой платформы для робота:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAgUvTPSFPrucof6aW1UWygldCv5F37Wr6Aus6xeyGGGEUugD-aUEQg239xYw3VpTR0PhocTeczHKoJauMt7P3f" title="https://vimeo.com/channels/mainstocksharp/63811110"&gt;Quik(видео)&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAgUvTPSFPrucof6aW1UWygv_W6NSEO-LwoB7472Jz2_g" title="https://vimeo.com/66733743"&gt;Transaq (вебинар/видео)&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAgUvTPSFPrucof6aW1UWygUV8vWNGMiBdIxGEin8g-BA" title="https://vimeo.com/69308006"&gt;BlackWood (вебинар/видео)&lt;/a&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Темы занятия:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Основные концепции StockSharp&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Продукты StockSharp&lt;br /&gt;&lt;li&gt;Архитектура StockSharp&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Коннекторы&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Обзор коннекторов&lt;br /&gt;&lt;li&gt;Специфика передачи данных коннекторов&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Создание простого приложения&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Подключение к торговой платформе&lt;br /&gt;&lt;li&gt;Получение портфелей и торговых инструментов&lt;br /&gt;&lt;li&gt;Отправление первых заявок&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Домашнее задание:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;В программе реализована возможность подачи заявок на покупку, теперь нужно сделать возможность подачи заявок на продажу, чтобы пользователь приложения мог как покупать так и продавать.&lt;br /&gt;&lt;li&gt;Предусмотреть возможность отмены всех активных заявок.&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Документация:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.stocksharp.com/doc/" title="http://www.stocksharp.com/doc/"&gt;S# основная документация&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAbncQVTu8T5yVB2LlB47S-Cg1g0ATqhTIfmE_9bmJOjA" title="http://stocksharp.codeplex.com/"&gt;Исходные коды&lt;/a&gt; S#&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADa7P_4NHqE_OLFtnFd-d2rc9GNm78BSRg5Z4VassvwQDkRd2Zr9oYK0Wxc0eTuVnw" title="http://vk.com/docs?oid=-66650972"&gt;Скачать проекты&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;&lt;span style="color:red"&gt;Изменения в проектах:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_0e24469ce1b94c2dbeaf4dafb8502861');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_0e24469ce1b94c2dbeaf4dafb8502861' style='display:none'&gt;&lt;br /&gt;Проект QuikKiller&lt;br /&gt;&lt;br /&gt;Начиная с версии S# 4.1.19.1 статус подключения коннектора вынесен в специальное свойство ConnectionState, которое может принимать следующие значения:&lt;br /&gt;Disconnected - Не активно,&lt;br /&gt;Disconnecting - В процессе отключения,&lt;br /&gt;Connected - В процессе подключения,&lt;br /&gt;Connecting - Подключение активно,&lt;br /&gt;Failed - Ошибка подключения&lt;br /&gt;&lt;br /&gt;Таким образом, теперь нет свойства IsConnected, а наличие статуса подключения мы можем получать от свойства ConnectionState.&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:csharp"&gt;

        private void CancelClick(object sender, RoutedEventArgs e)
        {
            //отменить все ордера
            if(_trader!= null &amp;amp;&amp;amp; _trader.IsConnected)
                _trader.CancelOrders();
            else
                MessageBox.Show(&amp;quot;Подключитесь к Quik&amp;quot;);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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:csharp"&gt;

        private void CancelClick(object sender, RoutedEventArgs e)
        {
            //отменить все ордера
            if(_trader != null &amp;amp;&amp;amp; _trader.ConnectionState == ConnectionStates.Connected)
                _trader.CancelOrders();
            else
                MessageBox.Show(&amp;quot;Подключитесь к Quik&amp;quot;);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Аналогично, свойство ExportState, которое может принимать те же значения что и свойство ConnectionState:&lt;br /&gt;Disconnected - Не активно,&lt;br /&gt;Disconnecting - В процессе отключения,&lt;br /&gt;Connected - В процессе подключения,&lt;br /&gt;Connecting - Подключение активно,&lt;br /&gt;Failed - Ошибка подключения&lt;br /&gt;&lt;br /&gt;Таким образом, теперь нет свойства IsExportStarted, а статус экспорта данных мы можем получать от свойства ExportState.&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:csharp"&gt;

        protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
        {
            if (_trader != null)
            {
                if (_trader.IsExportStarted)
                    _trader.StopExport();

                _trader.Disconnect();
            }
                
            base.OnClosing(e);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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:csharp"&gt;

        protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
        {
            if (_trader != null)
            {
                if (_trader.ExportState == ConnectionStates.Connected)
                    _trader.StopExport();

                _trader.Disconnect();
            }
                
            base.OnClosing(e);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3576/</id>
    <title type="text">this.ClosePositionByQuoting() как задать объем которым будет оперировать стратегия котирования?</title>
    <published>2013-04-12T13:31:12Z</published>
    <updated>2013-04-12T13:31:12Z</updated>
    <author>
      <name>hroft</name>
      <uri>https://stocksharp.ru/users/6439/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Сабж. &lt;br /&gt;&lt;br /&gt;Чтобы не по одному контракту покрывало.&lt;br /&gt;Когда руками создаю котирование там понятно Volume задается, а здесь как.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3575/</id>
    <title type="text">Загрузка дробного объема не реализована</title>
    <published>2013-04-12T09:05:58Z</published>
    <updated>2013-04-12T09:05:58Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Закачал версию 4.1.10. При тестировании на истории ошибка&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_8a6da362167e4d6b8fd0ba48ee8f72da');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_8a6da362167e4d6b8fd0ba48ee8f72da' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;
[EmulationTrader. Loader thread] ERROR - Ошибка Trader.ProcessDataError
System.NotImplementedException: Загрузка дробного объема не реализована.
   at #=qMueekjLWPcRnMmpcsH_onUaT2zzAU7lnj0MzVNm1pSW$9M0K9d5ejydthObkCft5QuaV$hUcpzziXv3nxnfP1w==.#=qC6n_GzgTyB_8ETDPi3OZC0FZEmzMPEIwxiw_v5mtndY=(BitArrayReader #=q2UNJpVsOQzcRVK59nj$UtA==)
   at #=qI7bcdxtjB3xdyC5AD$khyZo6JTCSo4JTbVGKeQgsOeUVkucjnSLhWhRCxlr9KmDU.#=qFBb4sX7X7rKlOjGXZBmlhw==(#=qh5OubS5xh7gDG0OMHR6nr3xXWKlov18A9WtmobPOhe87Vn34WYGXheVdIv$w5SQ3gzW6zh3a60wj6IxqKT8F4Q== #=qinIuM$1YAOiHFq6jHhVXmA==)
   at #=qh5OubS5xh7gDG0OMHR6nr3xXWKlov18A9WtmobPOhe87Vn34WYGXheVdIv$w5SQ3gzW6zh3a60wj6IxqKT8F4Q==.MoveNext()
   at StockSharp.Algo.Testing.EmulationTrader.#=q6XpP7Wexnl9hgapLZ604gA==..ctor(IEnumerable`1 #=qy2m7DPvcSCVIplxpVfzcxQ==, Func`2 #=qNXONgQ94bKCuGMHNmg6VMQ==, Func`2 #=qDHzB3VdhAIHJnomlBx9JTw==)
   at StockSharp.Algo.Testing.EmulationTrader.#=qmM0YT4qhwVK49HND4lbLAnYn5IIWEsb$8UhwNXb5Sco=(List`1 #=qHgqgrD3dIaRcCYYXaV75bg==, Dictionary`2 #=qz9ITVEvb5_W9UCiUntrrOg==, Dictionary`2 #=qKvPu3sH4V3VNsRGojDQ4mw==, DateTime #=qqoA$aS6JooLYw81Fg6z9MA==)
   at StockSharp.Algo.Testing.EmulationTrader.#=qENUsauuFV$nrWrhWOjYHEzrsjgibi$ZYVqlHf1LjwoU=(DateTime #=qvpzyGcHFiW1xZmvEPSZPNw==)
   at StockSharp.Algo.Testing.EmulationTrader.#=qntZ_ZJIBEY0TVn_QLf9jtQ==()&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
</feed>