﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Проблема: событие OrdersChanged вызывается дважды на состояние OrderState.Active</title>
  <id>~/topic/2508/problema-sobytie-orderschanged-vyzyvaetsya-dvazhdy-na-sostoyanie-orderstate_active/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-21T20:40:17Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2508" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/19774/</id>
    <title type="text">Под SmartCom тоже проскакивает. И тоже с разными временами. Здесь как такое возможно? Но это так - р...</title>
    <published>2012-06-14T16:14:53Z</published>
    <updated>2012-06-14T16:14:53Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.com/users/6063/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Под SmartCom тоже проскакивает. И тоже с разными временами. Здесь как такое возможно? Но это так - риторический вопрос. Я код не удалил.&lt;br /&gt;&lt;br /&gt;Prev 2012-06-14 19:52:22.67187&lt;br /&gt;balance = 1&lt;br /&gt;comment = &lt;br /&gt;derived Order = &lt;br /&gt;direction = Buy&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry = &lt;br /&gt;extension info = System.Collections.Generic.Dictionary`2[System.Object,System.Object]&lt;br /&gt;id = 1629461572&lt;br /&gt;isDisposed = False&lt;br /&gt;isSystem = True&lt;br /&gt;isTrace = False&lt;br /&gt;lastchangetime = 2012-06-14 19:51:44.00000&lt;br /&gt;latency = 00:00:00.1201629&lt;br /&gt;messages = &lt;br /&gt;portfolio = &lt;br /&gt;price = 130955&lt;br /&gt;repo info = &lt;br /&gt;rps info = &lt;br /&gt;security= RIM2@RTS&lt;br /&gt;state = Done&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition = &lt;br /&gt;time = 2012-06-14 19:51:52.09375&lt;br /&gt;trader = StockSharp.Smart.SmartTrader&lt;br /&gt;transaction id = 71102056&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1&lt;br /&gt;&lt;br /&gt;Now 2012-06-14 19:52:22.73437&lt;br /&gt;balance = 1&lt;br /&gt;comment = &lt;br /&gt;derived Order = &lt;br /&gt;direction = Buy&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry = &lt;br /&gt;extension info = System.Collections.Generic.Dictionary`2[System.Object,System.Object]&lt;br /&gt;id = 1629461572&lt;br /&gt;isDisposed = False&lt;br /&gt;isSystem = True&lt;br /&gt;isTrace = False&lt;br /&gt;lastchangetime = 2012-06-14 19:52:15.00000&lt;br /&gt;latency = 00:00:00.1201629&lt;br /&gt;messages = &lt;br /&gt;portfolio = &lt;br /&gt;price = 130955&lt;br /&gt;repo info = &lt;br /&gt;rps info = &lt;br /&gt;security= RIM2@RTS&lt;br /&gt;state = Done&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition = &lt;br /&gt;time = 2012-06-14 19:51:52.09375&lt;br /&gt;trader = StockSharp.Smart.SmartTrader&lt;br /&gt;transaction id = 71102056&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1&lt;br /&gt;&lt;br /&gt;За правила - спасибо! Пойду учить мат. часть. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19770/</id>
    <title type="text">Потому что в таблице инфы на порядок больше по заявке. Надо чем-то инициализировать. Как бороться - ...</title>
    <published>2012-06-14T13:54:03Z</published>
    <updated>2012-06-14T13:54:03Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Потому что в таблице инфы на порядок больше по заявке. Надо чем-то инициализировать.&lt;br /&gt;&lt;br /&gt;Как бороться - пользоваться правилами и делать Once. Либо хранить сработавшие. Вариантов тысячи, благо программирование позволяет :)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19769/</id>
    <title type="text">Да мне чесно говоря, все равно почему так происходит, хотя и не должно по здравому смыслу. Я никак н...</title>
    <published>2012-06-14T13:44:38Z</published>
    <updated>2012-06-14T13:48:51Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.com/users/6063/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Да мне чесно говоря, все равно почему так происходит, хотя и не должно по здравому смыслу. Я никак не придумаю как с этим однозначно бороться. Држать предыдущий ID и отбрасывать следующий если равны? А если через один придет? А если через два?&lt;br /&gt;Да, вот еще подумалось, так, для общего развития. А зачем из таблицы гонять если в ответ на транзакцию приходит?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19768/</id>
    <title type="text">Первый ответ по заявке пришёл в качестве ответа на транзакцию, второй - по таблице заявок. У вас выш...</title>
    <published>2012-06-14T13:35:10Z</published>
    <updated>2012-06-14T13:35:10Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Первый ответ по заявке пришёл в качестве ответа на транзакцию, второй - по таблице заявок. У вас вышло так, что времена выставления не обновились и совпадают.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19767/</id>
    <title type="text">Вот. Времена даже в секундах разные. Только не понятно что с этим делать? Prev 2012-06-14 17:25:37.3...</title>
    <published>2012-06-14T13:32:27Z</published>
    <updated>2012-06-14T13:32:27Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.com/users/6063/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Вот. Времена даже в секундах разные. Только не понятно что с этим делать?&lt;br /&gt;Prev 2012-06-14 17:25:37.35937&lt;br /&gt;balance = 1&lt;br /&gt;comment = &lt;br /&gt;derived Order = &lt;br /&gt;direction = Buy&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry = &lt;br /&gt;extension info = System.Collections.Generic.Dictionary`2[System.Object,System.Object]&lt;br /&gt;id = 8065738989&lt;br /&gt;isDisposed = False&lt;br /&gt;isSystem = True&lt;br /&gt;isTrace = False&lt;br /&gt;lastchangetime = 2012-06-14 17:25:37.35937&lt;br /&gt;latency = 00:00:00.1377125&lt;br /&gt;messages = Заявка, с биржевым номером 8065738989, успешно зарегистрирована. | Заявка, с номером 8065738989 снята. Снятое количество: 1&lt;br /&gt;portfolio = &lt;br /&gt;price = 130150&lt;br /&gt;repo info = &lt;br /&gt;rps info = &lt;br /&gt;security= RIM2@RTS&lt;br /&gt;state = Done&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition = &lt;br /&gt;time = 2012-06-14 17:25:27.00000&lt;br /&gt;trader = StockSharp.Quik.QuikTrader&lt;br /&gt;transaction id = 62559431&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1&lt;br /&gt;&lt;br /&gt;Now 2012-06-14 17:25:37.59375&lt;br /&gt;balance = 1&lt;br /&gt;comment = &lt;br /&gt;derived Order = &lt;br /&gt;direction = Buy&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry = &lt;br /&gt;extension info = System.Collections.Generic.Dictionary`2[System.Object,System.Object]&lt;br /&gt;id = 8065738989&lt;br /&gt;isDisposed = False&lt;br /&gt;isSystem = True&lt;br /&gt;isTrace = False&lt;br /&gt;lastchangetime = 2012-06-14 17:25:29.00000&lt;br /&gt;latency = 00:00:00.1377125&lt;br /&gt;messages = Заявка, с биржевым номером 8065738989, успешно зарегистрирована. | Заявка, с номером 8065738989 снята. Снятое количество: 1&lt;br /&gt;portfolio = &lt;br /&gt;price = 130150&lt;br /&gt;repo info = &lt;br /&gt;rps info = &lt;br /&gt;security= RIM2@RTS&lt;br /&gt;state = Done&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition = &lt;br /&gt;time = 2012-06-14 17:25:27.00000&lt;br /&gt;trader = StockSharp.Quik.QuikTrader&lt;br /&gt;transaction id = 62559431&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19764/</id>
    <title type="text">LastChangeTime с мс покажите</title>
    <published>2012-06-14T13:18:43Z</published>
    <updated>2012-06-14T13:18:43Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">LastChangeTime с мс покажите</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19763/</id>
    <title type="text">или не поправили или опять ошибка вернулась. У меня в QUIKE иногда дважды приходят отмена ордеров по...</title>
    <published>2012-06-14T13:13:55Z</published>
    <updated>2012-06-14T13:13:55Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.com/users/6063/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">или не поправили или опять ошибка вернулась. У меня в QUIKE иногда дважды приходят отмена ордеров поэтому ловил только его. Версия 4.1.1&lt;br /&gt;&lt;br /&gt;Вот код.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

        string PStr;
        long TId;

        void OnOrderChanged(IEnumerable&amp;lt;StockSharp.BusinessEntities.Order&amp;gt; Orders)
        {
            foreach (Order _Order in Orders)
            {
                if (_Order.IsCanceled())
                {
                    if (_Order.Id == TId)
                    {
                        Console.WriteLine(&amp;quot;Prev &amp;quot; + PStr);
                        Console.WriteLine(&amp;quot;Now &amp;quot;+DateTime.Now.ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.fffff&amp;quot;) + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;balance = &amp;quot; + _Order.Balance + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;comment = &amp;quot; + _Order.Comment + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;derived Order = &amp;quot; + _Order.DerivedOrder + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;direction = &amp;quot; + _Order.Direction + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;execution condition = &amp;quot; + _Order.ExecutionCondition + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;expiry = &amp;quot; + _Order.ExpiryDate + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;extension info = &amp;quot; + _Order.ExtensionInfo + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;id = &amp;quot; + _Order.Id + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;isDisposed = &amp;quot; + _Order.IsDisposed + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;isSystem = &amp;quot; + _Order.IsSystem + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;isTrace = &amp;quot; + _Order.IsTrace + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;lastchangetime = &amp;quot; + _Order.LastChangeTime+ &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;latency = &amp;quot; + _Order.Latency + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;messages = &amp;quot; + string.Join(&amp;quot; | &amp;quot;, _Order.Messages) + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;portfolio = &amp;quot; + _Order.Portfolio + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;price = &amp;quot; + _Order.Price + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;repo info = &amp;quot; + _Order.RepoInfo + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;rps info = &amp;quot; + _Order.RpsInfo + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;security= &amp;quot; + _Order.Security + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;state = &amp;quot; + _Order.State + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;status = &amp;quot; + _Order.Status + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;stop condition = &amp;quot; + _Order.StopCondition + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;time = &amp;quot; + _Order.Time.ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.fffff&amp;quot;) + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;trader = &amp;quot; + _Order.Trader + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;transaction id = &amp;quot; + _Order.TransactionId + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;type = &amp;quot; + _Order.Type + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;volume = &amp;quot; + _Order.Volume + &amp;quot;\r\n&amp;quot;);

                    }
                                            TId = _Order.Id;

                                                                    PStr=DateTime.Now.ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.fffff&amp;quot;) + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;balance = &amp;quot; + _Order.Balance + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;comment = &amp;quot; + _Order.Comment + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;derived Order = &amp;quot; + _Order.DerivedOrder + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;direction = &amp;quot; + _Order.Direction + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;execution condition = &amp;quot; + _Order.ExecutionCondition + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;expiry = &amp;quot; + _Order.ExpiryDate + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;extension info = &amp;quot; + _Order.ExtensionInfo + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;id = &amp;quot; + _Order.Id + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;isDisposed = &amp;quot; + _Order.IsDisposed + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;isSystem = &amp;quot; + _Order.IsSystem + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;isTrace = &amp;quot; + _Order.IsTrace + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;lastchangetime = &amp;quot; + _Order.LastChangeTime+ &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;latency = &amp;quot; + _Order.Latency + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;messages = &amp;quot; + string.Join(&amp;quot; | &amp;quot;, _Order.Messages) + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;portfolio = &amp;quot; + _Order.Portfolio + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;price = &amp;quot; + _Order.Price + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;repo info = &amp;quot; + _Order.RepoInfo + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;rps info = &amp;quot; + _Order.RpsInfo + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;security= &amp;quot; + _Order.Security + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;state = &amp;quot; + _Order.State + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;status = &amp;quot; + _Order.Status + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;stop condition = &amp;quot; + _Order.StopCondition + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;time = &amp;quot; + _Order.Time.ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.fffff&amp;quot;) + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;trader = &amp;quot; + _Order.Trader + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;transaction id = &amp;quot; + _Order.TransactionId + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;type = &amp;quot; + _Order.Type + &amp;quot;\r\n&amp;quot; +
                                                                    &amp;quot;volume = &amp;quot; + _Order.Volume + &amp;quot;\r\n&amp;quot;;

                }
// Дальше собственно обработчик
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вот результат.&lt;br /&gt;&lt;br /&gt;Prev 2012-06-14 17:06:35.71875&lt;br /&gt;balance = 1&lt;br /&gt;comment = &lt;br /&gt;derived Order = &lt;br /&gt;direction = Buy&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry = &lt;br /&gt;extension info = System.Collections.Generic.Dictionary`2[System.Object,System.Object]&lt;br /&gt;id = 8065253846&lt;br /&gt;isDisposed = False&lt;br /&gt;isSystem = True&lt;br /&gt;isTrace = False&lt;br /&gt;lastchangetime = 14.06.2012 17:06:27&lt;br /&gt;latency = 00:00:00.1752975&lt;br /&gt;messages = Заявка, с биржевым номером 8065253846, успешно зарегистрирована. | Заявка, с номером 8065253846 снята. Снятое количество: 1&lt;br /&gt;portfolio = &lt;br /&gt;price = 130315&lt;br /&gt;repo info = &lt;br /&gt;rps info = &lt;br /&gt;security= RIM2@RTS&lt;br /&gt;state = Done&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition = &lt;br /&gt;time = 2012-06-14 17:06:27.00000&lt;br /&gt;trader = StockSharp.Quik.QuikTrader&lt;br /&gt;transaction id = 61428467&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1&lt;br /&gt;&lt;br /&gt;Now 2012-06-14 17:06:35.92187&lt;br /&gt;balance = 1&lt;br /&gt;comment = &lt;br /&gt;derived Order = &lt;br /&gt;direction = Buy&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry = &lt;br /&gt;extension info = System.Collections.Generic.Dictionary`2[System.Object,System.Object]&lt;br /&gt;id = 8065253846&lt;br /&gt;isDisposed = False&lt;br /&gt;isSystem = True&lt;br /&gt;isTrace = False&lt;br /&gt;lastchangetime = 14.06.2012 17:06:27&lt;br /&gt;latency = 00:00:00.1752975&lt;br /&gt;messages = Заявка, с биржевым номером 8065253846, успешно зарегистрирована. | Заявка, с номером 8065253846 снята. Снятое количество: 1&lt;br /&gt;portfolio = &lt;br /&gt;price = 130315&lt;br /&gt;repo info = &lt;br /&gt;rps info = &lt;br /&gt;security= RIM2@RTS&lt;br /&gt;state = Done&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition = &lt;br /&gt;time = 2012-06-14 17:06:27.00000&lt;br /&gt;trader = StockSharp.Quik.QuikTrader&lt;br /&gt;transaction id = 61428467&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/17436/</id>
    <title type="text">Пробуйте из ветки dev (codeplex \ dev), там это исправлено</title>
    <published>2012-03-19T21:25:04Z</published>
    <updated>2012-03-19T21:40:49Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Пробуйте из ветки dev (codeplex \ dev), там это исправлено</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/17435/</id>
    <title type="text">Печатаю следующее: Console.WriteLine(DateTime.Now.ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.fffff&amp;quot;) + &amp;quot;\r\n&amp;quot; + &amp;quot;...</title>
    <published>2012-03-19T21:07:01Z</published>
    <updated>2012-03-19T21:07:01Z</updated>
    <author>
      <name>StockSharpUser</name>
      <uri>https://stocksharp.com/users/27952/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Печатаю следующее:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

Console.WriteLine(DateTime.Now.ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.fffff&amp;quot;) + &amp;quot;\r\n&amp;quot; +
										&amp;quot;balance = &amp;quot; + order.Balance + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;cancel time = &amp;quot; + order.CancelTime + &amp;quot;\r\n&amp;quot; +
										&amp;quot;comment = &amp;quot; + order.Comment + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;derived order = &amp;quot; + order.DerivedOrder + &amp;quot;\r\n&amp;quot; +
										&amp;quot;direction = &amp;quot; + order.Direction + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;execution condition = &amp;quot; + order.ExecutionCondition + &amp;quot;\r\n&amp;quot; +
										&amp;quot;expiry = &amp;quot; + order.ExpiryDate + &amp;quot;\r\n&amp;quot; +
										&amp;quot;id = &amp;quot; + order.Id + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;isDisposed = &amp;quot; + order.IsDisposed + &amp;quot;\r\n&amp;quot; +
										&amp;quot;latency = &amp;quot; + order.Latency + &amp;quot;\r\n&amp;quot; +
										&amp;quot;messages = &amp;quot; + string.Join(&amp;quot; | &amp;quot;, order.Messages) + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;portfolio = &amp;quot; + order.Portfolio + &amp;quot;\r\n&amp;quot; +
										&amp;quot;price = &amp;quot; + order.Price + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;repo info = &amp;quot; + order.RepoInfo + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;rps info = &amp;quot; + order.RpsInfo + &amp;quot;\r\n&amp;quot; +
										&amp;quot;state = &amp;quot; + order.State + &amp;quot;\r\n&amp;quot; +
										&amp;quot;status = &amp;quot; + order.Status + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;stop condition = &amp;quot; + order.StopCondition + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;time = &amp;quot; + order.Time.ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.fffff&amp;quot;) + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;trader = &amp;quot; + order.Trader + &amp;quot;\r\n&amp;quot; +
										&amp;quot;transaction id = &amp;quot; + order.TransactionId + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;type = &amp;quot; + order.Type + &amp;quot;\r\n&amp;quot; +
                                        &amp;quot;volume = &amp;quot; + order.Volume + &amp;quot;\r\n&amp;quot;);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вывод программы:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Заявка 0 зарегистрирована.&lt;br /&gt;Orders change event fired. Count = 1&lt;br /&gt;2012-03-20 01:04:37.49263&lt;br /&gt;balance = 1&lt;br /&gt;cancel time =&lt;br /&gt;comment =&lt;br /&gt;derived order =&lt;br /&gt;direction = Sell&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry =&lt;br /&gt;id = 1658846224&lt;br /&gt;isDisposed = False&lt;br /&gt;latency = 00:00:00.1190810&lt;br /&gt;messages = (161) Заявка N 1658846224 зарегистрирована&lt;br /&gt;portfolio = 43913&lt;br /&gt;price = 100,72&lt;br /&gt;repo info =&lt;br /&gt;rps info =&lt;br /&gt;state = Active&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition =&lt;br /&gt;time = 2012-03-19 01:04:38.00000&lt;br /&gt;trader = StockSharp.Quik.QuikTrader&lt;br /&gt;transaction id = 3875622&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1&lt;br /&gt;&lt;br /&gt;Orders change event fired. Count = 1&lt;br /&gt;2012-03-20 01:04:37.50563&lt;br /&gt;balance = 1&lt;br /&gt;cancel time =&lt;br /&gt;comment =&lt;br /&gt;derived order =&lt;br /&gt;direction = Sell&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry =&lt;br /&gt;id = 1658846224&lt;br /&gt;isDisposed = False&lt;br /&gt;latency = 00:00:00.1190810&lt;br /&gt;messages = (161) Заявка N 1658846224 зарегистрирована&lt;br /&gt;portfolio = 43913&lt;br /&gt;price = 100,72&lt;br /&gt;repo info =&lt;br /&gt;rps info =&lt;br /&gt;state = Active&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition =&lt;br /&gt;time = 2012-03-19 01:04:38.00000&lt;br /&gt;trader = StockSharp.Quik.QuikTrader&lt;br /&gt;transaction id = 3875622&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1&lt;br /&gt;&lt;br /&gt;Сделка 1025086613 по цене 100,72 по бумаге SBER по объему 1 в 19.03.2012 1:04:48&lt;br /&gt;.&lt;br /&gt;Orders change event fired. Count = 1&lt;br /&gt;2012-03-20 01:04:47.82122&lt;br /&gt;balance = 0&lt;br /&gt;cancel time =&lt;br /&gt;comment =&lt;br /&gt;derived order =&lt;br /&gt;direction = Sell&lt;br /&gt;execution condition = PutInQueue&lt;br /&gt;expiry =&lt;br /&gt;id = 1658846224&lt;br /&gt;isDisposed = False&lt;br /&gt;latency = 00:00:00.1190810&lt;br /&gt;messages = (161) Заявка N 1658846224 зарегистрирована&lt;br /&gt;portfolio = 43913&lt;br /&gt;price = 100,72&lt;br /&gt;repo info =&lt;br /&gt;rps info =&lt;br /&gt;state = Done&lt;br /&gt;status = Accepted&lt;br /&gt;stop condition =&lt;br /&gt;time = 2012-03-19 01:04:38.00000&lt;br /&gt;trader = StockSharp.Quik.QuikTrader&lt;br /&gt;transaction id = 3875622&lt;br /&gt;type = Limit&lt;br /&gt;volume = 1</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/17433/</id>
    <title type="text">Спасибо за быстрый ответ! Пробовал выводить все поля заявки в консоль - они одинаковые в обоих случа...</title>
    <published>2012-03-19T20:42:04Z</published>
    <updated>2012-03-19T20:42:04Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;StockSharpUser &lt;a href="https://stocksharp.com/posts/m/17432/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Спасибо за быстрый ответ!&lt;br /&gt;&lt;br /&gt;Пробовал выводить все поля заявки в консоль - они одинаковые в обоих случаях вызова на состояние Active.&lt;br /&gt;&lt;br /&gt;По поводу двух Done: то есть StockSharp обновляет заявку не по таблицам QUIK&amp;#39;а? Как тогда по-другому происходит обновление?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;По первому - привидет пример такого вывода. Время везде выводите с милисекундами.&lt;br /&gt;&lt;br /&gt;По второму - заявка может быть обновлена в том числе по ответу на посланную транзакцию.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/17432/</id>
    <title type="text">Спасибо за быстрый ответ! Пробовал выводить все поля заявки в консоль - они одинаковые в обоих случа...</title>
    <published>2012-03-19T20:37:38Z</published>
    <updated>2012-03-19T20:37:38Z</updated>
    <author>
      <name>StockSharpUser</name>
      <uri>https://stocksharp.com/users/27952/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Спасибо за быстрый ответ!&lt;br /&gt;&lt;br /&gt;Пробовал выводить все поля заявки в консоль - они одинаковые в обоих случаях вызова на состояние Active.&lt;br /&gt;&lt;br /&gt;По поводу двух Done: то есть StockSharp обновляет заявку не по таблицам QUIK&amp;#39;а? Как тогда по-другому происходит обновление?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/17430/</id>
    <title type="text">OrdersChanged это изменение любого из поля заявки, не обязательно состояния с Done - у вас сразу зая...</title>
    <published>2012-03-19T20:26:34Z</published>
    <updated>2012-03-19T20:26:34Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">OrdersChanged это изменение любого из поля заявки, не обязательно состояния&lt;br /&gt;&lt;br /&gt;с Done - у вас сразу заявка исполняется по рынку, потому без Active обходится.&lt;br /&gt;Первый раз с done - информация по ответу на транзакцию&lt;br /&gt;Второй раз с done - пришло обновление по одной из таблиц квика</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/17429/</id>
    <title type="text">Только начинаю использовать библиотеку StockSharp. Скопировал пример из Samples и подписался на собы...</title>
    <published>2012-03-19T20:19:18Z</published>
    <updated>2012-03-19T20:19:18Z</updated>
    <author>
      <name>StockSharpUser</name>
      <uri>https://stocksharp.com/users/27952/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Только начинаю использовать библиотеку StockSharp. Скопировал пример из Samples и подписался на событие OrdersChanged. Оно почему-то вызывается дважды на одно и то же состояние заявки (Active) и тот же баланс (1). Не понимаю: почему так происходит. Код прикладываю. Помогите, пожалуйста, разобраться.&lt;br /&gt;&lt;br /&gt;Иногда это событие вызывается дважды, но с состоянием заявки Done. Active при этом не вызывается&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

using System;
    using System.Linq;
    using System.Threading;

    using Ecng.Common;

    using StockSharp.BusinessEntities;
    using StockSharp.Quik;
    using StockSharp.Algo;

namespace Test
{
    static class Test
    {
        private static Security _lkoh;
        private static Portfolio _portfolio;
        private static MarketDepth _depth;

        static void Main()
        {
            try
            {
                // для теста выбираем бумагу Лукойл
                const string secCode = &amp;quot;SBER&amp;quot;;

                var quikPath = QuikTerminal.GetDefaultPath();

                if (quikPath.IsEmpty())
                {
                    Console.WriteLine(&amp;quot;Не найден ни один запущенный Quik&amp;quot;);
                    return;
                }

                Console.WriteLine(&amp;quot;Запущенный Quik найден по пути &amp;quot; + quikPath);

                Console.Write(&amp;quot;Введите код клиента, через который будет выставлена заявка: &amp;quot;);
                var account = &amp;quot;43913&amp;quot;;

                using (var waitHandle = new AutoResetEvent(false))
                {
                    // создаем шлюз к Quik-у
                    using (var trader = new QuikTrader(quikPath))
                    {
                        // необходимо раскомментировать, если идет работа с РТС Стандарт
                        //trader.FormatTransaction += builder =&amp;gt; builder.RemoveInstruction(TransactionBuilder.ExecutionCondition);

                        // подписываемся на событие успешного подключения
                        // все действия необходимо производить только после подключения
                        trader.Connected += () =&amp;gt;
                        {
                            Console.WriteLine(&amp;quot;Подключение было произведено успешно.&amp;quot;);

                            // извещаем об успешном соединени
                            waitHandle.Set();
                        };

                        Console.WriteLine(&amp;quot;Производим подключение...&amp;quot;);

                        trader.Connect();

                        // дожидаемся события об успешном соединении
                        waitHandle.WaitOne();

                        trader.NewPortfolios += portfolios =&amp;gt;
                        {
                            if (_portfolio == null)
                            {
                                // находим нужный портфель и присваиваем его переменной _portfolio
                                _portfolio = portfolios.FirstOrDefault(p =&amp;gt; p.Name == account);

                                if (_portfolio != null)
                                {
                                    Console.WriteLine(&amp;quot;Портфель {0} появился.&amp;quot;, account);

                                    // если инструмент и стакан уже появились,
                                    // то извещаем об этом основной поток для выставления заявки
                                    if (_lkoh != null &amp;amp;&amp;amp; _depth != null)
                                        waitHandle.Set();
                                }
                            }
                        };

                        // подписываемся на событие появление инструментов
                        trader.NewSecurities += securities =&amp;gt;
                        {
                            if (_lkoh == null)
                            {
                                // находим Лукойл и присваиваем ее переменной lkoh
                                _lkoh = securities.FirstOrDefault(sec =&amp;gt; sec.Code == secCode);

                                if (_lkoh != null)
                                {
                                    Console.WriteLine(&amp;quot;Инструмент Лукойл появился.&amp;quot;);

                                    // запускаем экспорт стакана
                                    trader.RegisterQuotes(_lkoh);

                                    if (_portfolio != null &amp;amp;&amp;amp; _depth != null)
                                        waitHandle.Set();
                                }
                            }
                        };

                        // подписываемся на событие появления моих новых сделок
                        trader.NewMyTrades += myTrades =&amp;gt;
                        {
                            foreach (var myTrade in myTrades)
                            {
                                var trade = myTrade.Trade;
                                Console.WriteLine(&amp;quot;Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.&amp;quot;, trade.Id, trade.Price, trade.Security.Code, trade.Volume, trade.Time);
                            }
                        };

                        // подписываемся на событие обновления стакана
                        trader.QuotesChanged += depths =&amp;gt;
                        {
                            if (_depth == null &amp;amp;&amp;amp; _lkoh != null)
                            {
                                _depth = depths.FirstOrDefault(d =&amp;gt; d.Security == _lkoh);

                                if (_depth != null)
                                {
                                    Console.WriteLine(&amp;quot;Стакан Лукойла появился.&amp;quot;);

                                    // если портфель и инструмент уже появился, то извещаем об этом основной поток для выставления заявки
                                    if (_portfolio != null &amp;amp;&amp;amp; _lkoh != null)
                                        waitHandle.Set();
                                }
                            }
                        };

                        // subscribing to orders change event:
                        // subscribing to the orders changed event:
                        trader.OrdersChanged += orders =&amp;gt;
                        {
                            Console.WriteLine(&amp;quot;Orders change event fired. Count = &amp;quot; + orders.Count());
                            foreach (Order order in orders)
                            {
                                Console.WriteLine(&amp;quot; [&amp;quot; + order.Time + &amp;quot;] Order has changed for Strategy=&amp;quot; + order.Comment + &amp;quot; with id=&amp;quot; + order.Id + &amp;quot;, price=&amp;quot; + order.Price + &amp;quot;, size=&amp;quot; + order.Volume + &amp;quot;, security=&amp;quot; + order.Security.Code + &amp;quot;, new state=&amp;quot; + order.State + &amp;quot;, new balance=&amp;quot; + order.Balance);
                                // saving orders to the database:
                                // TODO
                            }
                        };

                        Console.WriteLine(&amp;quot;Дожидаемся появления в программе инструмента Лукойл и портфеля {0}...&amp;quot;.Put(account));

                        // запускаем экспорт по DDE
                        trader.StartExport(new[] {trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable,
						                   trader.EquityPortfoliosTable, trader.OrdersTable});

                        // дожидаемся появления портфеля и инструмента
                        waitHandle.WaitOne();

                        Order o = new Order
                        {
                            Portfolio = _portfolio,
                            Price = _lkoh.ShrinkPrice(_lkoh.BestAsk.Price),
                            Security = _lkoh,
                            Volume = 1,
                            Direction = OrderDirections.Sell
                        };
                        trader.RegisterOrder(o);
                        Console.WriteLine(&amp;quot;Заявка {0} зарегистрирована.&amp;quot;, o.Id);

                        // просто зависнуть:
                        waitHandle.WaitOne();

                        // останавливаем экспорт по DDE
                        trader.StopExport(new[] {trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable,
						                  trader.EquityPortfoliosTable, trader.OrdersTable});

                        Console.ReadLine();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>