﻿<?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">Как добится корректного отображения Strategy.Position?</title>
  <id>~/topic/3359/kak-dobitsya-korrektnogo-otobrazheniya-strategy_position/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-08T02:13:18Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=3359" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/23870/</id>
    <title type="text">Если входите одним ордером, сделайте его членом класса _order. При входе в метод можно проверять его...</title>
    <published>2013-02-07T21:59:51Z</published>
    <updated>2013-02-07T21:59:51Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Sergey Masyura &lt;a href="https://stocksharp.ru/posts/m/23869/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Если входите одним ордером, сделайте его членом класса _order. При входе в метод можно проверять его на null и остаток и только после этого перетирать.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Лучше вообще состояния не использовать. Или минимизировать эти места. Event based подход предполагает state less.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23869/</id>
    <title type="text">Не совсем понимаю как дождаться корректного отображения Strategy.Position, простая проверка не работ...</title>
    <published>2013-02-07T20:31:51Z</published>
    <updated>2013-02-07T20:31:51Z</updated>
    <author>
      <name>Sergey Masyura</name>
      <uri>https://stocksharp.ru/users/701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;yammm &lt;a href="https://stocksharp.ru/posts/m/23867/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Не совсем понимаю как дождаться корректного отображения Strategy.Position, простая проверка не работает, иногда проскакивают лишние ордера.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
 private void ProccesDepth(bool isDirectionBuy)
        {
            lock (_sync)
            {
                var order = new Order
                                {
                                    Direction = isDirectionBuy ? OrderDirections.Buy : OrderDirections.Sell,
                                    Price = isDirectionBuy ? _depth.BestBid.Price : _depth.BestAsk.Price,
                                    Type = OrderTypes.Limit,
                                    Volume = VolumeValue,
                                    Comment = &amp;quot;Entry&amp;quot;,
                                };

                order
                    .WhenActivated()
                    .Do(() =&amp;gt;
                            {
                                if(!checkCondition)
                                {
                                    CancelOrder(order);
                                }
                            })
                    .Once()
                    .Apply(this);
                

                order
                    .WhenNewTrades()
                    .Do(SetProtectedOrders)
                    .Apply(this);

                // Узкое место
                if (checkCondition &amp;amp;&amp;amp; Position == 0)
                    RegisterOrder(order);
            }
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Если ордер зарегистрирован, но еще не исолнился - очевидно позиция ноль. Соответсвенно, если зайти в этот метод с выставленным, но еще не исполненным ордером - выставится второй.&lt;br /&gt;&lt;br /&gt;Если входите одним ордером, сделайте его членом класса _order. При входе в метод можно проверять его на null и остаток и только после этого перетирать.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23868/</id>
    <title type="text"> // Узкое место if (checkCondition &amp;amp;&amp;amp; !_inPosition) { RegisterOrder(order); _inPosition = true; } Уд...</title>
    <published>2013-02-07T19:41:02Z</published>
    <updated>2013-02-07T19:42:26Z</updated>
    <author>
      <name>yammm</name>
      <uri>https://stocksharp.ru/users/6162/</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;
 // Узкое место
                if (checkCondition &amp;amp;&amp;amp; !_inPosition)
                {
                    RegisterOrder(order);
                    _inPosition = true;
                }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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/23867/</id>
    <title type="text">Не совсем понимаю как дождаться корректного отображения Strategy.Position, простая проверка не работ...</title>
    <published>2013-02-07T16:45:21Z</published>
    <updated>2013-02-07T16:49:47Z</updated>
    <author>
      <name>yammm</name>
      <uri>https://stocksharp.ru/users/6162/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Не совсем понимаю как дождаться корректного отображения Strategy.Position, простая проверка не работает, иногда проскакивают лишние ордера.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
 private void ProccesDepth(bool isDirectionBuy)
        {
            lock (_sync)
            {
                var order = new Order
                                {
                                    Direction = isDirectionBuy ? OrderDirections.Buy : OrderDirections.Sell,
                                    Price = isDirectionBuy ? _depth.BestBid.Price : _depth.BestAsk.Price,
                                    Type = OrderTypes.Limit,
                                    Volume = VolumeValue,
                                    Comment = &amp;quot;Entry&amp;quot;,
                                };

                order
                    .WhenActivated()
                    .Do(() =&amp;gt;
                            {
                                if(!checkCondition)
                                {
                                    CancelOrder(order);
                                }
                            })
                    .Once()
                    .Apply(this);
                

                order
                    .WhenNewTrades()
                    .Do(SetProtectedOrders)
                    .Apply(this);

                // Узкое место
                if (checkCondition &amp;amp;&amp;amp; Position == 0)
                    RegisterOrder(order);
            }
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>