﻿<?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">smartcom. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=tag&amp;id=smartcom&amp;type=community&amp;page=4</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-14T20:27:40Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=tag&amp;id=smartcom&amp;type=community&amp;page=4" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/2990/</id>
    <title type="text">Сохранение стаканов по GAZP@EQNE</title>
    <published>2012-09-04T20:20:01Z</published>
    <updated>2012-09-04T20:20:01Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Версия 4.1.3.&lt;br /&gt;При сохранении стакана получаю ошибку:&lt;br /&gt;&lt;br /&gt;System.ArgumentException was unhandled by user code&lt;br /&gt;  HResult=-2147024809&lt;br /&gt;  Message=Минимальный шаг цены 2 не соответствует самой цене 157,12.&lt;br /&gt;Parameter name: minStepSize&lt;br /&gt;  Source=StockSharp.Algo&lt;br /&gt;  ParamName=minStepSize&lt;br /&gt;  StackTrace:&lt;br /&gt;       at #=qWS6OUYaoueyv8N_p$iUUwZ85UAdWtPhxpaXagCNkqCwLCJVYOkuKBLIeK7jI5aUc5Sn8BEb9tO2mntII3NTxVQ==.#=qAnBz8Ityt4T6LvTRdUnNBg==(List`1 #=qemH3YAbFDmz4Cwm4$RSaNw==, Decimal #=qkU1DO$f1w1vnnS16DiKOFg==, Decimal #=qxPCVYHoKRzE58GKN5SuTNg==, Decimal #=qFNnnskeqZXDXvK9SSHZTtQ==)&lt;br /&gt;       at #=qBqzAfx4eX6jbAhjwSd62HDxRx7KjXUhZdaqXaKrbhWNK89$cczN7Ybo1P582C383.#=q969U9984I3HTR_4ffrpawxtVfjAdaV8QbNMp6iNTuRY=(List`1 #=qfk$TQuhZjR0JVwetyRmlbQ==, Quote[] #=qkiOcNo3i9GbfYwIUpBhkog==, #=qvs0CsnLs_Ss1esfBSm5zwBJaDoBW$uY3FBMC6svegSZeQ2rqGZkXJaXHGH7s1irW #=q$pMXMoyIX6UURz7ULcGzlQ==, Boolean #=qPXEk8bqhIVqtD1r6qQRxfQ==)&lt;br /&gt;       at #=qBqzAfx4eX6jbAhjwSd62HDxRx7KjXUhZdaqXaKrbhWNK89$cczN7Ybo1P582C383.#=qPNbrzoo63qiPKAB3RxCH5A==(List`1 #=qHaHP4WZSVdKz53Hwzy$ekw==, IEnumerable`1 #=qASUWOKDOCFZ2Wu9LWXkBtQ==, #=qvs0CsnLs_Ss1esfBSm5zwBJaDoBW$uY3FBMC6svegSZeQ2rqGZkXJaXHGH7s1irW #=qMfciDzi6G743_rIzu43_Aw==)&lt;br /&gt;       at #=qz04YdXG2$YAOxeHvpD93kpzjtGGmn$CBMgLGYgYx3D5hyvyfpJ92$IJuzvbahT9DbHGoXECLGq73jVeWqoM7WA==.#=qhS5pEqj0jxrC3EkM2L2ByLP81D1u7MoFLP3gC9SmO2Ha62X2cRDXdnIw_qFSrI0yPZNVSXkqSrWbXB_ShwaNMF27KENqU9n7vKpFW$rzX$w=(IEnumerable`1 #=qVh5t1g33tQf$GUY1wukgfA==, #=qT_JKyf8jvmdh8CnDd2erv404Kgk89rxorXnimUV3J5ygkrYMLo9XjjmlV7xs65$6 #=qSWB2y1ELx12TguZDCS1CWQ==)&lt;br /&gt;       at #=qh2YSDa39RBEjCcO4rb2nambbPWQx618j_mhbAjIJkMVjnwGRGU3KGJb5NYvLGTBn.#=qteF9LpJJBLkC9LySoZdzwA==(DateTime #=qZ5Kd0lhJbrY2DbBE04yF9Q==, #=qZHHnzqkYDg7xCyaxj6PR9A==[] #=qh5tCqhElr2D_oYbBKomIaQ==, Boolean #=qSVNcMUfTvym2UYUPwu0xcQ==)&lt;br /&gt;       at #=qh2YSDa39RBEjCcO4rb2nambbPWQx618j_mhbAjIJkMVjnwGRGU3KGJb5NYvLGTBn.Save(IEnumerable`1 #=qDijncmxOZuMVXEQZJ6Gg9w==)&lt;br /&gt;       at HydraConsole.Initializer.SaveMarketDepths() in C:\ActiveProjects\AlgoTrading2\trunk\SourceCode\Hydra3\Hydra\Initializer.cs:line 313&lt;br /&gt;       at HydraConsole.Initializer.&amp;lt;&amp;gt;c__DisplayClass1d.&amp;lt;InitializeWorker&amp;gt;b__19(Object sender, DoWorkEventArgs args) in C:\ActiveProjects\AlgoTrading2\trunk\SourceCode\Hydra3\Hydra\Initializer.cs:line 235&lt;br /&gt;       at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)&lt;br /&gt;       at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)&lt;br /&gt;  InnerException: &lt;br /&gt;&lt;br /&gt;javascript:__doPostBack(&amp;#39;forum$ctl03$PostReply&amp;#39;,&amp;#39;&amp;#39;)&lt;br /&gt;Бумагу со всеми параметрами получаю со смарткома как в примере SampleSmartConsole&lt;br /&gt;При попытке качать маркет данные по бумагам ММВБ в Гидре получал аналогичные ошибки.&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2989/</id>
    <title type="text">ProcessDataError</title>
    <published>2012-09-04T20:00:19Z</published>
    <updated>2012-09-04T20:00:19Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Версия 4.1.3. После подключения в событии ProcessDataError получаю ошибку:&lt;br /&gt;&lt;br /&gt;System.ComponentModel.Win32Exception (0x80004005): Access is denied&lt;br /&gt;   at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited)&lt;br /&gt;   at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited)&lt;br /&gt;   at System.Diagnostics.Process.Kill()&lt;br /&gt;   at StockSharp.Smart.SmartTrader.KillSmartComProcess()&lt;br /&gt;   at StockSharp.Smart.SmartTrader.OnConnect()&lt;br /&gt;&lt;br /&gt;Нужно из под администратора запускать?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2942/</id>
    <title type="text">начало</title>
    <published>2012-08-16T07:03:04Z</published>
    <updated>2012-08-16T07:03:04Z</updated>
    <author>
      <name>R2D2</name>
      <uri>https://stocksharp.ru/users/6222/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">добрый день, подскажите пожалуйста правильно ли развиваю мысль? &lt;br /&gt;споткнулся сразу как начал &lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;using&lt;/span&gt; StockSharp.Smart;&lt;br /&gt;&lt;span style="color:blue"&gt;using&lt;/span&gt; StockSharp.Algo;&lt;br /&gt;&lt;span style="color:blue"&gt;using&lt;/span&gt; StockSharp.BusinessEntities;&lt;br /&gt;&lt;span style="color:blue"&gt;using&lt;/span&gt; Ecng.Common;&lt;br /&gt;&lt;span style="color:blue"&gt;using&lt;/span&gt; Ecng.ComponentModel;&lt;br /&gt;&lt;span style="color:blue"&gt;using&lt;/span&gt; Ecng.Collections;&lt;br /&gt;&lt;span style="color:blue"&gt;using&lt;/span&gt; Ecng.Serialization;&lt;br /&gt;&lt;span style="color:blue"&gt;private void&lt;/span&gt; button1_Click(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color:blue"&gt;string&lt;/span&gt; u_name = &amp;quot;BP***&amp;quot;;&lt;br /&gt;            &lt;span style="color:blue"&gt;string&lt;/span&gt; u_pass = &amp;quot;***&amp;quot;;&lt;br /&gt;            &lt;span style="color:blue"&gt;string&lt;/span&gt; u_adress = &amp;quot;82.204.220.34&amp;quot;;&lt;br /&gt;         &lt;br /&gt;            System.Net.&lt;span style="color:cyan"&gt;IPAddress&lt;/span&gt; addr = System.Net.&lt;span style="color:cyan"&gt;IPAddress&lt;/span&gt;.Parse(u_adress);&lt;br /&gt;            System.Net.&lt;span style="color:cyan"&gt;IPEndPoint&lt;/span&gt; adr = new System.Net.&lt;span style="color:cyan"&gt;IPEndPoint&lt;/span&gt;(addr, 8090);&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;&lt;br /&gt;            trader = &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:cyan"&gt;SmartTrader&lt;/span&gt;(u_name, u_pass, adr);&lt;br /&gt;            trader.Connect();&lt;br /&gt;            &lt;span style="color:blue"&gt;if &lt;/span&gt;(trader.IsConnected == &lt;span style="color:blue"&gt;true&lt;/span&gt;)&lt;br /&gt;            { label1.Text = &lt;span style="color:darkred"&gt;&amp;quot;ok&amp;quot;&lt;/span&gt;; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;вот собственно все что пока написал, но по индикатору &lt;span style="color:brown"&gt;Label1&lt;/span&gt; после кучи попыток подключения таки до сих пор не было, &lt;br /&gt;может есть какой-то наглядный способ проверить соединение?не сложный</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2941/</id>
    <title type="text">Ошибка в примерах</title>
    <published>2012-08-15T22:47:25Z</published>
    <updated>2012-08-15T22:47:25Z</updated>
    <author>
      <name>R2D2</name>
      <uri>https://stocksharp.ru/users/6222/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Здравствуйте, подскажите пожалуйста что может быть в таком случае:&lt;br /&gt;&lt;br /&gt;ms visual c# 2010 express&lt;br /&gt;вчера скачал последние дистрибутивы StockSharp полностью&lt;br /&gt;получил лицензию на год&lt;br /&gt;подключен сервис smartCom&lt;br /&gt;&lt;br /&gt;но при нажатии кнопки подключиться первого примера (как и остальных) у меня появляется ошибка, &lt;br /&gt;кто в курсе в чем  дело сообщите пожалуйста&lt;br /&gt;&lt;br /&gt;менял разрядности х86 и х64 эффект тот же самый&lt;br /&gt;выхожу на свой счет на действующий ip</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2937/</id>
    <title type="text">Когда вызывается OnNewTrades?</title>
    <published>2012-08-14T13:39:33Z</published>
    <updated>2012-08-14T13:39:33Z</updated>
    <author>
      <name>andy_baka_</name>
      <uri>https://stocksharp.ru/users/646/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">День добрый!&lt;br /&gt;&lt;br /&gt;Помогите разобраться с данными. &lt;br /&gt;&lt;br /&gt;При получении информации о количестве трейдов в исторической свечке как от OnNewHistoryCandles, так и от &lt;br /&gt;CandleManager данные полностью совпадают.&lt;br /&gt;Но если просто подсчитать количество вызовов события OnNewTrades за минуту, например, данные не совпадают.&lt;br /&gt;&lt;br /&gt;Что не так делается? &lt;br /&gt;Можно ли количество вызовов события OnNewTrades за интервал времени интерпретировать как количество сделок за этот же период?    &lt;br /&gt;&lt;br /&gt;Спасибо заранее </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2886/</id>
    <title type="text">4.1.2 Внезапные переподключения к торговому серверу</title>
    <published>2012-07-23T14:46:28Z</published>
    <updated>2012-07-23T14:46:28Z</updated>
    <author>
      <name>Андрей Александрович</name>
      <uri>https://stocksharp.ru/users/255/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Здравствуйте,  после перехода на новую версию библиотеки начались беспричинные разрывы связи с торговым сервером. В классе подключения есть обработчики исключений catch (COMException ex) и catch (Exception ex) но они ничего не фиксируют... система просто начинает переподключаться. В классе отвечающим за подключение ничего не менялось и до перехода на новую версию библиотеки такого не наблюдалось ни разу. Подскажите в чем может быть проблема и как мне определить её причины в этом случае.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2878/</id>
    <title type="text">Вопрос по SecurityChanged</title>
    <published>2012-07-19T18:11:08Z</published>
    <updated>2012-07-19T18:11:08Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.ru/users/6063/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">А кто знает в каких именно случаях возникает SequrityChanged? Я раньше всегда считал что оно возникает по изменению Bid Ask и по совершению сделки. Добавил обработку SequrityChanged в SampleSmart &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.ConnectionError += error =&amp;gt; this.GuiAsync(() =&amp;gt;
					{
						// заблокируем кнопку Экспорт (так как соединение было потеряно)
						ChangeConnectStatus(false);

						MessageBox.Show(this, error.ToString(), &amp;quot;Ошибка соединения&amp;quot;);	
					});

					Trader.ProcessDataError += error =&amp;gt; this.GuiAsync(() =&amp;gt; MessageBox.Show(this, error.ToString(), &amp;quot;Ошибка обработки данных&amp;quot;));

					Trader.NewSecurities += securities =&amp;gt; this.GuiAsync(() =&amp;gt; _securitiesWindow.AddSecurities(securities));
					Trader.NewMyTrades += trades =&amp;gt; this.GuiAsync(() =&amp;gt;
                        _myTradesWindow.Trades.AddRange(trades));
					Trader.NewTrades += trades =&amp;gt; this.GuiAsync(() =&amp;gt;
                        {
                            foreach (var trade in trades)
                            {
                                LastTradeID=trade.Id;
                                Console.WriteLine(&amp;quot; Trade id &amp;quot; + trade.Id+&amp;quot; Trade price &amp;quot;+trade.Price);
                            }
                            _tradesWindow.Trades.AddRange(trades);
                        }
                        );
                    Trader.SecuritiesChanged += Secs =&amp;gt;
                    {
                        foreach (Security Sec in Secs)
                        {
                            if (Sec.LastTrade != null)
                                Console.WriteLine(&amp;quot;sec &amp;quot; + Sec.Code + &amp;quot; sec trade id &amp;quot; + Sec.LastTrade.Id + &amp;quot;sec trade price &amp;quot; + Sec.LastTrade.Price + &amp;quot; last trade id &amp;quot; + LastTradeID);
                        }
                    };
&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;
sec RIU2 sec trade id 0sec trade price 140410 last trade id 599469678
sec RIU2 sec trade id 0sec trade price 140410 last trade id 599469678
sec RIU2 sec trade id 0sec trade price 140410 last trade id 599469678
sec RIU2 sec trade id 0sec trade price 140410 last trade id 599469678
 Trade id 599469685 Trade price 140415
 Trade id 599469686 Trade price 140415
 Trade id 599469687 Trade price 140420
 Trade id 599469688 Trade price 140420
 Trade id 599469689 Trade price 140420
 Trade id 599469690 Trade price 140420
 Trade id 599469691 Trade price 140425
 Trade id 599469692 Trade price 140425
 Trade id 599469693 Trade price 140425
 Trade id 599469694 Trade price 140430
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
 Trade id 599469696 Trade price 140425
sec RIU2 sec trade id 0sec trade price 140425 last trade id 599469696

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;похоже SequrityChanged приходит не после каждой сделки. Причем не приходит даже после сделок с другой ценой. &lt;br /&gt;И еще вопрос почему в обработчик Trader.SequrityChanged LastTrade всегда приходит с Id==0?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2877/</id>
    <title type="text">Проблема с CandleManager.Start</title>
    <published>2012-07-19T10:48:30Z</published>
    <updated>2012-07-19T10:48:30Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.ru/users/6063/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">После перехода с 4.1.1 на 4.1.2, вдруг начало вылетать исключение ArgumentNull. При этом пишет следующее - Value cannot be null.&lt;br /&gt;Parameter name: securityId. В 4.1.1 все хороше работало. Код простейший:&lt;br /&gt; &lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

  var timeFrame = TimeSpan.FromMinutes(1);
  CandleSeries series = new CandleSeries(typeof(TimeFrameCandle), Sec, timeFrame);
  candleManager.Start(series);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Sec.Id кончно-же есть.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2837/</id>
    <title type="text">Security : INotifyPropertyChanged</title>
    <published>2012-07-05T23:48:41Z</published>
    <updated>2012-07-05T23:48:41Z</updated>
    <author>
      <name>igork</name>
      <uri>https://stocksharp.ru/users/6303/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Доброе время суток. &lt;br /&gt;&lt;br /&gt;В документации класс Security объявлен как &lt;br /&gt;&lt;br /&gt;public class Security : Equatable&amp;lt;Security&amp;gt;, IExtendableEntity, INotifyPropertyChangedEx, INotifyPropertyChanged&lt;br /&gt; &lt;br /&gt;Раз так, то появляется желание подписаться на PropertyChanged, чтобы не ловить Trader.SecurityChanged (лишние расходы на поиск в коллекции). Но не тут то было. Вариант&lt;br /&gt;&lt;br /&gt;StockSecurity.PropertyChanged += _propertyChangedEventHandler&lt;br /&gt;&lt;br /&gt;закрыт. Если зайти с другой стороны&lt;br /&gt;&lt;br /&gt;foreach (INotifyPropertyChanged propertyChanged in StockSecurity)&lt;br /&gt;{&lt;br /&gt;    propertyChanged.PropertyChanged += _propertyChangedEventHandler;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;- тоже невозможно реализовать, к сожалению.&lt;br /&gt;&lt;br /&gt;Так реализует ли Security интерфейс INotifyPropertyChanged? И как правильно подписаться на PropertyChanged у Security и что я упустил в примерах / документации.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2795/</id>
    <title type="text">IsExpired()</title>
    <published>2012-06-18T07:00:11Z</published>
    <updated>2012-06-18T07:00:11Z</updated>
    <author>
      <name>raf</name>
      <uri>https://stocksharp.ru/users/28475/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">security.IsExpired() возвращает false для истекших контрактов (S# 4.0)</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2791/</id>
    <title type="text">клиринг в 18:45 - после него проблемы.</title>
    <published>2012-06-13T15:42:29Z</published>
    <updated>2012-06-13T15:42:29Z</updated>
    <author>
      <name>igork</name>
      <uri>https://stocksharp.ru/users/6303/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">SmartCom 4.0.20.  &lt;br /&gt;&lt;br /&gt;Искал причину того, что после вечернего клиринга приложение видит securities со старыми параметрами (ClosePrice и т.д.). Даже StopExport/StartExport не решали проблему, пришлось делать Disconnect и Connect, только так инструменты начинают обновляться. &lt;br /&gt;&lt;br /&gt;Последующие наблюдения дали следующие результаты: если происходит обрыв связи в ходе торговой сессии, то в соответсвии с настройками ReConnect происходит нормально и все работает пучком (кажется, с пристрастием не тестировал). Но с клирингом в 18:45 проблемы. В 18:45:41 получаем последние сообщения Position Changed, и после этого получение сообщений SecuritiesChanged прекращается. При этом никаких проблем с коннектом не было, соединение за 15 минут (18:45 - 19:00) не разрывалось. Далее каждые 20 секунд приходит PortfolioChanged, но более никаких сообщений по позициям и инструментам не поступает (трэйды не пробовал, робот не торгует, потому что у него тупо старые цены стоят). Как написано выше, StopExport/StartExport не решают проблему. Забавно, но если сделать StopExport/StartExport в 19:03, то SecuritiesChanged приходит один раз, но параметры инструмента старые. Только полное переподключение решает проблему.  &lt;br /&gt;&lt;br /&gt;Переподключение закодирую, но исключительно для собственного понимания - почему так? Могу выслать целиковое приложение VS2010 если необходимо для того, чтобы посмотреть у себя. </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2775/</id>
    <title type="text">Матчинг ордеров и заявок</title>
    <published>2012-06-08T00:24:06Z</published>
    <updated>2012-06-08T00:24:06Z</updated>
    <author>
      <name>igork</name>
      <uri>https://stocksharp.ru/users/6303/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Хотелось бы понять, как матчить ордера и их исполнение (трэйды), чтобы отследить полное исполнение заявки.&lt;br /&gt;&lt;br /&gt;Допустим, один из режимов работы будущего робота будет &amp;quot;синхронный&amp;quot;, то есть выбрасывается несколько ордеров по маркету (допустим), и затем ожидание их исполнения, и только после этого пойдет последующая расстановка ордеров и т.д. Проблема усложняется тем, что на том же счету будет работать несколько роботов (в будущем) с теми же инструментами, и следовательно MyTrades и Orders будут сыпаться во все роботы синхронно, и их нужно как-то разделять. Так как объект Strategy не удалось для этого прикрутить, после недолгого размышления пришла мысль использовать коментарии (Order.Comment). &lt;br /&gt;&lt;br /&gt;Все выглядит примерно так. &lt;br /&gt;&lt;br /&gt;1. В методе Connect &lt;br /&gt;&lt;br /&gt;   trader.NewOrders += orders =&amp;gt; { ProcessNewOrder(orders) };&lt;br /&gt;   trader.OrderChanged += orders =&amp;gt; {ProcessNewOrders(orders) };&lt;br /&gt;   trader.OrderRegisterFailed += ....&lt;br /&gt;   trader.OrderCancelFailed += ....&lt;br /&gt;   trader.NewMyTrades += trades =&amp;gt; { ProcessMyTrades(trades) };&lt;br /&gt;&lt;br /&gt;2. В методе запуска ордеров&lt;br /&gt;&lt;br /&gt;   а. Создаем потокобезопасную коллекцию, в которой храним Comment + нужные нам данные. &lt;br /&gt;   &lt;br /&gt;   _collection = new ThreadSafeObservableCollection&amp;lt;MyCollection&amp;gt;();&lt;br /&gt;&lt;br /&gt;   б. Создаем ордер. &lt;br /&gt;   o = new Order {&lt;br /&gt;	Market, Price, Volume, Direction, &lt;br /&gt;	Comment = StrategyID.ToString() + Type.ToString() + Portfolio.Name + Security.ID + Direction.ToString() + RND.Next().ToString()&lt;br /&gt;	};&lt;br /&gt;&lt;br /&gt;   в. Регистрируем его в коллекции. &lt;br /&gt;   MyCollection col = new MyCollection();&lt;br /&gt;   MyCollection.Comment = o.Comment;&lt;br /&gt;   _collection.Add(col);&lt;br /&gt;&lt;br /&gt;   г. запускаем Order.&lt;br /&gt;   trader.RegisterOrder(o);&lt;br /&gt;&lt;br /&gt;   и далее последовательно несколько ордеров в том же цикле. На этом выставление завершается, ждем подтверждений.&lt;br /&gt;&lt;br /&gt;Теперь в методе &lt;br /&gt;&lt;br /&gt;private void ProcessNewOrder(orders)&lt;br /&gt;{&lt;br /&gt;        foreach (Order o in orders)&lt;br /&gt;	{&lt;br /&gt;		String Comment = o.Comment;&lt;br /&gt;		var c = _collection.FirstOrDefault( cc =&amp;gt; cc.Comment == Comment);&lt;br /&gt;		if (var != null)&lt;br /&gt;                   нашли наш ордер, который мы запускали. &lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;и далее по шагам:&lt;br /&gt;- когда order.State != Done - в коллекции отмечаем, что он не выполнен, следовательно весь цикл не имеет смысла, отыгрываем позицию назад (логика исключительно для примера). &lt;br /&gt;- когда Order.State == Done - отмечаем это, и ждем прихода MyTrades по этому ордеру. &lt;br /&gt;- если в процессе ожидания исполнения лимитных заявок рынок ушел, то убить все неисполненные ордера, запустить ордера для возврата позиции в исходное состояние (где отрботал sell туда дать Buy), и войти заново по новым уровням....&lt;br /&gt;&lt;br /&gt;- в событии ProcessMyTrades(trades) через вложенный Order по комментарию находим элемент коллекции и ждем, когда в трэйдах придет все то количество, которое мы размещали в Order.Volume. &lt;br /&gt;&lt;br /&gt;- и так далее с очень разветвленным алгоритмом.&lt;br /&gt;&lt;br /&gt;Собственно вопрос: есть ли более элегантный метод матчинга, чем генерация комментариев через SID и rnd, чтобы не сравнивать строки? Я надеялся (казалось, логично) на TransactionID, но он всегда нулевой. &lt;br /&gt;&lt;br /&gt;P.S. Не знаю, баг это или специфическое поведение, но согласно документации Объект MyTrade фактически содержит в себе два объекта Trade и Order. В процессе матчинга я пытался проверять, одинаковые ли MyTrade.Trade.OrderDirection и MyTrade.Order.Direction (мало ли :-) ). Оказалось, что MyTrade.Trade.OrderDirection всегда есть null, и следовательно, когда получаешь новый MyTrade по событию trader.NewMyTrades +&amp;gt;, то направление трэйда можно получить только из вложенного ордера. Версия 4.0.20. &lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2766/</id>
    <title type="text">Время установления связи со SmartCOM вышло</title>
    <published>2012-06-06T08:43:51Z</published>
    <updated>2012-06-06T08:43:51Z</updated>
    <author>
      <name>raf</name>
      <uri>https://stocksharp.ru/users/28475/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">после установки связи, получения списка Securities с сервера я начинаю подписку на получение данных и происходит обрыв связи.&lt;br /&gt;trader.ConnectionError возвращает Message &amp;quot;Время установления связи со SmartCOM вышло&amp;quot;&lt;br /&gt;Попытки восстановить соединение в режиме AutoReConnect не приводит к успеху:&lt;br /&gt;Подключение к SmartCOM не инициализировано. trader.ConnectionError.Message:&lt;br /&gt;   в StockSharp.Smart.SmartComWrapper.#=qisONmiwB5tu5zesjiVEMEw==(Action`1 #=q1pQ_I2KLhT$Ktydh56FY7A==)&lt;br /&gt;   в StockSharp.Smart.SmartComWrapper.#=qVpeuRlF$Kfqnn65XX8fzZQ==()&lt;br /&gt;   в StockSharp.Smart.SmartComWrapper.Disconnect()&lt;br /&gt;   в StockSharp.Smart.SmartTrader.OnDisconnect()&lt;br /&gt;   в StockSharp.Algo.BaseTrader.Disconnect()&lt;br /&gt;   в StockSharp.Algo.BaseTrader.#=qel4e2JQNZFjbJuoeJ1HN7w==() </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2754/</id>
    <title type="text">Не приходит Security.LastTrade</title>
    <published>2012-05-31T08:11:37Z</published>
    <updated>2012-05-31T08:11:37Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.ru/users/6063/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">В security в версии 4.1.1 не приходят lastrade по инексу фючерсу на индекс RTS (RIM2). Значение Security.LastTrade всегда NULL. Рекомендацию по почистке ревизии в папке сроботом выполнил путем удаления всех dll вышеозначенной пакпке. Хотелось бы уточнмть что конкретно понимается в данном случае под термином &amp;quot;почистить&amp;quot; и как получить LastTrade?  </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2727/</id>
    <title type="text">SampleSmartCandles</title>
    <published>2012-05-23T06:02:34Z</published>
    <updated>2012-05-23T06:02:34Z</updated>
    <author>
      <name>VladOA</name>
      <uri>https://stocksharp.ru/users/5989/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">В примерах SmartCom не выбирается сервер соединения. Почему?&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2631/</id>
    <title type="text">security.GetTotalVolume() - InvalidCastException: Заданное приведение является недопустимым</title>
    <published>2012-04-24T12:56:33Z</published>
    <updated>2012-04-24T12:56:33Z</updated>
    <author>
      <name>raf</name>
      <uri>https://stocksharp.ru/users/28475/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;br /&gt;System.InvalidCastException не обработано пользовательским кодом&lt;br /&gt;  Message=Заданное приведение является недопустимым.&lt;br /&gt;  Source=StockSharp.Smart&lt;br /&gt;  StackTrace:&lt;br /&gt;       в StockSharp.Smart.SmartExtensionInfoHelper.#=qT8h33OMBxZUx6aHd2Hblhg==[T](IExtendableEntity #=q2ZG9Ke_KNSFoE_gk5$7bfw==, String #=qeJokWI1V387V4kGkmHpP5A==)&lt;br /&gt;       в StockSharp.Smart.SmartExtensionInfoHelper.GetTotalVolume(Security security)&lt;br /&gt;  InnerException: &lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2630/</id>
    <title type="text">Вопрос по Wrapper</title>
    <published>2012-04-24T12:37:27Z</published>
    <updated>2012-04-24T12:37:27Z</updated>
    <author>
      <name>dvoris</name>
      <uri>https://stocksharp.ru/users/5897/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Хочу подписаться на события Wrapper&amp;#39;a, как это указано здесь: &lt;a href="http://stocksharp.com/doc/html/535227b6-0338-44c9-9a9b-9baf9bab10b4.htm " title="http://stocksharp.com/doc/html/535227b6-0338-44c9-9a9b-9baf9bab10b4.htm "&gt;http://stocksharp.com/do...9-9a9b-9baf9bab10b4.htm &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Выдаёт ошибку:&lt;br /&gt;&lt;br /&gt;Ошибка 1 Член &amp;quot;StockSharp.Smart.SmartComWrapper.OrderChanged&amp;quot; из сборки &amp;quot;..harp\StockSharp_4.0.20_Sources\References\StockSharp.Smart.dll&amp;quot; не может использоваться за пределами сборки, так как он содержит тип с параметром универсального типа, являющийся внедренным типом взаимодействия.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2617/</id>
    <title type="text">В 4.0.23 не появляется портфель ХХХ-RF-01 для FORTS</title>
    <published>2012-04-19T13:37:13Z</published>
    <updated>2012-04-19T13:37:13Z</updated>
    <author>
      <name>karellin</name>
      <uri>https://stocksharp.ru/users/27777/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Решил попробовать библиотеку S# в действии.&lt;br /&gt;В C# это мой первый опыт, до этого занимался Delphi, поэтому возможно&lt;br /&gt;что-то делаю не так.&lt;br /&gt;Подключаюсь стандартно к событию получения портфелей из S# 4.0.23.&lt;br /&gt;Появляется только портфель XXX-MS-01. Портфеля ХХХ-RF-01 (FORTS) нет.&lt;br /&gt;&lt;b&gt;Посмотрел пример из 4.0.22. Там все работает и портфель ХХХ-RF-01 появляется&lt;/b&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;

//Определяем, есть ли загруженные соединения
            if (STCCollection.Count &amp;gt; 0)
            {
                connectBox.Text += &amp;quot; Производим подключение... \r\n&amp;quot;;
                connectBox.Refresh();
                //Отключаем кнопку соединения
                connectButton.Enabled = false;
                // Определяем, какая строка таблицы соединений выделена
                int tmp = connectGrid.CurrentRow.Index;
                //Загружаем из коллекции соединений нужное соединение
                var temp = STCCollection.Get(tmp);
                //Создаем шлюз
                Trader = new SmartTrader(temp.Login, temp.Password, temp.IP);

                //портфели
                Trader.NewPortfolios += portfolios =&amp;gt; portfolios.ForEach(Trader.RegisterPortfolio);
                // подписываемся на событие успешного подключения
                Trader.Connected += () =&amp;gt; {arevntMain.Set();};
                //Устанавливаем флаг ожидания соединения
                arevntMain.Reset();
                //Соединяемся
                Trader.Connect();
                //ожидаем события подключения
                arevntMain.WaitOne();
                connectBox.Text += &amp;quot;Подключение было произведено успешно. \r\n&amp;quot;;
                connectBox.Text += &amp;quot;Trader.IsConnected=&amp;quot; + Trader.IsConnected.ToString() + &amp;quot;\r\n&amp;quot;;
                connectBox.Refresh();
                Trader.StartExport();
            }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Результат на скриншоте. &lt;br /&gt;Кто-нибудь может объяснить причины отсутствия портфеля?&lt;br /&gt;Может быть причина в изменении этого (код из примера из 4.0.22):&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;

		Portfolios.Trader = _trader;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2578/</id>
    <title type="text">Банальная задача, но непонятно как решать.</title>
    <published>2012-04-06T00:45:14Z</published>
    <updated>2012-04-06T00:45:14Z</updated>
    <author>
      <name>igork</name>
      <uri>https://stocksharp.ru/users/6303/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Задача - написать отдельный сервис, который бы срабатывал в моменты 18:45:20 и 23:45:20, снимал бы статус всех счетов (балансы, открытые позиции) и отключался. В связи с асинхронной моделью задача кажется некрасиво реализуемой. &lt;br /&gt;&lt;br /&gt;Что делаем:&lt;br /&gt;1. Подписываемся на .NewPortfolios += portfolios =&amp;gt; .... Trader.RegisterPortfolio() здесь.&lt;br /&gt;   Подписываемся на .NewPositions += positions =&amp;gt; ... (хотя наверное этого можно и не делать). &lt;br /&gt;2. Запускаем StartExport&lt;br /&gt;3. Тупо в цикле делаем Thread.Sleep(1000) 20-30 раз, за это время приходят события по портфелям и по позициям. Подозреваю, что в моменты клиринга и ночью этого времени достаточно, но если времени не хватит - как понять, что вся инфомация пришла? Использовать вариант waitHandle нереально, так как кол-во портфелей может поменяться (в теории) и позиции точно каждый день разные, и сколько их - заранее неизвестно. &lt;br /&gt;4. После паузы делаем &lt;br /&gt;      Trader.portfolios.ForEach(снять данные портфеля)&lt;br /&gt;      Trader.positions.ForEach(снять позиции по портфелям).&lt;br /&gt;&lt;br /&gt;5. Далее проще - регистрируем акции/фюьчи из портфеля, смотрим их котировки/ГО и все считаем. &lt;br /&gt;6. Отключаемся.&lt;br /&gt;&lt;br /&gt;Господа авторы, подскажите пожалуйста правильный путь. Есть ли какие-то варианты того, как убедиться в том, что &lt;br /&gt;(1) пришла / актуализировалась информация по всем портфелям &lt;br /&gt;(2) прошла информация по всем позициям?&lt;br /&gt;&lt;br /&gt;Заранее благодарю. &lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2566/</id>
    <title type="text">Все свои сделки с начала дня</title>
    <published>2012-04-03T16:49:26Z</published>
    <updated>2012-04-03T16:49:26Z</updated>
    <author>
      <name>Mirovan</name>
      <uri>https://stocksharp.ru/users/797/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">1. Есть ли способ получить все свои сделки с начала дня (SmartCOM) ?&lt;br /&gt;После запуска экспорта поле MyTrades (объекта класса SmartTrader) содержит 0 сделок.&lt;br /&gt;&lt;br /&gt;2. Запустил Sample Smart - похоже что неправильно отображается время заявок и количество сделок. При этом всего сделок в SmartTrade - 3 штуки, а в приложении отображается только одна. В чем может быть проблема ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://i43.tinypic.com/1568i02.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://i43.tinypic.com/1568i02.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt; &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABxHYwYreXawPgHKC8-E64cpR2XpxwxbGivh60EbGN1qjgHo9vAcMOKx_6afwuHfe8" title="http://s13.postimage.org/whrk5tiol/screen.png
"&gt;http://s13.postimage.org/whrk5tiol/screen.png
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;S# версия 4.0.23</content>
  </entry>
</feed>