﻿<?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">Правила на новый трейд у Conditional ордера</title>
  <id>~/topic/16026/pravila-na-novyi-treid-u-conditional-ordera/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-01T15:45:30Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=16026" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/56676/</id>
    <title type="text">И еще вопрос: В режиме бэктеста нужно использовать именно EmulationOrderCondition? Я не увидел никак...</title>
    <published>2021-08-30T11:33:38Z</published>
    <updated>2021-08-30T11:33:38Z</updated>
    <author>
      <name>SelfDeleted</name>
      <uri>https://stocksharp.ru/users/153838/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">И еще вопрос:&lt;br /&gt;В режиме бэктеста нужно использовать именно EmulationOrderCondition? Я не увидел никаких использований этого класса в коде, связанным с бэктестом. Также я не нашел никакого кода, связанного с обработкой класса OrderCondition, от котогоро наследуется EmulationOrderCondition.&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/56675/</id>
    <title type="text">Добрый день, в целом да, у ConditionalOrder нельзя посчитать реализованный объем, т.к. ConditionalOr...</title>
    <published>2021-08-30T11:19:15Z</published>
    <updated>2021-08-30T11:19:15Z</updated>
    <author>
      <name>SelfDeleted</name>
      <uri>https://stocksharp.ru/users/153838/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Юрий Басангов &lt;a href="https://stocksharp.ru/posts/m/56616/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Добрый день, в целом да, у ConditionalOrder нельзя посчитать реализованный объем, т.к. ConditionalOrder не имеет связанных сделок.&lt;br /&gt;Здесь заложена следующая логика, сначала ConditionalOrder просто висит в системе, потом когда наступают условия для его исполнения ConditionalOrder превращается в просто Order, который и инициирует сделку.&lt;br /&gt;Вам нужно отлавливать Order и уже у него считать исполненный объем.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Еще нашел в документации следующую информацию про Conditional ордера.&lt;br /&gt;&lt;em&gt;В дальнейшем, если требуется работа с заявкой (например, отменить ее или изменить), &lt;u&gt;то необходимо использовать именно этот объект Order.&lt;/u&gt; &lt;/em&gt;&lt;br /&gt;&lt;a href="https://doc.stocksharp.ru/html/2587051d-1e94-4fb2-b5c1-d57cb5af1b6d.htm
" title="https://doc.stocksharp.ru/html/2587051d-1e94-4fb2-b5c1-d57cb5af1b6d.htm
"&gt;https://doc.stocksharp.r...2-b5c1-d57cb5af1b6d.htm
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Разве из этого не следует, что я могу подписываться на события изначальной заявки (когда она еще Conditional и просто висит в системе)?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56618/</id>
    <title type="text">Добрый день, в целом да, у ConditionalOrder нельзя посчитать реализованный объем, т.к. ConditionalOr...</title>
    <published>2021-08-23T14:26:09Z</published>
    <updated>2021-08-23T14:26:09Z</updated>
    <author>
      <name>SelfDeleted</name>
      <uri>https://stocksharp.ru/users/153838/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Юрий Басангов &lt;a href="https://stocksharp.ru/posts/m/56616/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Добрый день, в целом да, у ConditionalOrder нельзя посчитать реализованный объем, т.к. ConditionalOrder не имеет связанных сделок.&lt;br /&gt;Здесь заложена следующая логика, сначала ConditionalOrder просто висит в системе, потом когда наступают условия для его исполнения ConditionalOrder превращается в просто Order, который и инициирует сделку.&lt;br /&gt;Вам нужно отлавливать Order и уже у него считать исполненный объем.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Спасибо за объяснение. Как тогда правильно отлавливать момент, когда ConditionalOrder превращается в просто Order? Нашел событие OrderChanged, но не уверен что оно подходит. Мне важно отловить MyTrade для данного ордера, т.к. у меня на это завязана дальнейшая логика&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56616/</id>
    <title type="text">Добрый день, в целом да, у ConditionalOrder нельзя посчитать реализованный объем, т.к. ConditionalOr...</title>
    <published>2021-08-23T14:15:59Z</published>
    <updated>2021-08-23T14:15:59Z</updated>
    <author>
      <name>William B</name>
      <uri>https://stocksharp.ru/users/7/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день, в целом да, у ConditionalOrder нельзя посчитать реализованный объем, т.к. ConditionalOrder не имеет связанных сделок.&lt;br /&gt;Здесь заложена следующая логика, сначала ConditionalOrder просто висит в системе, потом когда наступают условия для его исполнения ConditionalOrder превращается в просто Order, который и инициирует сделку.&lt;br /&gt;Вам нужно отлавливать Order и уже у него считать исполненный объем.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/56608/</id>
    <title type="text">Добрый день! Запускаю S# в режиме тестирования на истории. Создаю TakeProfit/StopLoss Conditional Or...</title>
    <published>2021-08-20T11:07:36Z</published>
    <updated>2021-08-20T12:02:29Z</updated>
    <author>
      <name>SelfDeleted</name>
      <uri>https://stocksharp.ru/users/153838/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день!&lt;br /&gt;Запускаю S# в режиме тестирования на истории.&lt;br /&gt;Создаю TakeProfit/StopLoss Conditional Order  и подписываюсь на событие нового трейда. В момент исполнения правила возникает ошибка внутри S#:&lt;br /&gt;в методе TraderHelper.GetMatchedVolume вылетает ArgumentException(&amp;quot;order&amp;quot;).&lt;br /&gt;&lt;br /&gt;в коде этого метода написан такой код:&lt;br /&gt;&lt;a target="_blank" href="https://github.com/StockSharp/StockSharp/blob/master/Algo/TraderHelper.cs#L913
" title="https://github.com/StockSharp/StockSharp/blob/master/Algo/TraderHelper.cs#L913
"&gt;https://github.com/Stock...go/TraderHelper.cs#L913
&lt;/a&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;if (order.Type == OrderTypes.Conditional)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;throw new ArgumentException(nameof(order));&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Почему нельзя у ConditionalOrder посчитать реализованный объем?&lt;br /&gt;&lt;br /&gt;Судя по стектрейсу ошибки метод GetMatchedVolume вызывается при получении значения свойства AllTradesReceived в классе NewTradeOrderRule.&lt;br /&gt;Это намекает на то, что TakeProfit/StopLoss ордера не могут частично исполняться. Разве это верно?&lt;br /&gt;&lt;br /&gt;Также, можно заметить закомментированный код с проверкой на ConditionalOrder  в методе OnNewMyTrade в классе NewTradeOrderRule&lt;br /&gt;&lt;a target="_blank" href="https://github.com/StockSharp/StockSharp/blob/master/Algo/MarketRuleHelper_Order.cs#L241
" title="https://github.com/StockSharp/StockSharp/blob/master/Algo/MarketRuleHelper_Order.cs#L241
"&gt;https://github.com/Stock...uleHelper_Order.cs#L241
&lt;/a&gt;&lt;br /&gt;Может эту проверку забыли закомментировать в GetMatchedVolume?&lt;br /&gt;&lt;br /&gt;Полезная инфа:&lt;br /&gt;1. Создание TakeProfit оредра для бэкстета:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;//this == Strategy&lt;br /&gt;&lt;br /&gt;var takeProfitOrder = this.CreateOrder(takeProfitDirection, activationPrice, volume);&lt;br /&gt;&lt;br /&gt;var condition = new EmulationOrderCondition { IsTakeProfit = true };&lt;br /&gt;var takeProfitCondition = (ITakeProfitOrderCondition)condition;&lt;br /&gt;&lt;br /&gt;takeProfitCondition.IsTrailing = true;&lt;br /&gt;takeProfitCondition.ActivationPrice = activationPrice;&lt;br /&gt;takeProfitCondition.ClosePositionPrice = activationPrice;&lt;br /&gt;&lt;br /&gt;takeProfitOrder.Condition = condition;&lt;br /&gt;takeProfitOrder.Type = OrderTypes.Conditional;&lt;br /&gt;takeProfitOrder.WhenNewTrade(this).Do(t =&amp;gt; /*&amp;lt;code&amp;gt;*/).Apply(this);&lt;br /&gt;RegisterOrder(takeProfitOrder);&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;2. Стектрейс&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;System.ArgumentException: order&lt;br /&gt;   at StockSharp.Algo.TraderHelper.GetMatchedVolume(Order order)&lt;br /&gt;   at StockSharp.Algo.MarketRuleHelper.NewTradeOrderRule.get_AllTradesReceived()&lt;br /&gt;   at StockSharp.Algo.MarketRuleHelper.NewTradeOrderRule.CheckOrderState()&lt;br /&gt;   at StockSharp.Algo.MarketRuleHelper.OrderRule`1.CanFinish()&lt;br /&gt;   at StockSharp.Algo.MarketRule`2.ProcessRuleVoid()&lt;br /&gt;   at StockSharp.Algo.MarketRuleHelper.ActiveRule(IMarketRuleContainer container, IMarketRule rule, Func`1 process)&lt;br /&gt;   at StockSharp.Algo.Strategies.Strategy.StockSharp.Algo.IMarketRuleContainer.ActivateRule(IMarketRule rule, Func`1 process)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Может я что-то не так делаю? Подскажите как исправить эту ошибку?&lt;br /&gt;&lt;br /&gt;Upd:&lt;br /&gt;при использовании события order.WhenAllTrades таже самая ошибка</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>