SmartQuant Discussion
http://www.smartquant.com/forums/

Order.Replace Qty bug?
http://www.smartquant.com/forums/viewtopic.php?f=65&t=10676
Page 1 of 1

Author:  gonchis [ Fri Feb 14, 2014 8:24 pm ]
Post subject:  Order.Replace Qty bug?

Добрый день.

Столкнулся с проблемой изменения qty в ордере. Предварительно похоже на то что это ошибка в кванте, посмотрите, пожалуйста.
Code:
   public override void OnPositionChanged()
   {
         UpdateStop();
   }

Code:
   public void UpdateStop()
   {
      if(Stop != null && !Stop.IsDone)
      {
         if(HasPosition)
         {
            double NewQty = Position.Qty;
            if(Stop.Qty != NewQty)
            {
               Stop.Qty = NewQty;
               Stop.Replace();
            }
         }
         else
         {
            Stop.Cancel();
         }
      }
   }

Сождается стоп таким образом:
Code:
            Stop = StopOrder(stopSide, qty, price, "Stop." + stopSide);
            Stop.TimeInForce = TimeInForce.GTC;
            Stop.Send();
У меня позиция набирается двумя частями, оба лимитные ордера timeinforce = GTC.
Если оба лимитника сработали в один день, стоп обновляется корректно, но почему-то если один лимит был залит вчера а второй сегодня, то стоп обновляется неверно:
http://grabilla.com/0420e-50e36530-bfe5 ... 604ed.html
объясню:
1. изначально выставилось три ордера: Limit1(sell 273 shares), Limit2(sell 312 shares), Stop(buy total 585 shares)
2. Limit1 залили 2/12/2014, после чего сработал UpdateStop на 273 шерз
3. Limit2 залили 2/13/2014, после чего сработал UpdateStop на 585 шерз (новый размер позиции 273+312), но сработало неверно, как видно на скрине после реплейса qty=585 в колонке LeavesQty остались прежние 273.
При этом реальный стоп в платформе (IB) висел корректный на 585 шерз. На размер стоп оредра в платфоме, признаюсь, я не обращал внимания, но подозреваю что он был = корректным 585, т.к. после срабатывания стопа позиция закрылась полностью.
4. Когда цена дошла до стопа и тригернула его, он почему-то залился ровно на 300 шерз тем самым записал -27 в остаток. Повторюсь, в платформе поза закрылась полностью в ноль. В кванте поза осталась висеть со всеми вытекающими последствиями.

Как я уже говорил, такое проявляется только если стоп реплейсится в два разных дня (стоп GTC). Не знаю в этом ли причина, но с другими позами, котоыре заливаются в пределах одного дня все ок, вот один из примеров:
http://grabilla.com/0420e-96752860-08d6 ... 9d1d7.html

Вомзжно проблема проявляется только при увеличении qty во время реплейса, т.к. не припомню такой проблемы при уменьшении qty, даже если и в разные дни

Помогите решить эту проблему, плз
Спасибо

Author:  gonchis [ Fri Feb 21, 2014 1:57 pm ]
Post subject:  Re: Order.Replace Qty bug?

Посмотрите на мой вопрос плз.
Спасибо

Author:  Alexei Kurov [ Fri Feb 21, 2014 2:24 pm ]
Post subject:  Re: Order.Replace Qty bug?

Добрый день.

Ситуация немного странная, но попробую разобраться.
А скажите плиз, OQ перезапускается ночью или работает непрерывно?

Author:  gonchis [ Fri Feb 21, 2014 6:10 pm ]
Post subject:  Re: Order.Replace Qty bug?

посмотрел по логам стратегии - в эту ночь стратегия _точно_ перезапускалась. перезапускался ли квант при этом - не помню
могу это точно посмотреть (по логам кванта например) если это важно и если скажите где можно посмотреть.

Author:  Alexei Kurov [ Mon Feb 24, 2014 10:19 am ]
Post subject:  Re: Order.Replace Qty bug?

Это можно посмотреть в файле log.txt в папке <%appdata%>\SmartQuant Ltd\OpenQuant\Framework\logs
На момент старта в логи падает информация о компьютере, версии дотнета и т.д. - это видно хорошо.

Author:  gonchis [ Mon Feb 24, 2014 2:47 pm ]
Post subject:  Re: Order.Replace Qty bug?

судя по логам, перезапуск был. вот такое нашел:

2/13/2014 7:08:20 AM ########################
2/13/2014 7:08:20 AM OS : Microsoft Windows NT 6.1.7601 Service Pack 1 64bit
2/13/2014 7:08:20 AM CPU(s): Intel(R) Xeon(R) CPU E31230 @ 3.20GHz
2/13/2014 7:08:20 AM RAM : 16384MB (4096+4096+4096+4096)

Author:  Alexei Kurov [ Mon Feb 24, 2014 4:34 pm ]
Post subject:  Re: Order.Replace Qty bug?

да, спасибо, это те самые строчки.
к сожалению, у меня не получилось воспроизвести ситуацию.
сам по себе, другой день роли не играет, а перезапуск мог повлиять, но
и с перезапуском и без него все работает корректно.

Author:  gonchis [ Mon Feb 24, 2014 6:05 pm ]
Post subject:  Re: Order.Replace Qty bug?

Ну, вообще да, я тоже сегодня сталкнулся с тем что смена дней не воспроизводит эту проблему.
вот пример с сегодня: http://grabilla.com/04218-0638749a-862d ... 0c12ea.png ордер реплейсился в два разных дня и все корректно.
но квант не перегружал сегодня утром, поэтому вомзожно эта проблема связана с перезагрузкой кванта

Author:  Alexei Kurov [ Tue Feb 25, 2014 5:23 pm ]
Post subject:  Re: Order.Replace Qty bug?

Я об этом и писал, но я не получаю ошибку в реплейсе
после перезапуска опенкванта.
А какую версию Вы используете?

Author:  gonchis [ Tue Feb 25, 2014 7:16 pm ]
Post subject:  Re: Order.Replace Qty bug?

я недавно адпейтил квант до 3,8 версии

но судя по логам на тот момент была еще постарше:
2/13/2014 7:08:20 AM ########################
2/13/2014 7:08:20 AM OS : Microsoft Windows NT 6.1.7601 Service Pack 1 64bit
2/13/2014 7:08:20 AM CPU(s): Intel(R) Xeon(R) CPU E31230 @ 3.20GHz
2/13/2014 7:08:20 AM RAM : 16384MB (4096+4096+4096+4096)
2/13/2014 7:08:20 AM CLR : 4.0.30319.269
2/13/2014 7:08:20 AM APP : OpenQuant 3.6.2 64bit
2/13/2014 7:08:20 AM Initializing DataManager...
2/13/2014 7:08:40 AM Provider: IB

Author:  Alexei Kurov [ Wed Feb 26, 2014 10:17 am ]
Post subject:  Re: Order.Replace Qty bug?

это может много обьяснить.

3.6.2 была выпущена в феврале 2013, а в мае 2013 был переработан плагин айби.

Author:  gonchis [ Thu Feb 27, 2014 4:48 pm ]
Post subject:  Re: Order.Replace Qty bug?

ну ладно, посмотрю будет ли проявлятся на 3,8
спасибо.

Page 1 of 1 All times are UTC + 3 hours
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/