﻿<?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">S# 4.1.18, не приходит OrderRegistered при тестировании в EmulationTrader</title>
  <id>~/topic/3967/s-4_1_18-ne-prihodit-orderregistered-pri-testirovanii-v-emulationtrader/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-15T02:50:08Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3967" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/27368/</id>
    <title type="text">UPD. Сейчас прогнал на старых версиях: в версии S# 4.1.15 регистрация заявок в MarketQuotingStrategy...</title>
    <published>2013-09-10T15:19:54Z</published>
    <updated>2013-09-10T15:19:54Z</updated>
    <author>
      <name>pafnuty</name>
      <uri>https://stocksharp.com/users/6151/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;b&gt;UPD. &lt;/b&gt; Сейчас прогнал на старых версиях: в версии S# 4.1.15 регистрация заявок в MarketQuotingStrategy работает нормально (выставление заявок через RegisterOrder не пробовал). Начиная с 4.1.16.1 не работает.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/27367/</id>
    <title type="text">Добрый день! Прошу помощи. У меня здесь даже две проблемы. 1. Просто не приходит OrderRegistered в с...</title>
    <published>2013-09-10T14:29:26Z</published>
    <updated>2013-09-10T14:29:26Z</updated>
    <author>
      <name>pafnuty</name>
      <uri>https://stocksharp.com/users/6151/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день!&lt;br /&gt;Прошу помощи. У меня здесь даже две проблемы.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. &lt;/b&gt;Просто не приходит OrderRegistered в стратегию:&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;
   
    protected override void OnStarted()
    {
      //  настраиваем получение данных,
      this.Trader.MarketDepthsChanged += (depths) =&amp;gt;
        {
          depths.ForEach(depth =&amp;gt;
          {
            if (depth.Security.Equals(this.Security))
              ProcessDepth(depth);
          });
        };

      this.OrderRegistered += (order) =&amp;gt;
      {
        Chart_DrawOrder(order);
      };
      this.OrderRegisterFailed += (o) =&amp;gt;
      {
        this._Log.Error(this.Name, &amp;quot;Order registering failed: &amp;quot; + o.Error.ToString());
      };
      this.NewMyTrades += (trades) =&amp;gt;
      {
        trades.ForEach((t) =&amp;gt; Chart_DrawTrade(t.Trade));
      };

      //  workaround
      this.Trader.NewOrders += (orders) =&amp;gt;
        {
          orders.ForEach((o) =&amp;gt; Chart_DrawOrder(o));
        };


      base.OnStarted();
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Здесь я получаю MarketDepthsChanged, где в обработчике ProcessDepth() делаю такую заявку: &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;

      var order = this.CreateOrder(dir, depth.BestPair.MiddlePrice, 1); // (здесь я пробовал цену двигать и вверх, и вниз от MiddlePrice на много пунктов, но ничего не менялось)
      this.RegisterOrder(order);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;После чего я получаю только событие NewMyTrades, а OrderRegistered или OrderRegisterFailed не идут. :-\&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;

      strategy.PnLChanged += () =&amp;gt;
      {
        this.GuiAsync(() =&amp;gt; chartCurveItems.Add(new EquityData { Time = strategy.GetMarketTime(), Value = strategy.PnL, }));
      };
      strategy.PositionChanged += () =&amp;gt;
      {
        this.GuiAsync(() =&amp;gt; chartPosItems.Add(new EquityData { Time = strategy.GetMarketTime(), Value = strategy.Position }));
      };
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;В логах видно, что позиция изменяется (все заявки Sell/Buy проходят одинаковый жизненный цикл):&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:plain"&gt;

...
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Регистрация новой Limit (0x24CBD2A) заявки на Buy с ценой 129650 и объемом 1. 
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Полное исполнение  64190751/0 (0x1934CBE)&amp;#39;. Подписалось на события.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Отмена заявки  64190751/0 (0x1CC1659)&amp;#39;. Подписалось на события.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Ошибка регистрации заявки  64190751/0 (0x270F9F2)&amp;#39;. Подписалось на события.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Новая Buy сделка 1 по цене 129560 на 1 заявки 64190751.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Новая позиция: test account-RIU3@FORTS=1.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Отмена заявки  64190751/0 (0x1CC1659) OR Полное исполнение  64190751/0 (0x1934CBE) OR Ошибка регистрации заявки  64190751/0 (0x270F9F2)&amp;#39;. Активация.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Заявка 64190751 больше не активна.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Отмена заявки  64190751/0 (0x1CC1659) OR Полное исполнение  64190751/0 (0x1934CBE) OR Ошибка регистрации заявки  64190751/0 (0x270F9F2)&amp;#39;. Удаляется.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Отмена заявки  64190751/0 (0x1CC1659)&amp;#39;. Освободило ресурсы.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Полное исполнение  64190751/0 (0x1934CBE)&amp;#39;. Освободило ресурсы.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Ошибка регистрации заявки  64190751/0 (0x270F9F2)&amp;#39;. Освободило ресурсы.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Отмена заявки  64190751/0 (0x1CC1659) OR Полное исполнение  64190751/0 (0x1934CBE) OR Ошибка регистрации заявки  64190751/0 (0x270F9F2)&amp;#39;. Освободило ресурсы.
2013.09.10 17:49:54 (Info) [PriceTimeAverage] 22.08.2013 10:00:28 Правило &amp;#39;Отмена заявки  64190751/0 (0x1CC1659) OR Полное исполнение  64190751/0 (0x1934CBE) OR Ошибка регистрации заявки  64190751/0 (0x270F9F2)&amp;#39;. Удаление.
...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. &lt;/b&gt;Если же заявки кидать из дочерней стратегии MarketQuotingStrategy, то постоянно приходит OrderRegisterFailed, где &amp;quot;Элемент с тем же ключом уже был добавлен.&amp;quot;:&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:plain"&gt;

22.08.2013 10:00:28 Заявка 0 (0x2BFF0FC) не была принята по причине 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)
   в StockSharp.Algo.Slippage.SlippageManager.ReRegistering(Order oldOrder, Order newOrder)
   в StockSharp.Algo.Strategies.Strategy.ReRegisterSlippage(Order oldOrder, Order newOrder)
   в StockSharp.Algo.Strategies.Strategy.#=qbIRUWiEU8CQqWDdjRkfgkvfps6OAx7vD2Kqx82Rxd2I=(Order #=qKmmNADXEA1y6G4xj6oHNDA==, Order #=qRatAMf_6Pq77ALgggiLSJg==)
   в StockSharp.Algo.Strategies.Strategy.#=qnMkTDK$vgFXAHD_jnQqUoemJ0xATFxaqCLg1EscWz7E=(Order #=qDdHQIfKqKsvs3l4L2CQFkw==, Order #=q93_Szosd58yZODoC0qE$DA==, Action`2 #=qILlzwmip4x798LunUOS2Uw==).
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Дочернюю стратегию создаю так:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

      var strategyChild = new MarketQuotingStrategy(dir, 1) { PriceOffset = 10 };
      strategyChild.LogLevel = LogLevels.Error;
      strategyChild.WaitAllTrades = true;
      strategyChild.OrderRegistered += (order) =&amp;gt; { 
        Chart_DrawOrder(order); 
      };
      this.OrderRegisterFailed += (o) =&amp;gt; {
        this._Log.Error(this.Name, &amp;quot;Order registering failed: &amp;quot; + o.Error.ToString());
      };
      strategyChild.NewMyTrades += (trades) =&amp;gt;
      {
        trades.ForEach((t) =&amp;gt; Chart_DrawTrade(t.Trade));
      };

      this.ChildStrategies.Add(strategyChild);    
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Здесь приходят сообщения NewMyTrades и OrderRegisterFailed, и у родительской стратегии приходят PnLChanged и PositionChanged.&lt;br /&gt;OrderRegistered не случается ни разу.&lt;br /&gt;На какой-то предыдущей версии S# этот код работал, но я не помню, на какой именно.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>