﻿<?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">PositionManager.Position &amp; StrategyPositionManager.OnOrderChanged</title>
  <id>~/topic/1507/positionmanager_position--strategypositionmanager_onorderchanged/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-07T06:18:44Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1507" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/7382/</id>
    <title type="text">Ввиду с проблемой неправильного подсчета PositionManager.Position описанной здесь решил написать про...</title>
    <published>2011-04-10T15:17:49Z</published>
    <updated>2016-08-15T23:57:40Z</updated>
    <author>
      <name>bleed</name>
      <uri>https://stocksharp.ru/users/28060/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Ввиду с проблемой неправильного подсчета PositionManager.Position описанной &lt;a href="http://stocksharp.com/forum/1469/-3-0-19--Niepravil-no-schitaietsia-Position-v-PositionManager/" title="http://stocksharp.com/forum/1469/-3-0-19--Niepravil-no-schitaietsia-Position-v-PositionManager/"&gt;здесь&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;решил написать простую рабочую реализацию PositionManager для проведения тестов, по примеру который предложил Михаил по ссылке выше&lt;br /&gt;&lt;br /&gt;Итак простая реализация, как мне кажется правильного алгоритма &lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;    class NewPositionManager : StrategyPositionManager&lt;br /&gt;    {&lt;br /&gt;        public NewPositionManager(Strategy strategy, bool byOrders) : base(strategy, byOrders) {}&lt;br /&gt;&lt;br /&gt;        protected override void OnOrderChanged(Order order)&lt;br /&gt;        {&lt;br /&gt;            if (TraderHelper.IsFilledEmpty(order) || TraderHelper.IsCanceled(order))&lt;br /&gt;                return;&lt;br /&gt;            else if (TraderHelper.IsFilledPartially(order))&lt;br /&gt;            {&lt;br /&gt;                //TODO&lt;br /&gt;            }&lt;br /&gt;            else if(TraderHelper.IsMatched(order))&lt;br /&gt;            {&lt;br /&gt;                base.Position += (order.Direction == OrderDirections.Buy) ? order.Volume : -1*(order.Volume);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;при тестировании на обьеме в &lt;b&gt;1&lt;/b&gt; контракт выявила также не правильный подсчет позиции, а именно позиция ровно в &lt;b&gt;2 раза&lt;/b&gt; отлична от верной&lt;br /&gt;&lt;br /&gt;при отлатке через дебагер обнаружил что метод OnOrderChanged вызывается два раза для одной и тойже заявки, отсюда и неправильный подсчет..&lt;br /&gt;&lt;br /&gt;Ошибка? или чем вызван второй вызов OnOrderChanged?&lt;br /&gt;&lt;br /&gt;я просто в тупик встал, без правильного PositionManager.Position бесмысленно и стратегию писать, и вообще работать с библиотекой</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7389/</id>
    <title type="text">Ошибка? или чем вызван второй вызов OnOrderChanged? На это вообще закладываться нельзя. ТС шлет сооб...</title>
    <published>2011-04-11T11:32:33Z</published>
    <updated>2011-04-11T11:32:33Z</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;bleed &lt;a href="https://stocksharp.ru/posts/m/7382/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Ошибка? или чем вызван второй вызов OnOrderChanged?&lt;/div&gt;&lt;/div&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>
</feed>