﻿<?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">[Bug] запаздывание обновления Strategy.MyTrades</title>
  <id>~/topic/1789/bug-zapazdyvanie-obnovleniya-strategy_mytrades/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-14T16:46:07Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1789" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/14184/</id>
    <title type="text">Такая же - это какая? Если про несколько раз изменяется после Done - да, такое может быть. Пример дл...</title>
    <published>2011-12-02T08:07:42Z</published>
    <updated>2011-12-02T08:07:42Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Такая же - это какая?
Если про несколько раз изменяется после Done - да, такое может быть.&lt;/p&gt;
&lt;p&gt;Пример для плазы2:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;вам приходит событие об исполнении ордера по ответу на транзакцию.&lt;/li&gt;
&lt;li&gt;Далее - вы получаете событие об изменении вашего ордера по ордер логу.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Как избежать - локально в стратегии.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/14183/</id>
    <title type="text">У нас такая же проблема - найдено ли решение? </title>
    <published>2011-12-02T07:59:39Z</published>
    <updated>2011-12-02T07:59:39Z</updated>
    <author>
      <name>MSH</name>
      <uri>https://stocksharp.ru/users/465/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;У нас такая же проблема - найдено ли решение?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10141/</id>
    <title type="text">Скажите, может ли оредер изменятся, после того, как он был исполнен? У меня поулчается что метод выз...</title>
    <published>2011-08-03T08:57:50Z</published>
    <updated>2011-08-03T09:09:22Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Скажите, может ли оредер изменятся, после того, как он был исполнен?
У меня поулчается что метод вызывается для одного исполненного ордера несколько раз.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
void OnOrderChanged(Order obj)
		{
			if(obj.IsMatched()) {
				_listOfIdOrders.Add(obj.Id);
			}
		}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Как этого избежать?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10139/</id>
    <title type="text">vader: Какой именно ордер передается в void OnOrderChanged(Order obj) ? тот у которого что-то измени...</title>
    <published>2011-08-03T08:15:28Z</published>
    <updated>2011-08-03T08:15:28Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(10138)" rel="nofollow" target="_blank"&gt;vader&lt;/a&gt;:&lt;/strong&gt;
Какой именно ордер передается в void OnOrderChanged(Order obj)  ?
тот у которого что-то изменилось&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10138/</id>
    <title type="text">Какой именно ордер передается в void OnOrderChanged(Order obj) ? </title>
    <published>2011-08-03T07:47:26Z</published>
    <updated>2011-08-03T07:47:26Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Какой именно ордер передается в void OnOrderChanged(Order obj)  ?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10116/</id>
    <title type="text">в событие NewMyTrades должны передаваться трейды - у вас же в RegisterNext ничего не передается. Не ...</title>
    <published>2011-08-02T14:48:18Z</published>
    <updated>2011-08-02T14:48:18Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;ol&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;в событие NewMyTrades должны передаваться трейды - у вас же в RegisterNext ничего не передается.
Не знаю как эту конструкцию описать через .When.Do
я делаю по старинке:
в конструкторе стратегии: this.NewMyTrades += new Action&amp;lt;IEnumerable&lt;MyTrade&gt;&amp;gt;(OnNewMyTrades);&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;	void OnNewMyTrades(IEnumerable&amp;lt;MyTrade&amp;gt; myTrades)
	{
		foreach (MyTrade myTrade in myTrades)
		{
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;2.
вам судя по вашему примеру нужны не сами трейды, а изменение состояния ордера - а тогда вы можете ловить именно это событие
this.OrderChanged += new Action&lt;Order&gt;(OnOrderChanged);
void OnOrderChanged(Order obj)
{
if(obj.IsMatched()) { ....&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10105/</id>
    <title type="text">Обнаружил что, MyTrades хоть и является синхоронизированной, но обновляется с опозданием. у меня стр...</title>
    <published>2011-08-02T08:59:26Z</published>
    <updated>2011-08-02T08:59:26Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Обнаружил что, MyTrades хоть и является синхоронизированной, но обновляется с опозданием.
у меня стратегия содержит такое правило&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
this
				.When(StrategyRuleConditionHelper.StrategyNewMyTrades(this) )
				.Do(RegisterNext);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;в методе происходит проверка того, что заявка исполнена полностью(т.к. большие заявки исполняются обычно за несколько сделок)&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
private void RegisterNext()
		{
			if(TraderHelper.IsMatched(this.MyTrades[this.MyTrades.Count-1].Order)){
				_curLotBuySellNow += this.MyTrades[this.MyTrades.Count-1].Order.Volume;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;часто происходит так, что он проверяет одну и туже сделку, т.е. остальные ещё не попали в список.
Как с этим быть?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>