﻿<?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">Удвоение ордера при перевыставлении</title>
  <id>~/topic/2736/udvoenie-ordera-pri-perevystavlenii/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-04T17:48:17Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2736" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/19460/</id>
    <title type="text">Хм, самым надежным способом оказалось просматривать все активные ордера и пытаться убить лишние: var...</title>
    <published>2012-05-30T14:29:04Z</published>
    <updated>2012-05-30T14:29:04Z</updated>
    <author>
      <name>VirKato</name>
      <uri>https://stocksharp.com/users/460/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Хм, самым надежным способом оказалось просматривать все активные ордера и пытаться убить лишние:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

var activeOrders = Trader.Orders.Where(o =&amp;gt; ((o.State == OrderStates.Active) &amp;amp;&amp;amp; (o.Status == OrderStatus.Accepted)));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Через некоторое время появляются ордера которые реально уже сняты, но отображаются как активные. Причем со временем их количество растет. Может быть до Trader просто не доходят сообщения от квика о том, что они сняты. Если переподключить Trader к квику, то проблема снимается. Можно ли создать Clone шлюза и стратегии и подключить их до того как отключить предыдущие, что бы сократить до минимума время рестарта стратегии?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19453/</id>
    <title type="text">А отмену заявки при перерегистрации можно так же отловить? WhenCanceleFailed срабатывает, WhenCancel...</title>
    <published>2012-05-30T08:51:31Z</published>
    <updated>2012-05-30T08:51:31Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;VirKato &lt;a href="https://stocksharp.com/posts/m/19439/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А отмену заявки при перерегистрации можно так же отловить? WhenCanceleFailed срабатывает, WhenCancel - нет.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;На плазе WhenCancel точно срабатывает, должно и на квике работать.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19452/</id>
    <title type="text">Квик апи - не быстрый, а самый медленный из доступных. Смарт быстрее работает? У меня знакомые в сво...</title>
    <published>2012-05-30T07:34:40Z</published>
    <updated>2012-05-30T07:34:40Z</updated>
    <author>
      <name>Den</name>
      <uri>https://stocksharp.com/users/6003/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.com/posts/m/19437/" 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;Den &lt;a href="https://stocksharp.com/posts/m/19436/" 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;Alexander Mukhanchikov &lt;a href="https://stocksharp.com/posts/m/19435/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Квик апи - не быстрый, а самый медленный из доступных.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Смарт быстрее работает? &lt;br /&gt;У меня знакомые в свое время, кто на прямую под него писали ругались на глюкавость и тормознутость...&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;смарт глюкавыЙ, у меня такое же впечатление. я работаю под квик апи, не парюсь особо.&lt;br /&gt;но смарт по тестам побыстрее.&lt;br /&gt;&lt;br /&gt;У нас есть пример для тестирования на codeplex - SpeedTest, в Samples\Common&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Сегодня брокер осчастливил апгрейдом Quik&amp;#39;а с 5.24 на 6.02 наконец-то. &lt;br /&gt;Все стало еще шустрее работать...&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19439/</id>
    <title type="text">Квик апи - не быстрый, а самый медленный из доступных. Хех. То, что &amp;quot;QUIK быстрая, но надежная прогр...</title>
    <published>2012-05-29T15:09:16Z</published>
    <updated>2012-05-29T15:09:16Z</updated>
    <author>
      <name>VirKato</name>
      <uri>https://stocksharp.com/users/460/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov&lt;/span&gt;&lt;div class="innerquote"&gt;Квик апи - не быстрый, а самый медленный из доступных.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Хех. То, что &amp;quot;QUIK быстрая, но надежная программа&amp;quot; - это стандартная фраза, которую я слышал после кучи мата от трейдеров, которые руками трейдят.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;esper&lt;/span&gt;&lt;div class="innerquote"&gt;Спасибо. А отмену заявки при перерегистрации можно так же отловить? WhenCanceleFailed срабатывает, WhenCancel - нет.&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19438/</id>
    <title type="text">1) Пытаться обработать все варианты с помощью WhenSomeShitHappened. У меня пока не получается. Если ...</title>
    <published>2012-05-29T14:30:02Z</published>
    <updated>2012-05-29T14:30:02Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;VirKato &lt;a href="https://stocksharp.com/posts/m/19434/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;1) Пытаться обработать все варианты с помощью WhenSomeShitHappened. У меня пока не получается. Если можете - приведите пожалуйста примеры. Я пытаюсь сделать что то вроде этого обработчика:&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Если в кратце, то отправляем заявку на регистрацию, пока не будет вызвано Regitered или Failed с заявкой ничего не делаем, даже если прошел таймаут, по одному из событий решаем дальше что делать с заявкой. Если интересуют конкретные примеры, то это лучше в платную поддержку обратиться.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;VirKato &lt;a href="https://stocksharp.com/posts/m/19434/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;2) Доставать непосредственно из QUIKa все ордера искать все активные и Cancel ненужные. Реализуется за минуту. Но, через некоторое время ордеров становится слишком много. Есть возможность доставать из QUIK только активные ордера?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
Trader.Orders.Where(o =&amp;gt; o.State == OrderState.Active)&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.com/posts/m/19437/</id>
    <title type="text">Квик апи - не быстрый, а самый медленный из доступных. Смарт быстрее работает? У меня знакомые в сво...</title>
    <published>2012-05-29T14:27:41Z</published>
    <updated>2012-05-29T14:27:41Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Den &lt;a href="https://stocksharp.com/posts/m/19436/" 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;Alexander Mukhanchikov &lt;a href="https://stocksharp.com/posts/m/19435/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Квик апи - не быстрый, а самый медленный из доступных.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Смарт быстрее работает? &lt;br /&gt;У меня знакомые в свое время, кто на прямую под него писали ругались на глюкавость и тормознутость...&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;смарт глюкавыЙ, у меня такое же впечатление. я работаю под квик апи, не парюсь особо.&lt;br /&gt;но смарт по тестам побыстрее.&lt;br /&gt;&lt;br /&gt;У нас есть пример для тестирования на codeplex - SpeedTest, в Samples\Common</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19436/</id>
    <title type="text">Квик апи - не быстрый, а самый медленный из доступных. Смарт быстрее работает? У меня знакомые в сво...</title>
    <published>2012-05-29T14:23:12Z</published>
    <updated>2012-05-29T14:23:12Z</updated>
    <author>
      <name>Den</name>
      <uri>https://stocksharp.com/users/6003/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.com/posts/m/19435/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Квик апи - не быстрый, а самый медленный из доступных.&lt;/div&gt;&lt;/div&gt;&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.com/posts/m/19435/</id>
    <title type="text">Квик апи - не быстрый, а самый медленный из доступных.</title>
    <published>2012-05-29T13:08:27Z</published>
    <updated>2012-05-29T13:08:27Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Квик апи - не быстрый, а самый медленный из доступных.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19434/</id>
    <title type="text">QUIK быстрая, но надежная программа. Поэтому с некоторой периодичностью ордера зависают: новая регис...</title>
    <published>2012-05-29T13:05:05Z</published>
    <updated>2012-05-29T13:05:05Z</updated>
    <author>
      <name>VirKato</name>
      <uri>https://stocksharp.com/users/460/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">QUIK быстрая, но надежная программа. Поэтому с некоторой периодичностью ордера зависают: новая регистрируется, но старая заявка CancelFailed, новая RegisterFailed и т.д. Варианты решения этого: &lt;br /&gt;1) Пытаться обработать все варианты с помощью WhenSomeShitHappened. У меня пока не получается. Если можете - приведите пожалуйста примеры. Я пытаюсь сделать что то вроде этого обработчика:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

CurrSell.WhenCancelFailed().Do((err) =&amp;gt;
{
             errorLogStrategy.AddInfoLog(Thread.CurrentThread.ManagedThreadId + &amp;quot;Cancel ask failed order id: &amp;quot; 
                                    + err.Order.Id + &amp;quot;  and transId: &amp;quot; + err.Order.TransactionId);
             errorLogStrategy.AddInfoLog(Thread.CurrentThread.ManagedThreadId + &amp;quot;Cancel failed order state: &amp;quot; 
                                    + err.Order.State + &amp;quot;  and status: &amp;quot; + err.Order.Status);
             if (err.Order.State != OrderStates.Done) this.ReCancelOrder(err.Order);
}).Apply(this);
CurrSell.WhenChanged().Do((order) =&amp;gt;
{
if (order.State == OrderStates.Done &amp;amp;&amp;amp; order.Balance != 0)
          errorLogStrategy.AddInfoLog(Thread.CurrentThread.ManagedThreadId + &amp;quot;Canceled ask order id: &amp;quot; 
                               + order.Id + &amp;quot;  and transId: &amp;quot; + order.TransactionId);
}).Apply(this);
newOrder.WhenRegisterFailed().Do((err) =&amp;gt; errorLogStrategy.AddInfoLog(Thread.CurrentThread.ManagedThreadId + 
                                &amp;quot;RegisterFailed ask order id: &amp;quot; + err.Order.Id + &amp;quot;  and transId: &amp;quot; + err.Order.TransactionId + &amp;quot; &amp;quot;
                                 +  err.Error.ToString())).Apply(this);
newOrder.WhenRegistered().Do((order) =&amp;gt; errorLogStrategy.AddInfoLog(Thread.CurrentThread.ManagedThreadId + 
                                &amp;quot;Registered ask order id: &amp;quot; + order.Id + &amp;quot;  and transId: &amp;quot; + order.TransactionId)).Apply(this);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;2) Доставать непосредственно из QUIKa все ордера искать все активные и Cancel ненужные. Реализуется за минуту. Но, через некоторое время ордеров становится слишком много. Есть возможность доставать из QUIK только активные ордера?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19323/</id>
    <title type="text">Надо смотреть в сторону Order.WhenRegistered, Order.WhenRegisterFailed и Order.WhenCancelFailed</title>
    <published>2012-05-25T05:36:53Z</published>
    <updated>2012-05-25T05:36:53Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Надо смотреть в сторону Order.WhenRegistered, Order.WhenRegisterFailed и Order.WhenCancelFailed</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19322/</id>
    <title type="text">По логике стратегии нужно перевыставлять ордера каждую секунду при определенных условиях. Поэтому я ...</title>
    <published>2012-05-25T05:33:16Z</published>
    <updated>2012-05-25T05:33:16Z</updated>
    <author>
      <name>VirKato</name>
      <uri>https://stocksharp.com/users/460/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">По логике стратегии нужно перевыставлять ордера каждую секунду при определенных условиях. Поэтому я из дочерней  стратегии наследованной от timeFrameStrategy вызываю каждую секунду CheckOrders. И при выставлении запоминаю ордер в свойство. Это почти работает. Но, периодически ордера дублируются. При этом в свойстве запоминается только один из них, а второй остается висеть. Сижу думаю как отлавливать. Если подкинете мысли - в чем может быть ошибка, буду очень признателен. Да, ордера выставляются через квик (быструю, но надежную программу).&lt;br /&gt;&lt;br /&gt;Кусок кода. Функция CheckOrders вызывается только из OnProcess дочерней, раз в секунду:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

class aStratagy: Strategy
{
    private Order CurrBuy { get; set; }
    
    public void CheckOrders(){
      //проверка условий
      var newBuy = this.CreateOrder(OrderDirections.Buy, bid, qbuy);
      ReRegisterBuy(newBuy);
    }

    private void ReRegisterBuy(Order newBuy)
    {
      this.ReRegisterOrder(CurrBuy, newBuy);
      this.CurrBuy = newBuy;
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>