﻿<?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">Событие при изменении Order.State</title>
  <id>~/topic/2487/sobytie-pri-izmenenii-order_state/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-11T07:54:18Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2487" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/17282/</id>
    <title type="text">спасибо! если уж на то пошло, то можно добавить уведомление OrderStateChange. Оч. нужно например для...</title>
    <published>2012-03-15T15:59:29Z</published>
    <updated>2012-03-15T15:59:29Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;maximv20 &lt;a href="https://stocksharp.ru/posts/m/17281/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;спасибо! если уж на то пошло, то можно добавить уведомление OrderStateChange. Оч. нужно например для того чтобы сделать какие-то действия, после того как заявка исполнилась, зафейлилась или выставилась. Например, при реализации айсберга, или снять стазу, если стала активной. Сейчас это сделать штатно нельзя, а при предполагаемом фиксе 4.1 придеться сравнивать строчки, что не очень производительно. предлагаю обсудить.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Не вариант. Подобное событие может потребоваться для любого свойства что есть в объектах. Нецелесообразно.&lt;br /&gt;&lt;br /&gt;Надо работать со State - заводите словарь &amp;lt;заявка, последний_обработанный_State&amp;gt; и работайте с событием OrdersChanged.&lt;br /&gt;Это наиболее правильный вариант.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Тут надо понимать для чего вам изменение State. Для того чтоб понять исполнена заявка или отклонена? Для этого есть множество правил, которые изрядно покрывают все возможные состояния заявки.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17281/</id>
    <title type="text">спасибо! если уж на то пошло, то можно добавить уведомление OrderStateChange. Оч. нужно например для...</title>
    <published>2012-03-15T15:45:37Z</published>
    <updated>2012-03-15T15:45:37Z</updated>
    <author>
      <name>maximv20</name>
      <uri>https://stocksharp.ru/users/28027/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">спасибо! если уж на то пошло, то можно добавить уведомление OrderStateChange. Оч. нужно например для того чтобы сделать какие-то действия, после того как заявка исполнилась, зафейлилась или выставилась. Например, при реализации айсберга, или снять стазу, если стала активной. Сейчас это сделать штатно нельзя, а при предполагаемом фиксе 4.1 придеться сравнивать строчки, что не очень производительно. предлагаю обсудить.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17280/</id>
    <title type="text">Ок, в 4.1 пофикшу. Не то чтобы это баг. По сути эти нотифаеры используются в основном лишь в гуе, пр...</title>
    <published>2012-03-15T15:34:27Z</published>
    <updated>2012-03-15T15:34:38Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Ок, в 4.1 пофикшу.&lt;br /&gt;Не то чтобы это баг. По сути эти нотифаеры используются в основном лишь в гуе, при байндинге.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17279/</id>
    <title type="text">inotifypropertychanged в MSDN - будет понятно почему много раз событие приходит. Далее смотрите Prop...</title>
    <published>2012-03-15T15:23:10Z</published>
    <updated>2012-03-15T15:23:10Z</updated>
    <author>
      <name>maximv20</name>
      <uri>https://stocksharp.ru/users/28027/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/17275/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.componentmodel.inotifypropertychanged.propertychanged.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.componentmodel.inotifypropertychanged.propertychanged.aspx"&gt;inotifypropertychanged в MSDN&lt;/a&gt; - будет понятно почему много раз событие приходит.&lt;br /&gt;&lt;br /&gt;Далее смотрите &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.componentmodel.propertychangedeventargs.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.componentmodel.propertychangedeventargs.aspx"&gt;PropertyChangedEventArgs в MSDN&lt;/a&gt; и обращаете внимание на замечательное свойство под названием PropertyName.&lt;br /&gt;&lt;br /&gt;Осталось лишь сравнить это поле с &amp;quot;State&amp;quot; на равенство.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Не понятно почему. Если описать свойство Order.State в соответствии с документацией (&amp;quot;Происходит при изменении значения свойства.&amp;quot;) и с примером получим следущее.&lt;br /&gt;[DataMember]&lt;br /&gt;public OrderStates State&lt;br /&gt;{&lt;br /&gt;    get&lt;br /&gt;    {&lt;br /&gt;        return this._state;&lt;br /&gt;    }&lt;br /&gt;    set&lt;br /&gt;    {&lt;br /&gt;           if (value != this._state)&lt;br /&gt;            {&lt;br /&gt;              this._state = value;&lt;br /&gt;         this.Notify(&amp;quot;State&amp;quot;);&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;а в реале имеем в библиотеке&lt;br /&gt;&lt;br /&gt;[DataMember]&lt;br /&gt;public OrderStates State&lt;br /&gt;{&lt;br /&gt;    get&lt;br /&gt;    {&lt;br /&gt;        return this._state;&lt;br /&gt;    }&lt;br /&gt;    set&lt;br /&gt;    {&lt;br /&gt;        this._state = value;&lt;br /&gt;        this.Notify(&amp;quot;State&amp;quot;);&lt;br /&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.ru/posts/m/17275/</id>
    <title type="text">inotifypropertychanged в MSDN - будет понятно почему много раз событие приходит. Далее смотрите Prop...</title>
    <published>2012-03-15T14:04:50Z</published>
    <updated>2012-03-15T14:04:50Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.componentmodel.inotifypropertychanged.propertychanged.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.componentmodel.inotifypropertychanged.propertychanged.aspx"&gt;inotifypropertychanged в MSDN&lt;/a&gt; - будет понятно почему много раз событие приходит.&lt;br /&gt;&lt;br /&gt;Далее смотрите &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.componentmodel.propertychangedeventargs.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.componentmodel.propertychangedeventargs.aspx"&gt;PropertyChangedEventArgs в MSDN&lt;/a&gt; и обращаете внимание на замечательное свойство под названием PropertyName.&lt;br /&gt;&lt;br /&gt;Осталось лишь сравнить это поле с &amp;quot;State&amp;quot; на равенство.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17274/</id>
    <title type="text">Извиняюсь, не понял как. Вот мне приходит (сократил из предыдущего): 16:34:21.490 | | POStrategy | O...</title>
    <published>2012-03-15T13:55:38Z</published>
    <updated>2012-03-15T13:55:38Z</updated>
    <author>
      <name>maximv20</name>
      <uri>https://stocksharp.ru/users/28027/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Извиняюсь, не понял как. Вот мне приходит (сократил из предыдущего):&lt;br /&gt;16:34:21.490 | | POStrategy | OnOrderPropertyChanged: State: ST=Done/-;&lt;br /&gt;16:34:21.555 | | POStrategy | OnOrderPropertyChanged: State: ST=Done/-;&lt;br /&gt;Если состояние не меняеться (OrderState==Done) то почему приходят события об изменении?&lt;br /&gt;&lt;br /&gt;Допустим я хочу сделать какое-то действие при переходе заявки в состояние Done. Если я буду получать вызовы как выше, то мое действие будет выполнено 2 раза, а мне надо только один.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17273/</id>
    <title type="text">и искать изменения с &amp;quot;State&amp;quot; я сразу написал выше проверяйте ваш PropertyChangedEventArgs </title>
    <published>2012-03-15T13:14:01Z</published>
    <updated>2012-03-15T13:14:01Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;и искать изменения с &amp;quot;State&amp;quot;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;я сразу написал выше&lt;br /&gt;проверяйте ваш PropertyChangedEventArgs </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17272/</id>
    <title type="text">у меня приходит событие изменения хотя само свойство не меняеться: _order = this.CreateOrder(OrderDi...</title>
    <published>2012-03-15T12:59:20Z</published>
    <updated>2012-03-15T12:59:20Z</updated>
    <author>
      <name>maximv20</name>
      <uri>https://stocksharp.ru/users/28027/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">у меня приходит событие изменения хотя само свойство не меняеться:&lt;br /&gt;&lt;br /&gt;_order = this.CreateOrder(OrderDirections.Buy, price);&lt;br /&gt;_order.Type = OrderTypes.Limit;&lt;br /&gt;((INotifyPropertyChanged) _order).PropertyChanged += OnOrderPropertyChanged;&lt;br /&gt;RegisterOrder(_order);&lt;br /&gt;&lt;br /&gt;void OnOrderPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) {&lt;br /&gt;			var sb = new StringBuilder(&amp;quot;OnOrderPropertyChanged: &amp;quot;);&lt;br /&gt;			sb.Append(e.PropertyName).Append(&amp;quot;: &amp;quot;);&lt;br /&gt;			if(sender==null)&lt;br /&gt;				sb.Append(&amp;quot;sender==null&amp;quot;);&lt;br /&gt;			else {&lt;br /&gt;				var order = sender as Order;&lt;br /&gt;				if(order==null) {&lt;br /&gt;					sb.Append(&amp;quot;sender is not Order&amp;quot;);&lt;br /&gt;				}else {&lt;br /&gt;					sb.Append(OrderToString(order));&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;			this.AddInfoLog(sb.ToString);&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;очищено от ненужного:&lt;br /&gt;16:34:21.401 |            | PlazaTrader     | CancelOrder: TransactionId=59303270, Id=2722330316, Price=169650, Balance=1, Security=RIM2@RTS, State=Active &lt;br /&gt;16:34:21.490 |            | POStrategy      | OnOrderPropertyChanged: State: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.490; &lt;br /&gt;16:34:21.490 |            | POStrategy      | OnOrderChanged: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.490; &lt;br /&gt;16:34:21.555 |            | POStrategy      | OnOrderPropertyChanged: State: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.472; &lt;br /&gt;16:34:21.555 |            | POStrategy      | OnOrderChanged: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.472; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;полный лог:&lt;br /&gt;16:34:21.401 |            | PlazaTrader     | CancelOrder: TransactionId=59303270, Id=2722330316, Price=169650, Balance=1, Security=RIM2@RTS, State=Active &lt;br /&gt;16:34:21.490 |            | POStrategy      | OnOrderPropertyChanged: Balance: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.490; &lt;br /&gt;16:34:21.490 |            | POStrategy      | OnOrderPropertyChanged: CancelTime: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.490; &lt;br /&gt;16:34:21.490 |            | POStrategy      | OnOrderPropertyChanged: State: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.490; &lt;br /&gt;16:34:21.490 |            | POStrategy      | OnOrderChanged: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.490; &lt;br /&gt;16:34:21.555 |            | PlazaTrader     | OnOrdersLogInserted: orderId=2722330316; sessId=4002; moment=2012-03-15 16:34:21.472; status=2102273; action=0; isinId=159336; direction=True; price=169650; amountOperation=1; amountRest=0;&lt;br /&gt;16:34:21.555 |            | POStrategy      | OnOrderPropertyChanged: CancelTime: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.472; &lt;br /&gt;16:34:21.555 |            | POStrategy      | OnOrderPropertyChanged: Balance: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.472; &lt;br /&gt;16:34:21.555 |            | POStrategy      | OnOrderPropertyChanged: State: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.472; &lt;br /&gt;16:34:21.555 |            | POStrategy      | OnOrderChanged: TID=59303270; ID=2722330316; ST=Done/-; L=92; Buy 1/1@169650 RIM2@RTS; CT=2012-03-15 16:34:21.472; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17264/</id>
    <title type="text">((INotifyPropertyChanged)order).PropertyChanged и искать изменения с &amp;quot;State&amp;quot;</title>
    <published>2012-03-15T10:52:54Z</published>
    <updated>2012-03-15T10:52:54Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
((INotifyPropertyChanged)order).PropertyChanged&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;и искать изменения с &amp;quot;State&amp;quot;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17260/</id>
    <title type="text">Можно ли отследить изменения конкретно Order.State (а не вообще какой-то информации по ордеру)? У ме...</title>
    <published>2012-03-15T10:38:50Z</published>
    <updated>2012-03-15T10:38:50Z</updated>
    <author>
      <name>maximv20</name>
      <uri>https://stocksharp.ru/users/28027/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Можно ли отследить изменения конкретно Order.State (а не вообще какой-то информации по ордеру)? У меня например приходит 2 OnOrderChanged с изменяющися CancelTime. Я же хочу отслеживать только Order.State. Как правильно это делать?&lt;br /&gt;&lt;br /&gt;14:01:05.577 |            | PlazaTrader     | RegisterOrder: TransactionId=50327216, Id=0, Price=174030, Balance=1, Security=RIH2@RTS, State=None &lt;br /&gt;14:01:05.662 |            | PlazaTrader     | New order: TransactionId=50327216, Id=2722005545, Price=174030, Balance=1, Security=RIH2@RTS, State=Active &lt;br /&gt;14:01:05.686 |            | POStrategy      | OnOrderChanged: TID=50327216; ID=2722005545; ST=Active/-; L=84; Buy 1/1@174030 RIH2@RTS; &lt;br /&gt;14:01:05.687 |            | POStrategy      | OnOrderChanged: cancel&lt;br /&gt;14:01:05.687 |            | PlazaTrader     | CancelOrder: TransactionId=50327216, Id=2722005545, Price=174030, Balance=1, Security=RIH2@RTS, State=Active &lt;br /&gt;14:01:05.831 |            | POStrategy      | OnOrderChanged: TID=50327216; ID=2722005545; ST=Done/-; L=84; Buy 1/1@174030 RIH2@RTS; CT=2012-03-15 14:01:05.831; &lt;br /&gt;14:01:05.909 |            | POStrategy      | OnOrderChanged: TID=50327216; ID=2722005545; ST=Done/-; L=84; Buy 1/1@174030 RIH2@RTS; CT=2012-03-15 14:01:05.788; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>