﻿<?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">Несответствие данных, получаемых по AddInfoLog() и AddOrderInfoLog()</title>
  <id>~/topic/3266/nesotvetstvie-dannyh-poluchaemyh-po-addinfolog()-i-addorderinfolog()/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-11T01:22:10Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3266" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/23206/</id>
    <title type="text">NewMan: 12:16:15.786|Error |PlazaTrader|System.ArgumentNullException: Значение не может быть неопред...</title>
    <published>2012-12-26T03:39:26Z</published>
    <updated>2012-12-26T03:39:26Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23204)" rel="nofollow" target="_blank"&gt;NewMan&lt;/a&gt;:&lt;/strong&gt;
12:16:15.786|Error  |PlazaTrader|System.ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: order
в StockSharp.Algo.Slippage.SlippageManager...
в StockSharp.Algo.Slippage.SlippageManager...
в StockSharp.Algo.Slippage.SlippageManager.RegisterFailed(OrderFail fail)
в StockSharp.Algo.Strategies.Strategy...
в StockSharp.Algo.Strategies.Strategy...
в System.Action&lt;code&gt;1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action&lt;/code&gt;1 handler, T arg)
в Ecng.ComponentModel.EventsContainer&lt;code&gt;1.Raise(IEnumerable&lt;/code&gt;1 items)
Покажите полное сообщение, вместо многоточия должен быть еще текст.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23204)" rel="nofollow" target="_blank"&gt;NewMan&lt;/a&gt;:&lt;/strong&gt;
одновременно эти сообщения дублируются в MessageBox, забивая экран.
В коде стратегии нет ни одного вызова MessageBox.
Смотрите у себя в обвязке стратегии, где у вас могут выводиться MessageBox-ы.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23204/</id>
    <title type="text">После фикса: .................... 12:16:15.530| |PlazaTrader|New order: 43860581/3153200118 Продажа ...</title>
    <published>2012-12-25T17:30:23Z</published>
    <updated>2012-12-25T17:30:23Z</updated>
    <author>
      <name>NewMan</name>
      <uri>https://stocksharp.com/users/6449/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;После фикса:&lt;/p&gt;
&lt;p&gt;....................
12:16:15.530|       |PlazaTrader|New order: 43860581/3153200118 Продажа Цена=151890 Объем=1 Сост=Active Бал=1
12:16:15.530|       |Strategy1  |&lt;WhenRegistered&gt;: 43860581/3153200118 Продажа Цена=151890 Объем=1 Сост=Active Бал=1
12:16:15.568|       |PlazaTrader|Order changed: 43860581/3153200118 Продажа Цена=151890 Объем=1 Сост=Active Бал=1
12:16:15.586|       |Strategy1  |Перерегистрация заявки 43860581 с ценой 151890 на цену 151920.
12:16:15.586|       |Strategy1  |Перерегистрация проскальзывания заявки 43860581 (0x22A95D) на заявку (0x5EF497).
12:16:15.619|       |Strategy1  |Новая Sell сделка 7869195 по цене 151890 на 1 заявки 43860581.
12:16:15.626|       |PlazaTrader|Order changed: 43860581/3153200118 Продажа Цена=151890 Объем=1 Сост=Done Бал=0
12:16:15.626|       |Strategy1  |Новая позиция: ABCDEFG-RIH3@RTS=1.
12:16:15.626|       |Strategy1  |&lt;WhenMatched&gt;: 43860581/3153200118 Продажа Цена=151890 Объем=1 Сост=Done Бал=0
12:16:15.626|       |Strategy1  |Заявка 43860581 больше не активна.
12:16:15.757|       |PlazaTrader|OrderCancelFailed: 43860581/3153200118 Продажа Цена=151890 Объем=1 Сост=Done Бал=0
StockSharp.Plaza.PlazaException: Произошла ошибка. Код 50, описание 'Не найдена заявка для перестановки.'.
12:16:15.757|       |PlazaTrader|OrderFailed: 43860583/0 Продажа Цена=151920 Объем=1 Сост=Failed Бал=1
StockSharp.Plaza.PlazaException: Произошла ошибка. Код 50, описание 'Не найдена заявка для перестановки.'.
12:16:15.757|Error  |Strategy1  |Заявка 43860583 (0x5EF497) не была принята по причине StockSharp.Plaza.PlazaException: Произошла ошибка. Код 50, описание 'Не найдена заявка для перестановки.'..
12:16:15.786|Error  |PlazaTrader|System.ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: order
в StockSharp.Algo.Slippage.SlippageManager...
в StockSharp.Algo.Slippage.SlippageManager...
в StockSharp.Algo.Slippage.SlippageManager.RegisterFailed(OrderFail fail)
в StockSharp.Algo.Strategies.Strategy...
в StockSharp.Algo.Strategies.Strategy...
в System.Action&lt;code&gt;1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action&lt;/code&gt;1 handler, T arg)
в Ecng.ComponentModel.EventsContainer&lt;code&gt;1.Raise(IEnumerable&lt;/code&gt;1 items)
12:16:15.786|Error  |Strategy1  |Заявка 43860581 не была отменена по причине StockSharp.Plaza.PlazaException: Произошла ошибка. Код 50, описание 'Не найдена заявка для перестановки.'..
....................&lt;/p&gt;
&lt;p&gt;Появились сообщения о перерегистрации проскальзывания заявок (на 15.586милисек) - раньше их не было.
Стали появляться в лог-файле сообщения в десяток строк (на 15.786милисек) о System.ArgumentNullException в StockSharp.Algo.Slippage.SlippageManager и
одновременно эти сообщения дублируются в MessageBox, забивая экран.
В коде стратегии нет ни одного вызова MessageBox.&lt;/p&gt;
&lt;p&gt;Просьба: отменить или заблокировать вывод сообщений от SlippageManager - очень мешают, да и логи забиваются ненужной информацией.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23189/</id>
    <title type="text">Залил фикс на кодеплекс. </title>
    <published>2012-12-24T08:09:30Z</published>
    <updated>2012-12-24T08:09:30Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Залил фикс на кодеплекс.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23176/</id>
    <title type="text">По поводу 2. 19:36:25.743| |PlazaTrader|RegisterOrder: 9914079/1519181401 Покупка Цена=152080 Объем=...</title>
    <published>2012-12-23T11:19:41Z</published>
    <updated>2012-12-23T11:19:41Z</updated>
    <author>
      <name>NewMan</name>
      <uri>https://stocksharp.com/users/6449/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;По поводу
2. 19:36:25.743| |PlazaTrader|RegisterOrder: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0
стало понятно. библиотека заглянула в будущее и увидела ID заявки.
Но в строке
3. 19:36:25.959| |PlazaTrader|New order: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0
PlazaTrader сообщает о том, что получен новый ордер, у которого Сост=Done Бал=0
Затем активируется WhenRegistered. и здесь строка
5. 19:36:25.964| |Strategy1 |&lt;WhenRegistered&gt; AddOrderInfoLog: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0
показывает Сост и Баланс такой же, как в 3 строке,
а в строке
4. 19:36:25.964| |Strategy1 |&lt;WhenRegistered&gt; AddInfoLog: Order=9914079/1519181401, State=Active, Balance=1
State=Active, Balance=1, когда на самом деле Сост=Done Бал=0
Вот в чем вопрос.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23174/</id>
    <title type="text">NewMan: Я думаю, баг не в AddOrderInfoLog, поскольку в 25.743сек PlazaTrader сообщает о регистрации ...</title>
    <published>2012-12-23T09:53:15Z</published>
    <updated>2012-12-23T09:53:15Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23173)" rel="nofollow" target="_blank"&gt;NewMan&lt;/a&gt;:&lt;/strong&gt;
Я думаю, баг не в AddOrderInfoLog, поскольку в 25.743сек PlazaTrader сообщает о регистрации исполненной заявки с Сост=Done Бал=0.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Вот именно здесь и ошибка, не может в данном месте заявка иметь биржевой номер.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23173/</id>
    <title type="text">Я думаю, баг не в AddOrderInfoLog, поскольку в 25.743сек PlazaTrader сообщает о регистрации исполнен...</title>
    <published>2012-12-23T09:48:24Z</published>
    <updated>2012-12-23T09:48:24Z</updated>
    <author>
      <name>NewMan</name>
      <uri>https://stocksharp.com/users/6449/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я думаю, баг не в AddOrderInfoLog, поскольку в 25.743сек PlazaTrader сообщает о регистрации исполненной заявки с Сост=Done Бал=0.
Далее AddOrderInfoLog только подтверждает эту информацию. AddInfoLog противоречит сообщению от PlazaTrader.
Если вы исправите AddOrderInfoLog, то он также будет показывать недостоверную информацию.
Вот код с указанными выше правилами.&lt;/p&gt;
&lt;p&gt;order
.WhenRegistered()
.Do(_order =&amp;gt;
{
this.AddInfoLog(&amp;quot;&lt;WhenRegistered&gt; AddInfoLog:&amp;quot; + &amp;quot; Order=&amp;quot; +_order.TransactionId + &amp;quot;/&amp;quot; + _order.Id + &amp;quot;, State=&amp;quot; + _order.State + &amp;quot;, Balance=&amp;quot; + _order.Balance);
this.AddOrderInfoLog(_order, &amp;quot;&lt;WhenRegistered&gt; AddOrderInfoLog:&amp;quot;);
})
.Once()
.Apply(this);&lt;/p&gt;
&lt;p&gt;order
.WhenMatched()
.Do(_order =&amp;gt;
{
this.AddOrderInfoLog(_order, &amp;quot;&lt;WhenMatched&gt;&amp;quot;);
})
.Once()
.Apply(this);&lt;/p&gt;
&lt;p&gt;Нужно, чтобы по _order.State я смог бы получить состояние заявки, соответствующее тому, что выдает PlazaTrader. Тогда я смогу делать addOrder вместо moveOrder и не будет указанных выше ошибок.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23171/</id>
    <title type="text">Код более не нужен. Это баг в AddOrderInfoLog, она выводит неверные данные. Используйте пока this.Ad...</title>
    <published>2012-12-23T04:20:15Z</published>
    <updated>2012-12-23T04:20:15Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Код более не нужен. Это баг в AddOrderInfoLog, она выводит неверные данные. Используйте пока this.AddInfoLog(), в ближайшие несколько дней будет фикс на кодеплексе.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23168/</id>
    <title type="text">Приведите минимальный код с выводом всех этих данных. </title>
    <published>2012-12-22T17:29:59Z</published>
    <updated>2012-12-22T17:29:59Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Приведите минимальный код с выводом всех этих данных.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23167/</id>
    <title type="text">Вопрос не касается транзакционности при работе с заявками. Речь идет о том, что библиотека имеет тек...</title>
    <published>2012-12-22T16:54:35Z</published>
    <updated>2012-12-22T16:54:35Z</updated>
    <author>
      <name>NewMan</name>
      <uri>https://stocksharp.com/users/6449/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Вопрос не касается транзакционности при работе с заявками.
Речь идет о том, что библиотека имеет текущую (свежую) информацию о заявке, но передает ее в стратегию (польэователю) значительно позже.
Рассмотрим выдержку из лог-файла:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;19:36:25.742|       |Strategy1  |Регистрация новой заявки на Buy с ценой 152080 и объемом 1.&lt;/li&gt;
&lt;li&gt;19:36:25.743|       |PlazaTrader|RegisterOrder: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0&lt;/li&gt;
&lt;li&gt;19:36:25.959|       |PlazaTrader|New order: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0&lt;/li&gt;
&lt;li&gt;19:36:25.964|       |Strategy1  |&lt;WhenRegistered&gt; AddInfoLog: Order=9914079/1519181401, State=Active, Balance=1&lt;/li&gt;
&lt;li&gt;19:36:25.964|       |Strategy1  |&lt;WhenRegistered&gt; AddOrderInfoLog: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0&lt;/li&gt;
&lt;li&gt;19:36:25.968|       |Strategy1  |Перегистрация заявки 9914079 с ценой 152080 на цену 152070.&lt;/li&gt;
&lt;li&gt;19:36:25.975|       |Strategy1  |Новая Buy сделка 7773983 по цене 152070 на 1 заявки 69914079.&lt;/li&gt;
&lt;li&gt;19:36:25.976|       |PlazaTrader|Order changed: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0&lt;/li&gt;
&lt;li&gt;19:36:25.978|       |PlazaTrader|Order changed: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0&lt;/li&gt;
&lt;li&gt;19:36:25.978|       |Strategy1  |Новая позиция: ABCDEFG-RIH3@RTS=1.&lt;/li&gt;
&lt;li&gt;19:36:26.002|       |Strategy1  |&lt;WhenMatched&gt; 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0&lt;/li&gt;
&lt;li&gt;19:36:26.002|       |Strategy1  |Заявка 9914079 больше не активна.&lt;/li&gt;
&lt;li&gt;19:36:26.111|       |PlazaTrader|OrderCancelFailed: 9914079/1519181401 Покупка Цена=152080 Объем=1 Сост=Done Бал=0
StockSharp.Plaza.PlazaException: Произошла ошибка. Код 50, описание 'Не найдена заявка для перестановки.'.&lt;/li&gt;
&lt;li&gt;19:36:26.112|       |PlazaTrader|OrderFailed: 9914081/0 Покупка Цена=152070 Объем=1 Сост=Failed Бал=1
StockSharp.Plaza.PlazaException: Произошла ошибка. Код 50, описание 'Не найдена заявка для перестановки.'.&lt;/li&gt;
&lt;li&gt;19:36:26.112|Error  |Strategy1  |Заявка 9914081 не была принята по причине StockSharp.Plaza.PlazaException:
Произошла ошибка. Код 50, описание 'Не найдена заявка для перестановки.'..&lt;/li&gt;
&lt;li&gt;19:36:26.112|       |Strategy1  |Заявка 9914081 больше не активна.&lt;/li&gt;
&lt;li&gt;19:36:26.112|Error  |Strategy1  |Заявка 9914079 не была отменена по причине StockSharp.Plaza.PlazaException:
Произошла ошибка. Код 50, описание 'Не найдена заявка для перестановки.'..&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;В 25.743сек PlazaTrader сообщает о регистрации заявки с присвоенным Id и Сост=Done Бал=0.
Это информация говорит о том, что заявка исполнилась по рынку.
Правило WhenRegistered было активировано в 25.964сек. В AddInfoLog используя order.State и order.Balance получаю State=Active, Balance=1.
Но эти данные не соответствуют реальному состоянию заявки.
В следующей строке кода AddOrderInfoLog выдает Сост=Done Бал=0, подтверждая данные PlazaTrader, сообщенные раньше на 219 милисек.
В 25.968сек используя недостоверную информацию о состоянии заявки (State=Active) стратегия дает команду MoveOrder на перерегистрацию заявки 9914079/1519181401.
Вместо этого нужно было выполнить AddOrder, т.к. реальное состояние заявки Сост=Done Бал=0, и все было бы ОК.
В 25.975сек библиотека сообщает о новой сделке по этой заявке и в 26.002сек активируется WhenMatched, но заявка на перерегистрацию уже улетела.
Активация произошла через 259милисек после сообщения PlazaTrader о регистрации заявки с Сост=Done Бал=0. Это долго.
В 26.111-26.112 библиотека сообщает об ошибках перерегистрации заявки 9914079 на 9914081 на серверах биржи.
Из-за недостоверности предоставленной библиотекой информации стратегия потеряла время на выставление заранее обреченной заявки,
а сервера биржи выполнили лишнюю и ненужную работу.&lt;/p&gt;
&lt;p&gt;Так как все-таки получить свежие значения для order.State и order.Balance аналогичные тем, что выдает AddOrderInfoLog()?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23138/</id>
    <title type="text">Посмотрите вот это. </title>
    <published>2012-12-21T03:22:08Z</published>
    <updated>2012-12-21T03:22:08Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Посмотрите вот &lt;a href="http://stocksharp.com/doc/html/4ffe2119-9458-449b-a2dc-7551f8e77c20.htm"&gt;это&lt;/a&gt;.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23132/</id>
    <title type="text">Здравствуйте! В правиле order.WhenRegistered() (успешная регистрация заявки) используя this.AddInfoL...</title>
    <published>2012-12-20T17:29:28Z</published>
    <updated>2012-12-20T17:29:28Z</updated>
    <author>
      <name>NewMan</name>
      <uri>https://stocksharp.com/users/6449/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Здравствуйте!
В правиле order.WhenRegistered() (успешная регистрация заявки) используя this.AddInfoLog() вывожу:
18:28:23.060 | Strategy1 | AddInfoLog: Order=66102994/3150125547, State=Active, Balance=2&lt;/p&gt;
&lt;p&gt;Следом для этого же ордера используя this.AddOrderInfoLog() получаю:
18:28:23.060 | Strategy1 | AddOrderInfoLog: 66102994/3150125547 Продажа Цена=153090 Объем=2 Сост=Done Бал=0&lt;/p&gt;
&lt;p&gt;Для одного и того же ордера имеем разные значения для состояния заявки и баланса.
AddOrderInfoLog() выдает свежие (последние) значения.&lt;/p&gt;
&lt;p&gt;Как получить свежие значения для order.State и order.Balance аналогичные тем, что выдает AddOrderInfoLog()?
Спасибо!&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>