﻿<?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/1794/bug-v-strategy_mytrades-ne-popadaet-sdelka/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-08T11:34:45Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1794" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/10186/</id>
    <title type="text">К сожадению эта проблема в 3.2.6 продолжается. часто бывает так ,что после первой сделки список сдел...</title>
    <published>2011-08-05T09:32:55Z</published>
    <updated>2016-08-16T00:00:47Z</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;vader &lt;a href="https://stocksharp.ru/posts/m/10182/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;К сожадению эта проблема в 3.2.6 продолжается.&lt;br /&gt;часто бывает так ,что после первой сделки список сделок остается совершенно пустым.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Если &lt;a href="http://stocksharp.com/posts/m/10168/" title="http://stocksharp.com/posts/m/10168/"&gt;эта ошибка&lt;/a&gt;, то проблема скорее всего не в S# и новые версии вряд ли исправят.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10350/</id>
    <title type="text">vader, 1.поставьте брекпоинт перед выводом мессаджбокса и поизучайте что у вас в списке ордеров и чт...</title>
    <published>2011-08-16T03:23:17Z</published>
    <updated>2011-08-16T03:23:17Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">vader,&lt;br /&gt;1.поставьте брекпоинт перед выводом мессаджбокса и поизучайте что у вас в списке ордеров и что в списке трейдов&lt;br /&gt;2.сделайте вывод логов а не мессадж-бокса - если они у вас выледают один-за-другим то сомневаюсь что вы успеваете изучить отладочную информацию из них - а тогда какой в них толк?&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10202/</id>
    <title type="text">Логика у меня очень простая, и я невижу в ней ошибок, тем более ,что она в болшем числе случаев рабо...</title>
    <published>2011-08-05T14:32:42Z</published>
    <updated>2011-08-05T14:32:42Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Логика у меня очень простая, и я невижу в ней ошибок, тем более ,что она в болшем числе случаев работает правильно.&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;

protected override void OnStarting()
		{
			
			this.NewMyTrades += mytrades =&amp;gt; {
				MessageBox.Show(&amp;quot;Event&amp;quot;);
			};
			
			_order = new Order
			{
				Portfolio = this.Portfolio,
				Volume =  _partOfLot,
				Price = _priceOfOrder,
				Security = this.Security,
				Direction = this._direction,
				Trader = this.Trader,
			};
			this.RegisterOrder(_order);
			
			this
				.When(StrategyRuleConditionHelper.Matched(_order))
				.Do(RegisterNext)
				.Once();
			
			base.OnStarting();
		}
		
		private void RegisterNext()
		{
			i++;
			
			WaitMyTradesComplement();
			
			_order = new Order
			{
				Portfolio = this.Portfolio,
				Volume =  vol,
				Price = _newPrice,
				Security = this.Security,
				Direction =  this._direction,
				Trader = this.Trader,
			};

			this.RegisterOrder(_order);
			this
				.When(StrategyRuleConditionHelper.Matched(_order))
				.Do(RegisterNext)
				.Once();
		}
		
		private void WaitMyTradesComplement()
		{
			while(true){
				if(IsLastTradeByOrderInList()){
					//if(_nMyTrades != this.MyTrades.Count){
					_nMyTrades = this.MyTrades.Count();
					break;
				}
				Thread.Sleep(1000);
			}
		}
		
		private bool IsLastTradeByOrderInList()
		{
			if(MyTrades.Count() &amp;gt; 0
			   &amp;amp;&amp;amp; MyTrades.Last().Order.Id == _order.Id
			   &amp;amp;&amp;amp; MyTrades.Last().Order.IsMatched()){
				return true;
			}
			string ids = &amp;quot;Список всех моих сделок по &amp;quot; +  Portfolio.ToString()
				+ &amp;quot; &amp;quot; + Trader.ToString() + &amp;quot; &amp;quot; + this.Security + &amp;quot; &amp;quot;;
			foreach(MyTrade p in MyTrades){
				ids += p.Trade.Id.ToString() + &amp;quot; &amp;quot;;
			}
			MessageBox.Show(ids);
			return false;
		}
&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/10199/</id>
    <title type="text">Взял пример SampleSMA, заменил стратегию СМА на свою. Ошибка осталась. Время от времени сделки не по...</title>
    <published>2011-08-05T13:11:43Z</published>
    <updated>2011-08-05T13:11:43Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Взял пример SampleSMA, заменил стратегию СМА на свою. Ошибка осталась. Время от времени сделки не попадают в список.&lt;br /&gt;что посоветуете проверить?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10190/</id>
    <title type="text">К сожадению эта проблема в 3.2.6 продолжается. часто бывает так ,что после первой сделки список сдел...</title>
    <published>2011-08-05T10:14:55Z</published>
    <updated>2011-08-05T10:14:55Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</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/10184/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;vader &lt;a href="https://stocksharp.ru/posts/m/10182/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;К сожадению эта проблема в 3.2.6 продолжается.&lt;br /&gt;часто бывает так ,что после первой сделки список сделок остается совершенно пустым.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Какой коннектор?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;quik</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10184/</id>
    <title type="text">К сожадению эта проблема в 3.2.6 продолжается. часто бывает так ,что после первой сделки список сдел...</title>
    <published>2011-08-05T09:20:44Z</published>
    <updated>2011-08-05T09:20:44Z</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;vader &lt;a href="https://stocksharp.ru/posts/m/10182/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;К сожадению эта проблема в 3.2.6 продолжается.&lt;br /&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/10182/</id>
    <title type="text">К сожадению эта проблема в 3.2.6 продолжается. часто бывает так ,что после первой сделки список сдел...</title>
    <published>2011-08-05T07:28:18Z</published>
    <updated>2011-08-05T07:28:18Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">К сожадению эта проблема в 3.2.6 продолжается.&lt;br /&gt;часто бывает так ,что после первой сделки список сделок остается совершенно пустым.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10169/</id>
    <title type="text">Я посмотрю в отладчике ,но боюсь что проблема так не разрешится. До этого у меня был код ,который сл...</title>
    <published>2011-08-04T13:55:15Z</published>
    <updated>2011-08-04T13:55:15Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Я посмотрю в отладчике ,но боюсь что проблема так не разрешится. До этого у меня был код ,который следил за размером списка и проблемы были такие же.&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 WaitMyTradesComplement()
		{
			//MessageBox.Show(_nMyTrades.ToString() + &amp;quot; &amp;quot; + this.MyTrades.Count.ToString());
			while(true){
					if(_nMyTrades != this.MyTrades.Count){
					_nMyTrades = this.MyTrades.Count;
					break;
				}
				Thread.Sleep(1000);
			}
		}

_nMyTrades = 0;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10167/</id>
    <title type="text">поставьте брекпоинт и посмотрите какое условие не выполняется. или у вас _order уже сменился или орд...</title>
    <published>2011-08-04T13:31:10Z</published>
    <updated>2011-08-04T13:31:10Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">поставьте брекпоинт и посмотрите какое условие не выполняется.&lt;br /&gt;или у вас _order уже сменился или ордер полностью не выполнился или ваш трейд прилетел не относящийся к этому ордеру или еще чтонибудь :)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10165/</id>
    <title type="text">Если он выводит мессаджбоксы один-два раза на ордер ,то алгоритм отрабатывается нормально, а в 10% с...</title>
    <published>2011-08-04T13:18:39Z</published>
    <updated>2011-08-04T13:18:39Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Если он выводит мессаджбоксы один-два раза на ордер ,то алгоритм отрабатывается нормально, &lt;br /&gt;а в 10% случаев у него бесконечный поток мессаджбоксов и алгоритм стопорится.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10164/</id>
    <title type="text">у вас ведь не бесконечно он мессаджбоксы выводит - а один-два раза на ордер? если так, то я думаю эт...</title>
    <published>2011-08-04T12:40:17Z</published>
    <updated>2011-08-04T12:40:17Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">у вас ведь не бесконечно он мессаджбоксы выводит - а один-два раза на ордер?&lt;br /&gt;если так, то я думаю это значит что в 10% случаев сначала происходит событие StrategyRuleConditionHelper.Matched(_order) и только потом через некоторое время прилетают трейды.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/10158/</id>
    <title type="text">обнаружил такую вещь. Примерно в 10% случаев в список Strategy.MyTrades не попадают сделки. Полность...</title>
    <published>2011-08-04T09:20:45Z</published>
    <updated>2011-08-04T09:30:10Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">обнаружил такую вещь.&lt;br /&gt;Примерно в 10% случаев в список Strategy.MyTrades не попадают сделки.&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 WaitMyTradesComplement()
		{
			while(true){
				if(IsLastTradeByOrderInList()){
					break;
				}
				Thread.Sleep(1000);
			}
		}
private bool IsLastTradeByOrderInList()
		{
			if(MyTrades.Count &amp;gt; 0
			   &amp;amp;&amp;amp; MyTrades[MyTrades.Count-1].Order.Id == _order.Id
			   &amp;amp;&amp;amp; MyTrades[MyTrades.Count-1].Order.IsMatched()){
				//MessageBox.Show(&amp;quot;true&amp;quot;);
				return true;
			}
			string ids = &amp;quot;&amp;quot;;
			foreach(MyTrade p in MyTrades){
				ids += p.Trade.Id.ToString() + &amp;quot; &amp;quot;;
			}
			int a = 0;
			a++;
			MessageBox.Show(ids);
			return false;
		}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Этот метод перезапускается до тех пор ,пока не вернёт true. &lt;br /&gt;Время от времени он выдает что список пуст, это происходит после первой сделки&lt;br /&gt;т.е. правило When(StrategyRuleConditionHelper.Matched(_order)) сработало, а список не пополнился.&lt;br /&gt;Метод вызывается с задержкой в 1 секунду , и в случае бажного поведения из цикла не выходит и выдает пустые MessageBox.&lt;br /&gt;ProcessDataError ничего не выдает.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>