﻿<?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">Ошибка Strategy.PositionChanged</title>
  <id>~/topic/8122/oshibka-strategy_positionchanged/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-01T05:09:27Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=8122" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/39391/</id>
    <title type="text">В новой версии Strategy.PositionChanged вызывается постоянно при изменении ордера, даже если по нему...</title>
    <published>2017-03-01T15:57:30Z</published>
    <updated>2017-03-01T15:57:30Z</updated>
    <author>
      <name>RomSunZ</name>
      <uri>https://stocksharp.com/users/6384/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">В новой версии Strategy.PositionChanged вызывается постоянно при изменении ордера, даже если по нему не было сделок. Одна из причина - в случае ByOrders PositionManager.ProcessMessage возвращается decimal, которое потом сравнивается с null, что всегда не верно. Плюс странная конструкция там же &lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;isNew = _positions.TryGetValue(key, out prev). &lt;/div&gt;&lt;/div&gt;, что вроде означает, если позиция существует, то она новая, если ее нет, то она старая, что не есть правильно, плюс конструкция&lt;br /&gt; &lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;if (isNew)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;NewPosition?.Invoke(key, Position);&lt;br /&gt;else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;PositionChanged?.Invoke(key, Position);&lt;br /&gt;&lt;br /&gt;return position;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;таким образом вызывая сообщение или новая позиция или измененная при любом телодвижении заявки, даже если она частично не исполнена. Возможно есть еще где-то что-то, дальше пока не смотрел.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>