﻿<?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=231</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-07T00:46:17Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=231" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/1441/</id>
    <title type="text">группировка strategy.NewMyTrades</title>
    <published>2011-03-14T11:55:33Z</published>
    <updated>2011-03-14T11:55:33Z</updated>
    <author>
      <name>Greene-nsk</name>
      <uri>https://stocksharp.ru/users/27932/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Заметил, что вот такая конструкция не всегда работает корректно - &amp;quot;Заявка ИСПОЛНЕНА&amp;quot; может вызываться по нескольку раз на одно исполнение заявки.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
        private void OnNewMyTrades(IEnumerable&amp;lt;MyTrade&amp;gt; trades)
        {
            foreach (MyTrade trade in trades)
            {
                if (trade.Order.IsMatched())
                {
                    OpenWealth.Log.Out(&amp;quot;Заявка ИСПОЛНЕНА.&amp;quot;);
                    ....
                }
            }
        }
  

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;В связи с этим возник вопрос, в каких случаях Вы группируете трейды, посылаемые в функцию, а в каких нет?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1440/</id>
    <title type="text">Стратегия в C# для WLD5.</title>
    <published>2011-03-12T21:10:56Z</published>
    <updated>2011-03-12T21:10:56Z</updated>
    <author>
      <name>gars9999</name>
      <uri>https://stocksharp.ru/users/142/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Работа" />
    <content type="html">&lt;p&gt;Тогда еще вопрос. Есть стратегия в C# для WLD5. У Вас никто не пишет роботов на заказ для СмартКом?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1439/</id>
    <title type="text">x64 version available</title>
    <published>2011-03-12T18:28:05Z</published>
    <updated>2011-03-12T18:28:05Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">&lt;p&gt;&lt;a href="ftp://ftp.rts.ru/pub/FORTS/test/Plaza2/P2_ClientGate1.10.9_TEST64.exe" rel="nofollow" target="_blank"&gt;ftp://ftp.rts.ru/pub/FORTS/test/Plaza2/P2_ClientGate1.10.9_TEST64.exe&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1438/</id>
    <title type="text">Комментарии и предложения</title>
    <published>2011-03-11T12:07:44Z</published>
    <updated>2011-03-11T12:07:44Z</updated>
    <author>
      <name>skuvv</name>
      <uri>https://stocksharp.ru/users/28621/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">&lt;p&gt;Заметил пару нюансов по PlazaTrader:
1)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
_plazaStreamManager = new PlazaStreamManager(_plazaConnectionPool, TRequestType.RT_COMBINED_DYNAMIC, 1000);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Почему	рекваест тайп фиксированный? надо конкретно задавать, например у меня так было:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;FORTS_FUTAGGR20_REPL&amp;quot; - RT_REMOTE_ONLINE
&amp;quot;FORTS_FUTTRADE_REPL&amp;quot; - RT_REMOTE_ONLINE
&amp;quot;FORTS_FUTINFO_REPL&amp;quot; - RT_COMBINED_DYNAMIC
&amp;quot;FORTS_FUTCOMMON_REPL&amp;quot; - RT_REMOTE_ONLINE
&amp;quot;FORTS_POS_REPL&amp;quot; - RT_COMBINED_DYNAMIC
&amp;quot;FORTS_PART_REPL&amp;quot; - RT_COMBINED_DYNAMIC
&amp;quot;FORTS_VM_REPL&amp;quot; - RT_COMBINED_DYNAMIC
Допустим если FORTS_FUTCOMMON_REPL задать в RT_COMBINED_DYNAMIC, то при реконнекте будет перекачиваться весь поток заново.
+Revision тоже надо указывать в некоторых потоках.
2)  в PlazaStreamManager void Run()
Не обрабатывает состояния типа DS_STATE_ERROR или DS_STATE_CLOSE, те в случае чего будет затык и поток будет висеть закрытым или с ошибкой.
Я для себя брал реализацию с примера(могу выложить если что)
PS У меня несколько сместились приоритеты - придется задержаться на квике, но постораюсь не пропадать.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1437/</id>
    <title type="text">Рефакторинг метаданных</title>
    <published>2011-03-10T21:50:28Z</published>
    <updated>2011-03-10T21:50:28Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">&lt;p&gt;Убрал перечисление PlazaTableTypes. Совершенно бесмысленная информация. Вместо этого за основу взял то что раньше называлось PlazaColumns.Table. Теперь везде именуется едино - SystemTableName. Оно равно НазваниеПотока/НазваниеТаблицы.&lt;/p&gt;
&lt;p&gt;Не закончил до конца. Залил пока не компилябельное. Если есть желающие закончить - посмотрите как пример PlazaUsdOnlineColumns.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1436/</id>
    <title type="text">Несовпадение инструкции и реальности (Настройка таблиц quik)</title>
    <published>2011-03-10T20:13:36Z</published>
    <updated>2011-03-10T20:13:36Z</updated>
    <author>
      <name>Dreablin</name>
      <uri>https://stocksharp.ru/users/27706/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Юзаю инструкцию &lt;a href="http://stocksharp.com/doc/help/html/5c13da7b-b6e4-4fd4-958a-66c93c58b941.htm"&gt;http://stocksharp.com/doc/help/html/5c13da7b-b6e4-4fd4-958a-66c93c58b941.htm&lt;/a&gt; для настройки квика.
Таблица &amp;quot;инструменты&amp;quot; , 4 поле - статус. Но в квике нет прсото &amp;quot;статус&amp;quot;, там есть &amp;quot;стату клиринга&amp;quot; и &amp;quot;статус торговли инструментом&amp;quot;, которые само собой не подходят (проверено Verifier'ом).
А еще Verifier требует там 19 полей в отличаи от инструкции, где всего 7.
Подскажите, какие там поля? Или я где-то не прав?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1435/</id>
    <title type="text">Набор индикаторов</title>
    <published>2011-03-10T20:13:02Z</published>
    <updated>2011-03-10T20:13:02Z</updated>
    <author>
      <name>russ</name>
      <uri>https://stocksharp.ru/users/567/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Здравствуйте.
Сталкиваюсь с проблемой написания индикаторов на C#.
Может есть смысл сделать какой-то набор готовый и вложить в апи, например такой набор:
SMA, EMA, WMA, FRAMA, RSI, MACD, Bollinger Bands, ADX, Parabolic Sar. Если кто уже реализовывал, поделитесь пожалуйста.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1434/</id>
    <title type="text">[3.0.14] Перерегистрация заявок Smart</title>
    <published>2011-03-10T18:05:49Z</published>
    <updated>2011-03-10T18:05:49Z</updated>
    <author>
      <name>pyhta4og</name>
      <uri>https://stocksharp.ru/users/497/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;[3.0.14]&lt;/p&gt;
&lt;p&gt;При перерегистрации новый Order может остаться в состоянии None навечно.&lt;/p&gt;
&lt;p&gt;Сценарий 1&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;29.24 Послал регистрацию заявки sell 194620@1 TransactionID=71653170&lt;/li&gt;
&lt;li&gt;29.32 Пришел OrdersChanged на Active&lt;/li&gt;
&lt;li&gt;29.43 Пришел NewOrder (уже странно, сначала статус потом что ордер зарегистрирован)&lt;/li&gt;
&lt;li&gt;29.98 Пришел OrdersChanged на Active&lt;/li&gt;
&lt;li&gt;30.40 Посылаем ReRegisterOrder на sell 194620@2. Т.е. меняется только объем. Получаем TransID=71653170&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;После этого 10 секунд никаких событий. А ожидается что 71653170 придет Done V=1,B=1, а 71653170 придет OrdersChanged=Active.&lt;/p&gt;
&lt;p&gt;Отправляет ли S# MoveOrder для только измененного объема?&lt;/p&gt;
&lt;p&gt;В качестве дополнения еще один формат лога;)
Легенда:
A=REG        call RegisterOrder
A=MYTRADE    event NewMyTrade
A=STATE      event OrdersChanged
A=POSCHG     event PositionsChanged
TID=TransactionID, ID = Order.ID (или Trade.ID), V=Volume, B=Balance.
POS=позиция возвращаема PositionManager. PrevID=ID перерегистрируемого ордера.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
T=2011031020012924,A=REG,ID=0,TID=71653170,DIR=Sell,P=194620,V=1,B=1,STATE=None,STATUS=,POS=0
T=2011031020012932,A=MYTRADE,ID=13313305,OID=378434295,TID=71653169,DIR=Buy,P=194580,V=1,OP=194580,OV=1,OB=0,STATE=Done
T=2011031020012932,A=STATE,ID=0,TID=71653170,DIR=Sell,P=194620,V=1,B=1,STATE=Active,STATUS=ReceiveByServer
T=2011031020012943,A=ORD,ID=378434509,TID=71653170,DIR=Sell,P=194620,V=1,B=1,STATE=Active,STATUS=Accepted
T=2011031020012946,A=POSCHG,ID=2011031020012946,P=RIH1,V=1
T=2011031020012990,A=POSCHG,ID=2011031020012990,P=RIH1,V=1
T=2011031020012998,A=STATE,ID=378434509,TID=71653170,DIR=Sell,P=194620,V=1,B=1,STATE=Active,STATUS=Accepted
T=2011031020013040,A=REREG,ID=0,TID=71653171,PrevID=378434509,DIR=Sell,P=194620,V=2,B=2,STATE=None,STATUS=,POS=1

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Сценарий 2. Лога нет, но суть такая.&lt;/p&gt;
&lt;p&gt;Пусть перерегистрируем заявку1. Актуальная информация о ней - что она Active.
Запрос на перереристрацию уходит. Новая заявка Заявка2. За то время пока он идет по перерегистрируемой заявке1 случается полный филл. К нам приходит Done по заявке1. А вот по заявке2 никакого Fail не придет в этом случае. Она так и останется в состоянии None.&lt;/p&gt;
&lt;p&gt;Плюс такой вопрос. точнее несколько.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Правильно ли я понимаю, что OrdersChanged, NewMyTrade и PositionsChanged все асинхронные и могут прийти в любом порядке?&lt;/li&gt;
&lt;li&gt;Из этого следует проблема, что к моменту OrderChanged на Done информация в PositionManager.Position может еще не обновится. Правильно ли я понимаю что она обновляется по NewMyTrade?&lt;/li&gt;
&lt;li&gt;Правильно ли что PositionsChanged берет инфу о позиции напрямую из Смарта а не из пересчета по NewMyTrade?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;С уважением.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1433/</id>
    <title type="text">[3.0.13] RealTimeTestTrader котирование</title>
    <published>2011-03-10T10:05:26Z</published>
    <updated>2011-03-10T10:05:26Z</updated>
    <author>
      <name>vvt</name>
      <uri>https://stocksharp.ru/users/34/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;p&gt;При запуске стратегии с котированием через RealTimeTestTrader&lt;QuikTrader&gt; вылезает ошибка:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Регистрация новой заявки на Sell с ценой 198755 и объемом 1.
Заявка 0 на Sell отправлена с ценой 198755 объемом 1.
Цена текущей 198755 и лучшей 198750.
Котирование заявки 0 на Sell с ценой 198755 объемом 1.
System.ArgumentException: Заявка не имеет информацию о шлюзе.
в Ecng.Trading.Algo.TraderHelper.GuarantyCancelOrder(Order order)
в Ecng.Trading.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Func&lt;code&gt; 1 getNewPrice, Func&lt;/code&gt;1 getNewVolume, Boolean isForts)
в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()
в Ecng.Trading.Algo.Strategies.Strategy.#=q_7aAU8b_zEypCQ8s7GI9rpJ4uiSQ4jqTKo
3$1bhmZoo=.#=q1xDZDIblA8UZbmo72Ys1aA==()
Стратегия останавливается.
Котирование закончилось.
Стратегия остановлена.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1432/</id>
    <title type="text">IsExportRunning == false after reConnect</title>
    <published>2011-03-10T06:59:23Z</published>
    <updated>2011-03-10T06:59:23Z</updated>
    <author>
      <name>Greene-nsk</name>
      <uri>https://stocksharp.ru/users/27932/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;Михаил, добрый день!&lt;/p&gt;
&lt;p&gt;У меня такая небольшая проблемка..&lt;/p&gt;
&lt;p&gt;Я подписан на событие:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
                    // подписываемся на событие успешного соединения
                    this.Trader.Connected += () =&amp;gt;
                    {
                        this.IsConnected = true;
                        Log.Out(&amp;quot;Соединение установлено.&amp;quot;, LogLevel.notice);

                        // запускаем экпорт, если не запущен
                        if (!this.Trader.IsExportRunning)
                        {
                            Log.Out(&amp;quot;Запускаем экспорт &amp;quot; + Const.TraderType + &amp;quot; ...&amp;quot;, LogLevel.notice);
                            this.Trader.StartExport();
                        }

                        _ConnectHandle.Set();
                    };

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Также установлены ReConnectionSettings.
Первоначальный коннект и старт экспорта происходит отлично. Затем, если произошел дисконнект и происходит повторное соединение, Trader.IsExportRunning почему-то имеет значение false (хотя нигде остановки экспорта я явно не делал). Соответственно опять запускается экспорт и я получаю очень много ошибок вида &amp;quot;System.ArgumentException: Элемент с тем же ключом уже был добавлен.&amp;quot; через Trader.ProcessDataError.&lt;/p&gt;
&lt;p&gt;Это IsExportRunning неправильно работает или я что не так делаю?&lt;/p&gt;
&lt;p&gt;Ошибка:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
09.03.2011 19:38:10 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.InvalidOperationException: Timout detected. check your  internet connectivity or event handler code
09.03.2011 19:38:30 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.InvalidOperationException: Соединение не было установлено.
09.03.2011 19:38:34 [OpenWealth.StockSharp.TraderInitializator.&amp;lt;Init&amp;gt;b__2] Соединение установлено.
09.03.2011 19:38:34 [OpenWealth.StockSharp.TraderInitializator.&amp;lt;Init&amp;gt;b__2] Запускаем экспорт Smart ...
09.03.2011 19:38:35 [OpenWealth.StockSharp.TraderInitializator.Trader_ProcessDataError] ERROR: Ошибка обработки данных System.ArgumentException: Элемент с тем же ключом уже был добавлен.
   в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   в System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   в System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   в Ecng.Collections.SynchronizedDictionary`2.Add(TKey key, TValue value)
   в Ecng.Trading.Smart.SmartTrader.#=q51k2unzMIsNyRtIj9eqUHAWG1vpOTm_EnhcELxwzk18=.#=qHYtNp3Oq0wi5iYKFl4EY208vdoxZ0LK9yJJy8eAVByo=(Security #=q7quMwu_Bzmw8O0CkI7XjJA==)
   в Ecng.Trading.Algo.BaseTrader.GetSecurity(String id, Func`2 createSecurity, Action`1 changeSecurity)
   в Ecng.Trading.Algo.BaseTrader.GetSecurity(String id, Action`1 changeSecurity)
   в Ecng.Trading.Smart.SmartTrader.#=qdrdBGX21A5eLENJf3ptKAA==(Int32 #=qvYc1SRNnVYaugo8TTapgNQ==, Int32 #=qeO4QX3nBzQgyDnwMfZtKrA==, String #=qBMKdqfg2OQ5yRrqr1gNjTQ==, String #=qyUb925f$nwA0AepJn$J03g==, String #=qDglujU417hVywZLPioBx7Q==, String #=qXExfZs10qQGmZ1Dg_jDB2A==, Int32 #=qvxoDwHTOJ4ySbsvV0xlD_g==, Int32 #=qEjVNe5vbQz$sy_ks5IXngQ==, Double #=qPgAqEqCLUVYYnAV6IFPEPA==, Double #=q5yIeWw1FAkzyUxEssGOdOA==, String #=qsKD9O1f$5Ocp9io7L4HTJg==, String #=qrdP_YbKfA6M$TJ$t_t8h5A==, Nullable`1 #=qVzECTYxPjudgjMW0vBjqMA==, Double #=qAtSy5Brikaa2NebNjmmVv8h1G$cj4cpWya5$9U0XsXw=)
   в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14](Action`14 handler, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14)
   в Ecng.Trading.Smart.SmartComWrapper.#=qAYx9wRCrRwCsEvMIqJuSgZnn1mBfEPtkmHJ_XDbfM8Q=.#=qGbWrt3y25WxRTlQc1U4TP2QX1j4hCZ0w7O3q6nyaxRA=()
   в Ecng.Trading.Algo.BaseTrader.ProcessEvents(Action handler)

&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1431/</id>
    <title type="text">Отработка Connect / Reconnect</title>
    <published>2011-03-09T21:48:01Z</published>
    <updated>2011-03-09T21:48:01Z</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;p&gt;Михаил, в соответствии с примерами, дизайним форму, на которой две кнопки Connect и Disconnect. Полезной нагрузки нет.&lt;/p&gt;
&lt;p&gt;Код кнопки Connect:&lt;/p&gt;
&lt;p&gt;....&lt;/p&gt;
&lt;p&gt;if (this.objMainTrader == null)
{&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;this.objMainTrader = new SmartTrader(strLogin, strPWD, objIPEndPoint);
this.objMainTrader.Connected += () =&amp;gt; { this.SmartConnectStatusSucced(); };
this.objMainTrader.ConnectionError += error =&amp;gt; { this.SmartConnectStatusFailed(error); };
this.objMainTrader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);

this.objMainTrader.ReConnectionSettings.ConnectDisconnectTimeOutInterval = TimeSpan.FromSeconds(60);

this.objMainTrader.ReConnectionSettings.ReConnectingAttemptCount = 1000; // здесь пробовал -1, на поведение не влияет

this.objMainTrader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;
this.objMainTrader.ReConnectionSettings.ConnectionAttemptError += error =&amp;gt;
                { this.SmartReConnectStatusFailed(error); };

this.objMainTrader.ReConnectionSettings.ConnectionRestored += () =&amp;gt;
                { this.SmartReConnectStatusSucced(); };
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;// try to connect to the server
if (!this.objMainTrader.IsConnected)
this.objMainTrader.Connect();&lt;/p&gt;
&lt;p&gt;.....&lt;/p&gt;
&lt;p&gt;Все функции, которые вызываются, тупо создают соединение с базой SQL Server и пишут сообщение с именем вызванной функции. Итого, что происходит.&lt;/p&gt;
&lt;p&gt;При нажатии кнопки Connect код аккуратно отрабатывает, и SmartConnectStatusSucced тоже.
Далее, на виртуальной машине (Tools -&amp;gt; Settings) отключаем сетевую карту. Очень быстро отрабатывает SmartConnectStatusFailed, в журнал записывается следующее сообщение:&lt;/p&gt;
&lt;p&gt;&lt;Timeout detected. Check your internet connectivity or event handler code&gt;.&lt;/p&gt;
&lt;p&gt;Далее я ожидаю, что в соответствии с настройками ReconnectionSettings, objMainTrader будет пытаться производить повторное подключение. Ждем 5 минут, но ничего не происходит. Выставленные в отладчике точки прерывания тоже не срабатывают.&lt;/p&gt;
&lt;p&gt;Обратно возвращаемся к настройкам виртуальной машины, и возвращаем на место сетевой адаптер. Сеть восстанавливается, но объект этого не замечает.&lt;/p&gt;
&lt;p&gt;Прошу подсказать, что делаю не так. Возможно, нужно запустить какие-то операции, обращаться к объекту и т.п., чтобы код переподключения заработал?&lt;/p&gt;
&lt;p&gt;P.S. Библиотеки версии 3.0.8.
P.P.S. Готов выложить проект, скриншоты и how to reproduce, но форум не позволяет.
P.P.P.S. Может ли причина заключаться в том, что тесты производятся в ночное время? :-) Если да, то исчезнет ли проблема, если подменить WorkingTime?&lt;/p&gt;
&lt;p&gt;Спасибо.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1430/</id>
    <title type="text">Hydra и свечи</title>
    <published>2011-03-09T17:26:35Z</published>
    <updated>2011-03-09T17:26:35Z</updated>
    <author>
      <name>anothar</name>
      <uri>https://stocksharp.ru/users/6089/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;p&gt;Добрый день, Михаил.
Просматривал возможности гидры и возник невольный вопрос: а почему в ней нет интерфейса для сохранения свечек? По крайней мере, было бы удобно чтобы все данные в одном месте с одним интерфейсом. Или это было обусловлено тем что свечи преимущественно качаются с финама ввиде файлов .csv?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1429/</id>
    <title type="text">Какие основные шаги нужно выполнить ...</title>
    <published>2011-03-09T16:44:06Z</published>
    <updated>2011-03-09T16:44:06Z</updated>
    <author>
      <name>s_kud</name>
      <uri>https://stocksharp.ru/users/6261/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">&lt;p&gt;У меня вопросы по интеграции и теханализу ...
Михаил, подскажите, please, какие основные шаги (процедуры) нужно выполнить, чтобы данные о срабатывании индикаторов из систем тех. анализа можно было вводить в управляющие программы на С# ... (На начальном этапе работы это было бы оправданно ...).
К примеру из Метастока ... В нем данные о срабатывании индикаторов можно представить в виде Глобальной переменной типа GL.dll или в виде внещней библиотеки типа MSX DLL ...
С#, конечно, могуч ... Но новичкам приходится сложно ...
Такое количество объемной литературы ... и такое множество деталей и вариантов ...&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1428/</id>
    <title type="text">Ошибка DDE [3.0.13]</title>
    <published>2011-03-09T09:58:40Z</published>
    <updated>2011-03-09T09:58:40Z</updated>
    <author>
      <name>vvt</name>
      <uri>https://stocksharp.ru/users/34/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Ошибка DDE [Quik Junior] [3.0.13]&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;System.ArgumentException: Order с номером '372938456' дублируется в полученном D
DE пакете.
Имя параметра: item
в Ecng.Trading.Quik.QuikTrader.#=qEHdBg2$OEu8s0sWQpQfm$bpbIfa49v2VoXF0gM0cByM
=[TItem,TId](Dictionary&lt;code&gt;2 #=qOvPfBieWX6zq24YZKYcoo5GbnbmCU7GlPrWyxai1QcA=, TItem #=qtTAjGQ9d7yZcpQQbj2TK9w==, IList&lt;/code&gt;1 #=qHdMGT40iovM1cOmw3t6rMw==, TId #=qR5gUDO
piqm7X5ZgBgQaOew==)
в Ecng.Trading.Quik.QuikTrader.#=qwzmGrKnG$0lhDHOD3BPyMIybX4QS$hB_jhFvK7U7Sqw
=.#=qUB3dZfs7sbw0FgNACNbYPQ==(IList&lt;code&gt;1 #=qqU62oa8eKJncQ6fTiq2qJQ==, Func&lt;/code&gt;2 #=quby
eVzaDZSN7cVFcKooW3w==)
в #=qOZqGto7Ls4dPruNydBEWEr1zYbqb3mru2frkCDOhXC2iotNePY0rY_6bLmHhr2Xm.#=qdE1H
iiOYgpCrNWXJqh6o$g==(DdeTable #=qwPP8r23KKR7tSnFhGjyFQw==, IList&lt;code&gt;1 #=qMlzkONMhb7 7s00f8Tr$V4Q==, Action&lt;/code&gt;2 #=qJ23mOaJY8FLjm6U$mb2kUA==, Action`1 #=qVRSinSLfNgIiDF
WIhUc0DA==)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://content.screencast.com/users/vvt/folders/Jing/media/8381fa54-ef93-4134-b6b3-acb6be277af1/2011-03-09_1214.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Заявки 372938456 и 372938670 были выставлены на дневной сессии 05.03.11 с переносом, а исполнены на вечерней сессии, код класса у них разный SPBFUT и FUTEVN.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1427/</id>
    <title type="text">Hydra: поддержка украинской биржы</title>
    <published>2011-03-07T20:19:27Z</published>
    <updated>2011-03-07T20:19:27Z</updated>
    <author>
      <name>Lafert</name>
      <uri>https://stocksharp.ru/users/26871/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;p&gt;Планируется ли создание плагина для украинской биржы, аналогичного плагину ртс ?
Зазипованые файлы со сделками лежат по адресу &lt;a href="ftp://ftp.ux.ua/pub/info/statforts/" rel="nofollow" target="_blank"&gt;ftp://ftp.ux.ua/pub/info/statforts/&lt;/a&gt;
К сожалению, сделки украинского фьючерса можно достать только по этому адресу в dbf, или в тексте порциями по 5000 записей по адресу &lt;a href="http://www.ux.ua/ru/marketdata/export.aspx" rel="nofollow" target="_blank"&gt;http://www.ux.ua/ru/marketdata/export.aspx&lt;/a&gt;, что очень неудобно.
Формат аналогичен ртс.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1426/</id>
    <title type="text">Hydra: exception при выгрузке сделок в текстовый файл</title>
    <published>2011-03-07T20:13:28Z</published>
    <updated>2011-03-07T20:13:28Z</updated>
    <author>
      <name>Lafert</name>
      <uri>https://stocksharp.ru/users/26871/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;p&gt;При компиляции в x86 при попытке выгрузить сделки за 10 дней по фьючу на индекс РТС занимаемая оперативная память растет до 1300 мб, а потом выбивает исключение out of memory (кстати, файл так и не создается).&lt;/p&gt;
&lt;p&gt;При компиляции в x64 занимаемая память растет за 3 ГБ, но ничего не происходит, файл не создается также.&lt;/p&gt;
&lt;p&gt;При попытке выгрузить 1 день память переваливает за 1ГБ, но файл создается и все работает.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1425/</id>
    <title type="text">BaseTrader.MartketTime, предложение</title>
    <published>2011-03-06T14:57:06Z</published>
    <updated>2011-03-06T14:57:06Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Вначале немного предыстории - в последнее время заметил задержки в получение времени средствами QuikTrader.MartketTime - в квике в ходе торгов секунды зачастую идут с задержкой 1-3 секунды, да и отсчёт идёт не каждую секунду. В общем не очень хорошо, на мой взгляд, использовать данное решение.&lt;/p&gt;
&lt;p&gt;Смарт, насколько я понимаю, использует время компьютера.&lt;/p&gt;
&lt;p&gt;Поэтому появилась идея использовать не системное время (т.к. оно может:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;быть не синхронизировано&lt;/li&gt;
&lt;li&gt;быть не московским,
....), а московское время из интернета.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Т.е. обращаться к стандартными NTP серверам и опрашивая их получать московское время.&lt;/p&gt;
&lt;p&gt;Поискав в инете наткнулся на множество тем, выбрал решение отсюда как наиболее простое: &lt;a href="http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/8670212a-4157-4e91-b5dd-44934ca31b9e" rel="nofollow" target="_blank"&gt;всемогущий MSDN&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Немного его отредактировал под наши нужны, получил следующее:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;using System;
using System.Net;
using System.Net.Sockets;

namespace Robots.Entities
{
    /// &amp;lt;summary&amp;gt;
    /// Static class to receive Moscow time from a NTP server.
    /// &amp;lt;/summary&amp;gt;
    public static class NtpClient
    {
        /// &amp;lt;summary&amp;gt;
        /// Gets Moscow DateTime from &amp;lt;paramref name=&amp;quot;ntpServer&amp;quot;/&amp;gt;.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;ntpServer&amp;quot;&amp;gt;The hostname of the NTP server.&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;A DateTime containing Moscow current time.&amp;lt;/returns&amp;gt;
        public static DateTime GetMoscowTime(string ntpServer = &amp;quot;time-a.nist.gov&amp;quot;)
        {
            var address = Dns.GetHostEntry(ntpServer).AddressList;

            if (address == null || address.Length == 0)
                throw new ArgumentException(string.Format(&amp;quot;Could not resolve ip address from '{0}'.&amp;quot;, ntpServer), &amp;quot;ntpServer&amp;quot;);

            var ep = new IPEndPoint(address[0], 123);
            return GetMoscowTime(ep);
        }

        /// &amp;lt;summary&amp;gt;
        /// Gets Moscow DateTime form &amp;lt;paramref name=&amp;quot;ep&amp;quot;/&amp;gt; IPEndPoint.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;ep&amp;quot;&amp;gt;The IPEndPoint to connect to.&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;A DateTime containing Moscow current time.&amp;lt;/returns&amp;gt;
        private static DateTime GetMoscowTime(IPEndPoint ep)
        {
            var s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            s.Connect(ep);

            var ntpData = new byte[48]; // RFC 2030
            ntpData[0] = 0x1B;
            for (var i = 1; i &amp;lt; 48; i++)
                ntpData[i] = 0;

            s.Send(ntpData);
            s.Receive(ntpData);

            const byte offsetTransmitTime = 40;
            ulong intpart = 0;
            ulong fractpart = 0;

            for (var i = 0; i &amp;lt;= 3; i++)
                intpart = 256 * intpart + ntpData[offsetTransmitTime + i];

            for (var i = 4; i &amp;lt;= 7; i++)
                fractpart = 256 * fractpart + ntpData[offsetTransmitTime + i];

            var milliseconds = (intpart * 1000 + (fractpart * 1000) / 0x100000000L);
            s.Close();

            var timeSpan = TimeSpan.FromMilliseconds(milliseconds);

            var dateTime = new DateTime(1900, 1, 1);
            dateTime += timeSpan;

            var moscowTimeZone = TimeZoneInfo.FindSystemTimeZoneById(&amp;quot;Russian Standard Time&amp;quot;);
            var offsetAmount = moscowTimeZone.GetUtcOffset(dateTime);
            var networkDateTime = dateTime + offsetAmount;

            return networkDateTime;
        }

        /// &amp;lt;summary&amp;gt;
        /// Gets TimeSpan offset.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;Gets offset between local time and Moscow Time.&amp;lt;/returns&amp;gt;
        public static TimeSpan GetMoscowTimeOffset()
        {
            try
            {
                var moscowDateTime = GetMoscowTime();
                return moscowDateTime - DateTime.Now;
            }
            catch(Exception)
            {
                return new TimeSpan(0);
            }
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;NtpClient.GetMoscowTime(&amp;quot;time.nist.gov&amp;quot;) возвращает текущее московское время :)
NtpClient.GetMoscowTimeOffset() - смещение с московским временем.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Предложение состоит в том, чтобы использовать данное время для определения BaseTrader.MarketTime.
1 раз - при инициализации получать московское время и просто подсчитать первоначальную разницу между московским временем и локальным.
Затем установить его в MarketTimeOffset.&lt;/p&gt;
&lt;p&gt;Вот текущее использование, которое я сегодня добавил в моего робота:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    public class OwnQuikTrader : QuikTrader
    {
        public OwnQuikTrader(string path, string ddeServer, string dllName) :
            base(path, ddeServer, dllName)
        {
            base.MarketTimeOffset = NtpClient.GetMoscowTimeOffset();
        }

//...

        public override DateTime MarketTime
        {
            get { return DateTime.Now; }
        }
    }
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1424/</id>
    <title type="text">Ошибка при попытке отправки заявки на следующий день по таймеру</title>
    <published>2011-03-05T17:20:49Z</published>
    <updated>2011-03-05T17:20:49Z</updated>
    <author>
      <name>a.dobryn</name>
      <uri>https://stocksharp.ru/users/28111/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Вот такая ошибка
&lt;img src="http://s1.ipicture.ru/uploads/20110305/VrFsP05E.jpg" alt="" /&gt;
Если тестировать (переводить дату компа на завтра и на нужное время), заявки успешно отправляются. А если &amp;quot;вживую&amp;quot;, то такая ошибка. В чем может быть дело? Учебная биржа ммвб&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1423/</id>
    <title type="text">SampleSmartSMA</title>
    <published>2011-03-05T12:53:09Z</published>
    <updated>2011-03-05T12:53:09Z</updated>
    <author>
      <name>roman</name>
      <uri>https://stocksharp.ru/users/27830/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;На примере SampleSmartSMA попробовал разобраться как работать с этой библиотекой.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Если поменять таймфрейм на SmartTimeFrames.Minute1 то _candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); почти всегда возвращает null. Если время на локальном компьютере отличается от времени Trader.MarketTime то со 100% вероятностью это происходит.&lt;/li&gt;
&lt;li&gt;ProcessDataError - часто возникает событие сo stackoverflowexception.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Как с этим бороться?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1422/</id>
    <title type="text">Рабочие дни для бирж, 2011 год</title>
    <published>2011-03-05T08:49:11Z</published>
    <updated>2011-03-05T08:49:11Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Создал метод, который проставляет рабочие дни на выходных и выходные на рабочих для наших бирж (2011 год).
Пользуйтесь кому необходимо, чтобы информацию вновь не искать :)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        private static void UpdateWorkingDays()
        {
            var specialWorkingDays = new[] { new DateTime(2011, 3, 5) };
            var specialHolidays = new[]
                                      {
                                          new DateTime(2011, 1, 3),
                                          new DateTime(2011, 1, 4),
                                          new DateTime(2011, 1, 5),
                                          new DateTime(2011, 1, 6),
                                          new DateTime(2011, 1, 7),
                                          new DateTime(2011, 1, 10),
                                          new DateTime(2011, 2, 23),
                                          new DateTime(2011, 3, 7),
                                          new DateTime(2011, 3, 8),
                                          new DateTime(2011, 5, 2),
                                          new DateTime(2011, 5, 9),
                                          new DateTime(2011, 6, 13),
                                          new DateTime(2011, 11, 4)
                                      };

            Exchange.Rts.WorkingTime.SpecialWorkingDays = specialWorkingDays;
            Exchange.Rts.WorkingTime.SpecialHolidays = specialHolidays;

            Exchange.Micex.WorkingTime.SpecialWorkingDays = specialWorkingDays;
            Exchange.Micex.WorkingTime.SpecialHolidays = specialHolidays;
        }
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
</feed>