﻿<?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">Жесть с 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-04-05T19:24:33Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1764" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/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.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">8 августа снова повторилась эта бага во время реальных торгов - судя по логам выставленный ордер был полностью исполнен одним трейдом, IsMatched() вернул true&lt;br /&gt;однако событие NewMyTrade не было вызвано!&lt;br /&gt;ProcessDataError не вызывался.&lt;br /&gt;Я считаю что это крайне серьезная бага для пользователей StockSharp - если алгоритм завязан на учет своих трейдов то по ее причине происходят серьезные убытки&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/9855/</id>
    <title type="text">Как создаётся RealTimeEmulationTrader? Что выводит ProcessDataError, вопрос открыт до сих пор RealTi...</title>
    <published>2011-07-25T08:14:00Z</published>
    <updated>2011-07-25T08:14:00Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander &lt;a href="https://stocksharp.ru/posts/m/9852/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Как создаётся RealTimeEmulationTrader?&lt;br /&gt;&lt;br /&gt;Что выводит ProcessDataError, вопрос открыт до сих пор&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;RealTimeEmulationTrader создается так:&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;
_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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ProcessDataError не прилетает.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Как создаётся RealTimeEmulationTrader?&lt;br /&gt;&lt;br /&gt;Что выводит ProcessDataError, вопрос открыт до сих пор</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/9849/</id>
    <title type="text">при тестировании на рийл-тайме (RealTimeEmulationTrader) this.Trader.GetPosition(Portfolio, Security...</title>
    <published>2011-07-25T07:30:30Z</published>
    <updated>2011-07-25T07:30:30Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander &lt;a href="https://stocksharp.ru/posts/m/9846/" 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;President &lt;a href="https://stocksharp.ru/posts/m/9844/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;при тестировании на рийл-тайме (RealTimeEmulationTrader)&lt;br /&gt;this.Trader.GetPosition(Portfolio, Security)&lt;br /&gt;также всегда возвращает null&lt;br /&gt;хотя ордера уже исполнились и трейды прошли&lt;br /&gt;&lt;br /&gt;т.о. вопрос о том как железно узнать свою позицию остается открытым.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Что передаётся в конструктор, какой трейдер?&lt;br /&gt;Стабильно ли вызываются события NewOrders \ OrdersChanged \ OrdersFailed \ NewStopOrders \ StopOrdersChanged \ StopOrdersFailed&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;корневая стратегия это  наследник от TimeFrameStrategy и у нее конструктор такой:&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;
		public MyStrategy(ITrader trader, TimeSpan timeFrame)
			: base(timeFrame)
		{
			this.Trader = trader;
			this.TimeFrame = timeFrame;
....&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;плюс в ней есть несколько вложенных подстратегий - они наследуются от Strategy.&lt;br /&gt;и им в конструкторе делается: this.Trader = trader;&lt;br /&gt;&lt;br /&gt;trader это RealTimeEmulationTrader (а в выходные пробовал с EmulationTrader на случайных числах)&lt;br /&gt;&lt;br /&gt;по событиям:&lt;br /&gt;NewOrder приходит на register ордера и reregister&lt;br /&gt;OrderChanged приходит всегда группами по три штуки на отмену ордера и на его исполнение и на reregister&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/9846/</id>
    <title type="text">при тестировании на рийл-тайме (RealTimeEmulationTrader) this.Trader.GetPosition(Portfolio, Security...</title>
    <published>2011-07-25T06:51:31Z</published>
    <updated>2011-07-25T06:51:59Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;President &lt;a href="https://stocksharp.ru/posts/m/9844/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;при тестировании на рийл-тайме (RealTimeEmulationTrader)&lt;br /&gt;this.Trader.GetPosition(Portfolio, Security)&lt;br /&gt;также всегда возвращает null&lt;br /&gt;хотя ордера уже исполнились и трейды прошли&lt;br /&gt;&lt;br /&gt;т.о. вопрос о том как железно узнать свою позицию остается открытым.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Что передаётся в конструктор, какой трейдер?&lt;br /&gt;Стабильно ли вызываются события NewOrders \ OrdersChanged \ OrdersFailed \ NewStopOrders \ StopOrdersChanged \ StopOrdersFailed</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Вопрос что выводит ProcessDataError ответа пока также не нашёл :)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">при тестировании на рийл-тайме (RealTimeEmulationTrader)&lt;br /&gt;this.Trader.GetPosition(Portfolio, Security)&lt;br /&gt;также всегда возвращает null&lt;br /&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/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.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">хм.&lt;br /&gt;а у меня в EmulationTrader при тестировании на случайных данных&lt;br /&gt;this.Trader.GetPosition(Portfolio, Security)&lt;br /&gt;всегда возвращает null.&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/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.ru/users/27889/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Попробовал метод Александра на 3.2.5. - после 20 сделок расхождений нет, возьму на вооружение. &lt;br /&gt;Ограничение: до запуска стратегии позиция должна быть 0, если нет - до первой сделки/заявки метод возвратит 0, что неверно.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Я веду подсчет открытой позиции самостоятельно - ловлю NewMyTrades, &lt;br /&gt;и если бумага моя (==this.Security) то увеличиваю/уменьшаю (в зависимости от направления ордера по которому пришел трейд) счетчик int OpenedPosition в стратегии.&lt;br /&gt;&lt;br /&gt;а сегодня столкнулся с серьезной проблемой&lt;br /&gt;&lt;br /&gt;была открытая лонг позиция в 2 бумаги. это подтверждает и мой счетчик и PositionManager.Position:&lt;br /&gt;22.07.2011 13:55:39.415 PositionManager.Position: 2; OpenedPosition:2&lt;br /&gt;&lt;br /&gt;роботом был послан ордер на биржу на продажу 3х лотов:&lt;br /&gt;22.07.2011 13:55:39.810 RegisterOrder: Ok! sec=LKU1 dir=SELL vol=3 price=18769,00&lt;br /&gt;&lt;br /&gt;пока ордер висел позиция не менялась&lt;br /&gt;22.07.2011 13:55:49.408 PnLManager.PnL: 2; OpenedPosition:2;&lt;br /&gt;&lt;br /&gt;но потом вдруг - БЕЗ ВЫЗОВА NewMyTrade свойство PositionManager.Position изменилось!&lt;br /&gt;22.07.2011 13:55:50.490 PnLManager.PnL: -1; OpenedPosition:2;&lt;br /&gt;и в логах Квика видно что как раз в это время ордер был полностью исполнен!&lt;br /&gt;[cursing]&lt;br /&gt;&lt;br /&gt;т.к. робот не знал о выполнении его ордера - трейды же не пришли, то продолжил торговать.&lt;br /&gt;и через несколько секунд ситуация еще раз повторилось, а потом еще раз и до тех пор пока все средства со счета в ГО не ушли. &lt;br /&gt;спасло только то что счет небольшой и цена далеко не ушла - вручную потом откупил совсем с небольшими потерями.[bored] &lt;br /&gt;&lt;br /&gt;как так получилось что NewMyTrade не был вызван???&lt;br /&gt;и как можно перестраховаться от таких косяков в будущем???&lt;br /&gt;как ЖЕЛЕЗНО узнать свою позицию???&lt;br /&gt;[confused]&lt;br /&gt;&lt;br /&gt;PS&amp;gt; PositionManager.Position который показал правильную инфу тут постоянно неправильно показывает в других ситуациях</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/9832/</id>
    <title type="text">1) Указывайте в сообщениях о багах версию S#. версия S# - 3.2.5 2) Что выводил ProcessDataError? не ...</title>
    <published>2011-07-23T07:16:07Z</published>
    <updated>2011-07-23T07:16:07Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">1) Указывайте в сообщениях о багах версию S#.&lt;br /&gt;версия S# - 3.2.5&lt;br /&gt;&lt;br /&gt;2) Что выводил ProcessDataError?&lt;br /&gt;не знаю. я его не выводил. теперь буду выводить.&lt;br /&gt;&lt;br /&gt;а за GetCurrentPosition() огромное спасибо!</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Говорил уже много раз - StrategyPositionManager по умолчанию, если не перегружали, считается по ордерам.&lt;br /&gt;&lt;br /&gt;1) Указывайте в сообщениях о багах версию S#.&lt;br /&gt;2) Что выводил ProcessDataError?&lt;br /&gt;&lt;br /&gt;&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;&lt;pre class="brush:csharp"&gt;
		protected int GetCurrentPosition()
		{
			return Trader.GetPosition(Portfolio, Security) != null
					   ? (int)Trader.GetPosition(Portfolio, Security).CurrentValue
					   : 0;
		}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ни разу не было ни одного косяка.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S. Просьба названия темам давать более осмысленные :)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>