﻿<?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">Жесть с NewMyTrades!!!! (не вызвалось событие NewMyTrades)</title>
  <id>~/topic/1764/zhest-s-newmytrades!!!!-(ne-vyzvalos-sobytie-newmytrades)/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-10T08:27:27Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1764" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/10239/</id>
    <title type="text">8 августа снова повторилась эта бага во время реальных торгов - судя по логам выставленный ордер был...</title>
    <published>2011-08-10T07:43:29Z</published>
    <updated>2011-08-10T07:43:29Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.com/users/510/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;8 августа снова повторилась эта бага во время реальных торгов - судя по логам выставленный ордер был полностью исполнен одним трейдом, IsMatched() вернул true
однако событие NewMyTrade не было вызвано!
ProcessDataError не вызывался.
Я считаю что это крайне серьезная бага для пользователей StockSharp - если алгоритм завязан на учет своих трейдов то по ее причине происходят серьезные убытки&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9855/</id>
    <title type="text">Alexander: Как создаётся RealTimeEmulationTrader? Что выводит ProcessDataError, вопрос открыт до сих...</title>
    <published>2011-07-25T08:14:00Z</published>
    <updated>2011-07-25T08:14:00Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.com/users/510/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(9852)" rel="nofollow" target="_blank"&gt;Alexander&lt;/a&gt;:&lt;/strong&gt;
Как создаётся RealTimeEmulationTrader?&lt;/p&gt;
&lt;p&gt;Что выводит ProcessDataError, вопрос открыт до сих пор
RealTimeEmulationTrader создается так:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;_trader = new RealTimeEmulationTrader&amp;lt;QuikTrader&amp;gt;(new QuikTrader());
_trader.Connected += () =&amp;gt;
{
...
   _trader.StartExport();
   _trader.ProcessDataError += error =&amp;gt; this.GuiAsync(() =&amp;gt;
   {
 	MessageBox.Show(this, error.ToString(), &amp;quot;Ошибка&amp;quot;);
   });
...
}
_trader.Connect();

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ProcessDataError не прилетает.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9852/</id>
    <title type="text">Как создаётся RealTimeEmulationTrader? Что выводит ProcessDataError, вопрос открыт до сих пор </title>
    <published>2011-07-25T07:42:36Z</published>
    <updated>2011-07-25T07:42:36Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Как создаётся RealTimeEmulationTrader?&lt;/p&gt;
&lt;p&gt;Что выводит ProcessDataError, вопрос открыт до сих пор&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9849/</id>
    <title type="text">Alexander: President: при тестировании на рийл-тайме (RealTimeEmulationTrader) this.Trader.GetPositi...</title>
    <published>2011-07-25T07:30:30Z</published>
    <updated>2011-07-25T07:30:30Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.com/users/510/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(9846)" rel="nofollow" target="_blank"&gt;Alexander&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(9844)" rel="nofollow" target="_blank"&gt;President&lt;/a&gt;:&lt;/strong&gt;
при тестировании на рийл-тайме (RealTimeEmulationTrader)
this.Trader.GetPosition(Portfolio, Security)
также всегда возвращает null
хотя ордера уже исполнились и трейды прошли&lt;/p&gt;
&lt;p&gt;т.о. вопрос о том как железно узнать свою позицию остается открытым.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Что передаётся в конструктор, какой трейдер?
Стабильно ли вызываются события NewOrders \ OrdersChanged \ OrdersFailed \ NewStopOrders \ StopOrdersChanged \ StopOrdersFailed&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;корневая стратегия это  наследник от TimeFrameStrategy и у нее конструктор такой:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;		public MyStrategy(ITrader trader, TimeSpan timeFrame)
			: base(timeFrame)
		{
			this.Trader = trader;
			this.TimeFrame = timeFrame;
....
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;плюс в ней есть несколько вложенных подстратегий - они наследуются от Strategy.
и им в конструкторе делается: this.Trader = trader;&lt;/p&gt;
&lt;p&gt;trader это RealTimeEmulationTrader (а в выходные пробовал с EmulationTrader на случайных числах)&lt;/p&gt;
&lt;p&gt;по событиям:
NewOrder приходит на register ордера и reregister
OrderChanged приходит всегда группами по три штуки на отмену ордера и на его исполнение и на reregister
других событий я не видел.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9846/</id>
    <title type="text">President: при тестировании на рийл-тайме (RealTimeEmulationTrader) this.Trader.GetPosition(Portfoli...</title>
    <published>2011-07-25T06:51:31Z</published>
    <updated>2011-07-25T06:51:59Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(9844)" rel="nofollow" target="_blank"&gt;President&lt;/a&gt;:&lt;/strong&gt;
при тестировании на рийл-тайме (RealTimeEmulationTrader)
this.Trader.GetPosition(Portfolio, Security)
также всегда возвращает null
хотя ордера уже исполнились и трейды прошли&lt;/p&gt;
&lt;p&gt;т.о. вопрос о том как железно узнать свою позицию остается открытым.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Что передаётся в конструктор, какой трейдер?
Стабильно ли вызываются события NewOrders \ OrdersChanged \ OrdersFailed \ NewStopOrders \ StopOrdersChanged \ StopOrdersFailed&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9845/</id>
    <title type="text">Вопрос что выводит ProcessDataError ответа пока также не нашёл :) </title>
    <published>2011-07-25T06:47:55Z</published>
    <updated>2011-07-25T06:47:55Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Вопрос что выводит ProcessDataError ответа пока также не нашёл :)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9844/</id>
    <title type="text">при тестировании на рийл-тайме (RealTimeEmulationTrader) this.Trader.GetPosition(Portfolio, Security...</title>
    <published>2011-07-25T06:45:09Z</published>
    <updated>2011-07-25T06:45:09Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.com/users/510/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;при тестировании на рийл-тайме (RealTimeEmulationTrader)
this.Trader.GetPosition(Portfolio, Security)
также всегда возвращает null
хотя ордера уже исполнились и трейды прошли&lt;/p&gt;
&lt;p&gt;т.о. вопрос о том как железно узнать свою позицию остается открытым.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9835/</id>
    <title type="text">хм. а у меня в EmulationTrader при тестировании на случайных данных this.Trader.GetPosition(Portfoli...</title>
    <published>2011-07-23T08:36:45Z</published>
    <updated>2011-07-23T08:36:45Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.com/users/510/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;хм.
а у меня в EmulationTrader при тестировании на случайных данных
this.Trader.GetPosition(Portfolio, Security)
всегда возвращает null.&lt;/p&gt;
&lt;p&gt;а хотелось бы чтобы код работал одинаково и для тестирования и для реала.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9834/</id>
    <title type="text">Попробовал метод Александра на 3.2.5. - после 20 сделок расхождений нет, возьму на вооружение. Огран...</title>
    <published>2011-07-23T07:41:07Z</published>
    <updated>2011-07-23T07:41:07Z</updated>
    <author>
      <name>hobo</name>
      <uri>https://stocksharp.com/users/27889/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Попробовал метод Александра на 3.2.5. - после 20 сделок расхождений нет, возьму на вооружение.
Ограничение: до запуска стратегии позиция должна быть 0, если нет - до первой сделки/заявки метод возвратит 0, что неверно.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9827/</id>
    <title type="text">Я веду подсчет открытой позиции самостоятельно - ловлю NewMyTrades, и если бумага моя (==this.Securi...</title>
    <published>2011-07-22T18:10:29Z</published>
    <updated>2011-07-23T07:16:30Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.com/users/510/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я веду подсчет открытой позиции самостоятельно - ловлю NewMyTrades,
и если бумага моя (==this.Security) то увеличиваю/уменьшаю (в зависимости от направления ордера по которому пришел трейд) счетчик int OpenedPosition в стратегии.&lt;/p&gt;
&lt;p&gt;а сегодня столкнулся с серьезной проблемой&lt;/p&gt;
&lt;p&gt;была открытая лонг позиция в 2 бумаги. это подтверждает и мой счетчик и PositionManager.Position:
22.07.2011 13:55:39.415 PositionManager.Position: 2; OpenedPosition:2&lt;/p&gt;
&lt;p&gt;роботом был послан ордер на биржу на продажу 3х лотов:
22.07.2011 13:55:39.810 RegisterOrder: Ok! sec=LKU1 dir=SELL vol=3 price=18769,00&lt;/p&gt;
&lt;p&gt;пока ордер висел позиция не менялась
22.07.2011 13:55:49.408 PnLManager.PnL: 2; OpenedPosition:2;&lt;/p&gt;
&lt;p&gt;но потом вдруг - БЕЗ ВЫЗОВА NewMyTrade свойство PositionManager.Position изменилось!
22.07.2011 13:55:50.490 PnLManager.PnL: -1; OpenedPosition:2;
и в логах Квика видно что как раз в это время ордер был полностью исполнен!
[cursing]&lt;/p&gt;
&lt;p&gt;т.к. робот не знал о выполнении его ордера - трейды же не пришли, то продолжил торговать.
и через несколько секунд ситуация еще раз повторилось, а потом еще раз и до тех пор пока все средства со счета в ГО не ушли.
спасло только то что счет небольшой и цена далеко не ушла - вручную потом откупил совсем с небольшими потерями.[bored]&lt;/p&gt;
&lt;p&gt;как так получилось что NewMyTrade не был вызван???
и как можно перестраховаться от таких косяков в будущем???
как ЖЕЛЕЗНО узнать свою позицию???
[confused]&lt;/p&gt;
&lt;p&gt;PS&amp;gt; PositionManager.Position который показал правильную инфу тут постоянно неправильно показывает в других ситуациях&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9832/</id>
    <title type="text">Указывайте в сообщениях о багах версию S#. версия S# - 3.2.5 Что выводил ProcessDataError? не знаю. ...</title>
    <published>2011-07-23T07:16:07Z</published>
    <updated>2011-07-23T07:16:07Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.com/users/510/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Указывайте в сообщениях о багах версию S#.
версия S# - 3.2.5&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Что выводил ProcessDataError?
не знаю. я его не выводил. теперь буду выводить.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;а за GetCurrentPosition() огромное спасибо!&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9829/</id>
    <title type="text">Говорил уже много раз - StrategyPositionManager по умолчанию, если не перегружали, считается по орде...</title>
    <published>2011-07-22T23:23:16Z</published>
    <updated>2011-07-22T23:23:39Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Говорил уже много раз - StrategyPositionManager по умолчанию, если не перегружали, считается по ордерам.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Указывайте в сообщениях о багах версию S#.&lt;/li&gt;
&lt;li&gt;Что выводил ProcessDataError?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;И опять же, повторюсь, я узнаю позицию так - под каждую систему завожу отдельный субсчёт. Позицию получаю из таблицы в квике:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;		protected int GetCurrentPosition()
		{
			return Trader.GetPosition(Portfolio, Security) != null
					   ? (int)Trader.GetPosition(Portfolio, Security).CurrentValue
					   : 0;
		}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ни разу не было ни одного косяка.&lt;/p&gt;
&lt;p&gt;P.S. Просьба названия темам давать более осмысленные :)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>