Корректное получение и обновление списка заявок через квик

Корректное получение и обновление списка заявок через квик
Atom
7/19/2014
beast


Всем доброго времени суток!
Надеюсь, что кто-нибудь откликнется.

Есть следующий код:

Code

...
private static Security sec;
private static Portfolio portf;
private static MarketDepth depth;
...
using (var trader = new QuikTrader(quikPath))
{
   ...
   trader.SupportManualOrders = true;
   trader.NewPortfolios += OnNewPortfolios;
   trader.NewSecurities += OnNewSecurities;
   trader.MarketDepthsChanged += OnDepthChange;
   ...
   Thread.Sleep(500000);
   ...
}
...

Смысл в том, что мы подключаемся к квику, инициализируем переменные Portfolio, MarketDepth, Security и начинаем ждать в Thread.Sleep.
В обработчике OnDepthChange обращаемся к свойству trader.Orders и выводим его содержимое.
Согласно документации, trader.Orders должен выводить информацию о всех заявках.

Запускаем код.
1) Считаем, что до этого момента никаких заявок не было.
OnDepthChange ничего не выводит.

2) В квике выставляем ордер руками.
OnDepthChange выводит:

Code

{66326669/696923689 Покупка Цена=80.29 Объем=1 Сост=Active Бал=1}
{66326670/696923689 Покупка Цена=80.29 Объем=1 Сост=Active Бал=1}


То есть в списке ордеров, вызываемом через trader.Orders, получаем 2 записи об одном и том же ордере.

3) Снимаем выставленный руками в квике ордер.
OnDepthChange выводит:

Code

{66326669/696923689 Покупка Цена=80.29 Объем=1 Сост=Active Бал=1}
{66326670/696923689 Покупка Цена=80.29 Объем=1 Сост=Active Бал=1}
{66326673/696923689 Покупка Цена=80.29 Объем=1 Сост=Done Бал=1}

То есть теперь в списке ордеров, вызываемом через trader.Orders, получаем уже 3 записи об одном и том же ордере.

4) Перезапускаем код.
OnDepthChange выводит о снятом ордере:

Code

{66465834/696923689 Покупка Цена=80.29 Объем=1 Сост=Done Бал=1}

То есть сейчас в списке ордеров ровно одна запись об одном ордере, как и должно быть по логике вещей.

Вопрос: как сделать так, чтобы в списке trader.Orders без использования перезагрузки программы всегда об одном ордере была одна запись?

Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 7/20/2014
Reply


Это Lua режим или DDE?
Thanks:

beast

Avatar
Date: 7/20/2014
Reply


Михаил Сухов
Это Lua режим или DDE?


вывод происходит через DDE
Thanks:

Mikhail Sukhov

Avatar
Date: 7/20/2014
Reply


beast
Михаил Сухов
Это Lua режим или DDE?


вывод происходит через DDE


Скорее всего неправильные настройки. Что-то подобное уже было на форуме.

ДДЕ мы поддерживать перестанем скоро. Как скоро - когда доведем ЛУА до конца. Поэтому лучше начинайте уже тестить новый коннектор. Тем более вы тут новичек и далеко, судя по сообщения, еще не продвинулись.
Thanks:

beast

Avatar
Date: 7/21/2014
Reply


Михаил Сухов
beast
Михаил Сухов
Это Lua режим или DDE?


вывод происходит через DDE


Скорее всего неправильные настройки. Что-то подобное уже было на форуме.

ДДЕ мы поддерживать перестанем скоро. Как скоро - когда доведем ЛУА до конца. Поэтому лучше начинайте уже тестить новый коннектор. Тем более вы тут новичек и далеко, судя по сообщения, еще не продвинулись.


А где написано про новый коннектор?
В мануале по адресу S#.API -> Коннекторы (российские) -> Quik про Lua ничего нет.
Thanks:

esper

Avatar
Date: 7/21/2014
Reply


Описанный баг имеет место быть, но только для ручных заявок, для заявок выставленных через робота такой ошибки нет.

Настройка коннектора QuikLua описана здесь.
Thanks: beast


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy