﻿<?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">Проблема при работе с лотом, больше чем одна заявка.</title>
  <id>~/topic/1175/problema-pri-rabote-s-lotom-bolshe-chem-odna-zayavka_/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-08T02:41:52Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1175" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/4241/</id>
    <title type="text">pave111: я выставил заявку и она могла либо ВЫПОЛНИТСЯ полностью, либо быть снята мной. в обоих случ...</title>
    <published>2010-10-16T22:04:10Z</published>
    <updated>2010-10-16T22:04:10Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;pave111:&lt;/strong&gt;
я выставил заявку и она могла либо ВЫПОЛНИТСЯ полностью, либо быть снята мной. в обоих случаях будет state Done Заявка больше не активна на бирже (была полностью удовлетворена или снята из программы).
чтобы узнать что именно с ней произошло нужно посмотреть balance (продалась или отменена) ордера, так? это будет правильнее, чем получать позицию из квика?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;order.IsMatched() order.IsCanceled()&lt;/li&gt;
&lt;li&gt;это будет правильнее, потому что позиция обновляется с запозданием + так будет проще, потому что позиция - это совокупность исполненных частей заявок.&lt;/li&gt;
&lt;/ol&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4240/</id>
    <title type="text">большое спасибо, этот вариант как раз не пробывал. разрешите один вопрос - я выставил заявку и она м...</title>
    <published>2010-10-16T10:45:31Z</published>
    <updated>2010-10-16T10:45:31Z</updated>
    <author>
      <name>pave111</name>
      <uri>https://stocksharp.ru/users/28442/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;большое спасибо, этот вариант как раз не пробывал.
разрешите один вопрос -
я выставил заявку и она могла либо ВЫПОЛНИТСЯ полностью, либо быть снята мной. в обоих случаях будет state Done Заявка больше не активна на бирже (была полностью удовлетворена или снята из программы).
чтобы узнать что именно с ней произошло нужно посмотреть balance (продалась или отменена) ордера, так? это будет правильнее, чем получать позицию из квика?&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.ru/posts/m/4238/</id>
    <title type="text">pave111: Здравствуйте. Попробовал очевидное решение - добавил в обработчик проверку foreach (MyTrade...</title>
    <published>2010-10-16T09:36:06Z</published>
    <updated>2010-10-16T09:36:06Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;pave111:&lt;/strong&gt;
Здравствуйте.
Попробовал очевидное решение - добавил в обработчик проверку
foreach (MyTrade mt in NewMyTrades)
{
if (mt.Order.IsMatched())
{
выполнилось все, сделать действие
}
}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Добавьте обработчик не на NewMyTrades а на OrdersChanged.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4237/</id>
    <title type="text">да, я понимаю, все что писалось выше делалось внутри стратегии. все же не знаете чем могли быть вызв...</title>
    <published>2010-10-16T08:03:22Z</published>
    <updated>2010-10-16T08:03:22Z</updated>
    <author>
      <name>pave111</name>
      <uri>https://stocksharp.ru/users/28442/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;да, я понимаю, все что писалось выше делалось внутри стратегии.&lt;/p&gt;
&lt;p&gt;все же не знаете чем могли быть вызванны ошибки выше?&lt;/p&gt;
&lt;p&gt;сейчас переделал на PositionManager, буду тестировать. почему раньше не всегда работало не понятно&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4226/</id>
    <title type="text">Информацию о сделках получает из таблицы квик &amp;quot;мои сделки&amp;quot;. Вы привели пример регистрации заявки, но...</title>
    <published>2010-10-15T04:27:39Z</published>
    <updated>2010-10-15T04:31:05Z</updated>
    <author>
      <name>artemox</name>
      <uri>https://stocksharp.ru/users/490/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Информацию о сделках получает из таблицы квик &amp;quot;мои сделки&amp;quot;.
Вы привели пример регистрации заявки, но в расчете позиции сами заявки по идее не участвуют.
Чтобы Strategy.PositionManager.Position считала позицию по исполненным заявкам, заявку необходимо регистрировать из стратегии.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4224/</id>
    <title type="text">спасибо. а информацию о сделках он как получает? orderReverse = new Order ; QTrader.RegisterOrder(or...</title>
    <published>2010-10-14T19:07:45Z</published>
    <updated>2010-10-14T19:07:45Z</updated>
    <author>
      <name>pave111</name>
      <uri>https://stocksharp.ru/users/28442/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;спасибо. а информацию о сделках он как получает?&lt;/p&gt;
&lt;p&gt;orderReverse = new Order
;
QTrader.RegisterOrder(orderReverse);&lt;/p&gt;
&lt;p&gt;отправил заявку и без какой-либо дополнительной обработки, я могу быть уверен, что Strategy.PositionManager.Position вернет верное, реальное значение?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4222/</id>
    <title type="text">Насколько мне известно: PositionManager считает позицию по сделкам, совершенным в рамках стратегии. ...</title>
    <published>2010-10-14T18:22:05Z</published>
    <updated>2010-10-14T18:22:05Z</updated>
    <author>
      <name>artemox</name>
      <uri>https://stocksharp.ru/users/490/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Насколько мне известно:
PositionManager считает позицию по сделкам, совершенным в рамках стратегии.
GetPosition получает позицию из таблиц квика.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4221/</id>
    <title type="text">спасибо, попробую. до этого также пробывал подход position = QTrader.GetPosition(Portfolio, Security...</title>
    <published>2010-10-14T18:14:32Z</published>
    <updated>2010-10-14T18:14:32Z</updated>
    <author>
      <name>pave111</name>
      <uri>https://stocksharp.ru/users/28442/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;спасибо, попробую.&lt;/p&gt;
&lt;p&gt;до этого также пробывал подход
position = QTrader.GetPosition(Portfolio, Security);
position.CurrentValue&lt;/p&gt;
&lt;p&gt;с аналогичным результатом - работало, но не всегда.&lt;/p&gt;
&lt;p&gt;не подскажите, в  чем отличие Strategy.PositionManager.Position от данного варианта и в чем могла быть ошибка в моих прошлых вариантах?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4220/</id>
    <title type="text">Посмотрите в сторону Strategy.PositionManager.Position </title>
    <published>2010-10-14T17:50:55Z</published>
    <updated>2010-10-14T17:50:55Z</updated>
    <author>
      <name>artemox</name>
      <uri>https://stocksharp.ru/users/490/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Посмотрите в сторону Strategy.PositionManager.Position&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4219/</id>
    <title type="text">Здравствуйте. Реализовал стратегию, которая работала с одним лотом и все было хорошо. Как приходило ...</title>
    <published>2010-10-14T17:29:15Z</published>
    <updated>2010-10-14T17:29:15Z</updated>
    <author>
      <name>pave111</name>
      <uri>https://stocksharp.ru/users/28442/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Здравствуйте.
Реализовал стратегию, которая работала с одним лотом и все было хорошо. Как приходило событие NewMyTrades я понимал, что произошла сделка и делал действия необходимые в моей стратегии.
Сейчас попробовал реализовать аналогичное с числом лотов равным 2 и потерпел неудачу.
Мне нужно производить действия когда заявка полностью исчерпана, т.е куплены или проданы ВСЕ 2 лота.
Попробовал очевидное решение - добавил в обработчик проверку
foreach (MyTrade mt in NewMyTrades)
{
if (mt.Order.IsMatched())
{
выполнилось все, сделать действие
}
}&lt;/p&gt;
&lt;p&gt;но почему-то такое срабатывает не всегда. иногда заявка оказывалась полностью выполненной (в квике), а робот считал, что еще нет.&lt;/p&gt;
&lt;p&gt;Тогда попытался обрабатывать событие QTrader.PositionsChanged, и при появлении этого события сравнивать position.CurrentValue с 0 или 2. если вдруг стало 0, то можно сказать, что сделка закрылась. если 2, то сделка полностью открылось. но столкнулся с аналогичными проблемами - в большинстве случаев работает, но не всегда. проблема как и раньше.&lt;/p&gt;
&lt;p&gt;Есть какие либо идеи?
Очень благодарен за ваш труд.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>