﻿<?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-06-20T21:48:13Z</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;p&gt;Хм, самым надежным способом оказалось просматривать все активные ордера и пытаться убить лишние:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
var activeOrders = Trader.Orders.Where(o =&amp;gt; ((o.State == OrderStates.Active) &amp;amp;&amp;amp; (o.Status == OrderStatus.Accepted)));

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Через некоторое время появляются ордера которые реально уже сняты, но отображаются как активные. Причем со временем их количество растет. Может быть до Trader просто не доходят сообщения от квика о том, что они сняты. Если переподключить Trader к квику, то проблема снимается. Можно ли создать Clone шлюза и стратегии и подключить их до того как отключить предыдущие, что бы сократить до минимума время рестарта стратегии?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19453/</id>
    <title type="text">VirKato: А отмену заявки при перерегистрации можно так же отловить? WhenCanceleFailed срабатывает, W...</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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19439)" rel="nofollow" target="_blank"&gt;VirKato&lt;/a&gt;:&lt;/strong&gt;
А отмену заявки при перерегистрации можно так же отловить? WhenCanceleFailed срабатывает, WhenCancel - нет.
На плазе WhenCancel точно срабатывает, должно и на квике работать.&lt;/p&gt;
&lt;/blockquote&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">Alexander Mukhanchikov: Den: Alexander Mukhanchikov: Квик апи - не быстрый, а самый медленный из дос...</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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19437)" rel="nofollow" target="_blank"&gt;Alexander Mukhanchikov&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19436)" rel="nofollow" target="_blank"&gt;Den&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19435)" rel="nofollow" target="_blank"&gt;Alexander Mukhanchikov&lt;/a&gt;:&lt;/strong&gt;
Квик апи - не быстрый, а самый медленный из доступных.
Смарт быстрее работает?
У меня знакомые в свое время, кто на прямую под него писали ругались на глюкавость и тормознутость...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;смарт глюкавыЙ, у меня такое же впечатление. я работаю под квик апи, не парюсь особо.
но смарт по тестам побыстрее.&lt;/p&gt;
&lt;p&gt;У нас есть пример для тестирования на codeplex - SpeedTest, в Samples\Common&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Сегодня брокер осчастливил апгрейдом Quik'а с 5.24 на 6.02 наконец-то.
Все стало еще шустрее работать...&lt;/p&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">Alexander Mukhanchikov: Квик апи - не быстрый, а самый медленный из доступных. Хех. То, что &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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Alexander Mukhanchikov:&lt;/strong&gt;
Квик апи - не быстрый, а самый медленный из доступных.
Хех. То, что &amp;quot;QUIK быстрая, но надежная программа&amp;quot; - это стандартная фраза, которую я слышал после кучи мата от трейдеров, которые руками трейдят.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;esper:&lt;/strong&gt;
Спасибо. А отмену заявки при перерегистрации можно так же отловить? WhenCanceleFailed срабатывает, WhenCancel - нет.&lt;/p&gt;
&lt;/blockquote&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">VirKato: Пытаться обработать все варианты с помощью 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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19434)" rel="nofollow" target="_blank"&gt;VirKato&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Пытаться обработать все варианты с помощью WhenSomeShitHappened. У меня пока не получается. Если можете - приведите пожалуйста примеры. Я пытаюсь сделать что то вроде этого обработчика:
Если в кратце, то отправляем заявку на регистрацию, пока не будет вызвано Regitered или Failed с заявкой ничего не делаем, даже если прошел таймаут, по одному из событий решаем дальше что делать с заявкой. Если интересуют конкретные примеры, то это лучше в платную поддержку обратиться.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19434)" rel="nofollow" target="_blank"&gt;VirKato&lt;/a&gt;:&lt;/strong&gt;
2) Доставать непосредственно из QUIKa все ордера искать все активные и Cancel ненужные. Реализуется за минуту. Но, через некоторое время ордеров становится слишком много. Есть возможность доставать из QUIK только активные ордера?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;Trader.Orders.Where(o =&amp;gt; o.State == OrderState.Active)
&lt;/code&gt;&lt;/pre&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">Den: Alexander Mukhanchikov: Квик апи - не быстрый, а самый медленный из доступных. Смарт быстрее ра...</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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19436)" rel="nofollow" target="_blank"&gt;Den&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19435)" rel="nofollow" target="_blank"&gt;Alexander Mukhanchikov&lt;/a&gt;:&lt;/strong&gt;
Квик апи - не быстрый, а самый медленный из доступных.
Смарт быстрее работает?
У меня знакомые в свое время, кто на прямую под него писали ругались на глюкавость и тормознутость...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;смарт глюкавыЙ, у меня такое же впечатление. я работаю под квик апи, не парюсь особо.
но смарт по тестам побыстрее.&lt;/p&gt;
&lt;p&gt;У нас есть пример для тестирования на codeplex - SpeedTest, в Samples\Common&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19436/</id>
    <title type="text">Alexander Mukhanchikov: Квик апи - не быстрый, а самый медленный из доступных. Смарт быстрее работае...</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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19435)" rel="nofollow" target="_blank"&gt;Alexander Mukhanchikov&lt;/a&gt;:&lt;/strong&gt;
Квик апи - не быстрый, а самый медленный из доступных.
Смарт быстрее работает?
У меня знакомые в свое время, кто на прямую под него писали ругались на глюкавость и тормознутость...&lt;/p&gt;
&lt;/blockquote&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">&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/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">&lt;p&gt;QUIK быстрая, но надежная программа. Поэтому с некоторой периодичностью ордера зависают: новая регистрируется, но старая заявка CancelFailed, новая RegisterFailed и т.д. Варианты решения этого:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Пытаться обработать все варианты с помощью WhenSomeShitHappened. У меня пока не получается. Если можете - приведите пожалуйста примеры. Я пытаюсь сделать что то вроде этого обработчика:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Доставать непосредственно из QUIKa все ордера искать все активные и Cancel ненужные. Реализуется за минуту. Но, через некоторое время ордеров становится слишком много. Есть возможность доставать из QUIK только активные ордера?&lt;/li&gt;
&lt;/ol&gt;
</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">&lt;p&gt;Надо смотреть в сторону Order.WhenRegistered, Order.WhenRegisterFailed и Order.WhenCancelFailed&lt;/p&gt;
</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">&lt;p&gt;По логике стратегии нужно перевыставлять ордера каждую секунду при определенных условиях. Поэтому я из дочерней  стратегии наследованной от timeFrameStrategy вызываю каждую секунду CheckOrders. И при выставлении запоминаю ордер в свойство. Это почти работает. Но, периодически ордера дублируются. При этом в свойстве запоминается только один из них, а второй остается висеть. Сижу думаю как отлавливать. Если подкинете мысли - в чем может быть ошибка, буду очень признателен. Да, ордера выставляются через квик (быструю, но надежную программу).&lt;/p&gt;
&lt;p&gt;Кусок кода. Функция CheckOrders вызывается только из OnProcess дочерней, раз в секунду:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>