Новый коннектор к Quik

Новый коннектор к Quik
Atom
7/9/2014
Mikhail Sukhov


Мы сделали новый коннектор к Quik. Доступен начиная с версии 4.2.4.0

Коннектор обраладет следующими преимуществами:

1. Быстрее скорость транспортировки данных.
2. Значительно упрощена настройка таблиц в Quik (все колонки по умолчанию, нужно просто открыть таблицы в терминале, без дополнительных каких-либо настроек).
3. Возможность подключаться удаленно к Quik.
4. Робот может быть скомпилирован под 64 бита.

Подробнее, о настроках и миграции.

Коннектор сделан с использование протокола FIX 4.4. Поэтому появилась новая возможность - подключение к Quik не из StockSharp программ. Если у вас есть код или готовая программа, использующая FIX, то вы можете попробовать подключиться к Quik терминалу через FIX протокол.

Давайте попробуем данный тип подключения, и отпишемся здесь о своих замечаниях. А к осени воздадим почет DDE+Trans2Quik как самой старой технологии, и первому коннектору в S#. И отправим на заслуженный покой.


<< < 11 12 13 14 15  > >>
sazon

Avatar
Date: 11/10/2014
Reply


esper
Нет никакого дублирования, свечка меняется и вы получаете каждое изменение. Здесь.

Тогда понятно. Спасибо.
Thanks:

RomSunZ

Avatar
Date: 11/10/2014
Reply


Вот еще проблема более серьезная:
В примере sample добавляем для открытия орддера котированием
Code

            var quoting = new MarketQuotingStrategy(Sides.Buy, 1)
            {
                Security = SecurityPicker.SelectedSecurity,
                Portfolio = pf,
                WaitAllTrades = true,
                Connector = MainWindow.Instance.Trader,
                Volume = 1,
                PriceType = MarketPriceTypes.Following,//.Opposite,//.Middle,//
                LogLevel = LogLevels.Debug,
                PriceOffset = 1,
                BestPriceOffset = 3,
            };
            quoting.Start();

В результате работы в систему выставляются "неэффективные" ордера с нулевым объемом:
Code

20:17:02.352|       |QuikTrader|Инструмент GZZ4@FORTS зарегистрирован на получение рыночных данных для MarketDepth.
20:17:02.403|       |QuikTrader|RegisterOrder: 0/ Покупка Цена=14595 Объем=1 Сост=None Бал=0 
20:17:02.403|       |QuikTrader|New order: 72980119/ Покупка Цена=14595 Объем=1 Сост=Pending Бал=1 
20:17:02.808|       |QuikTrader|Order changed: 72980119/2500263988 Покупка Цена=14595 Объем=1 Сост=Active Бал=1 
20:17:02.809|       |QuikTrader|Order changed: 72980119/2500263988 Покупка Цена=14595 Объем=1 Сост=Active Бал=1 
20:17:34.654|       |QuikTrader|New order: 72980122/ Покупка Цена=14599 Объем=0 Сост=Pending Бал=0 
20:17:35.001|       |QuikTrader|Order changed: 72980119/2500263988 Покупка Цена=14595 Объем=1 Сост=Done Бал=1 
20:17:35.001|       |QuikTrader|Order changed: 72980122/2500265916 Покупка Цена=14599 Объем=1 Сост=Active Бал=1 
20:17:35.002|       |QuikTrader|Order changed: 72980122/2500265916 Покупка Цена=14599 Объем=1 Сост=Active Бал=1 
20:17:36.301|       |QuikTrader|New order: 72980123/ Покупка Цена=14607 Объем=0 Сост=Pending Бал=0 
20:17:36.587|       |QuikTrader|Order changed: 72980122/2500265916 Покупка Цена=14599 Объем=1 Сост=Done Бал=1 
20:17:36.588|       |QuikTrader|Order changed: 72980123/2500266028 Покупка Цена=14607 Объем=1 Сост=Done Бал=0 


В приложении лог MQS и LUA.
MQS_GZZ4@FORTS.zip 2 KB (323) lua_log.txt 1 MB (299)
Thanks:

esper

Avatar
Date: 11/11/2014
Reply


RomSunZ
В результате работы в систему выставляются "неэффективные" ордера с нулевым объемом:

Не вижу здесь ни одной ошибки.
Thanks:

RomSunZ

Avatar
Date: 11/11/2014
Reply


esper
RomSunZ
В результате работы в систему выставляются "неэффективные" ордера с нулевым объемом:

Не вижу здесь ни одной ошибки.


А это:
Code

Лог трейдера:
20:17:36.301|       |QuikTrader|New order: 72980123/ Покупка Цена=14607 Объем=0 Сост=Pending Бал=0 

лог ЛУА:
2014/11/10 20:17:36.026|Debug  |#=qaBez6xggl2OPiHwxjqwmKg==|From client 8=FIX.4.49=18735=G34=749=quik52=20141110-14:17:36.30556=StockSharpTS1=SPBFUT0009711=7298012337=250026591638=040=241=7298012244=1460755=GZZ460=20141110-20:17:36.302167=FUT207=FORTS461=F10=053
2014/11/10 20:17:36.026|       |#=qaBez6xggl2OPiHwxjqwmKg==|From client quik: OrderCancelReplaceRequest
2014/11/10 20:17:36.026|Debug  |Quik      |In. OrderReplace,T(L)=2014.11.10 20:17:36.026,Sec=S#:GZZ4@FORTS, Native:,Type:Future,TransId=635512397476400279,Price=14607,Side=Buy,OrdType=Limit,Vol=0,Sec=S#:GZZ4@FORTS, Native:,Type:Future,OldTransId=635512397476400278,OldOrdId=2500265916,NewTransId=635512397476400279
2014/11/10 20:17:36.026|       |None      |SendTransaction: t = {}
t["ACTION"] = "MOVE_ORDERS"
t["CLASSCODE"] = "SPBFUT"
t["SECCODE"] = "GZZ4"
t["MODE"] = "0"
t["FIRST_ORDER_NUMBER"] = "2500265916"
t["FIRST_ORDER_NEW_PRICE"] = "14607"
t["FIRST_ORDER_NEW_QUANTITY"] = "0"
t["TRANS_ID"] = "72980123"
return sendTransaction(t)


зачем в систему выставляется заявка с нулевым объемом или это нормально?
Thanks:

longtrades

Avatar
Date: 12/15/2014
Reply


Здравствуйте,

скачал последнюю версию дистрибутива, пример Quik Sample, подключаюсь через Lua -- нету ни одной сделки. Level1 и стаканы идут, только сделки не транслируются.
Открываю таблицу всех сделок в квик -- сделки начинають транслироватся .
Теперь в Sample --> MainWindow исправляю:
Trader.NewSecurities += securities => {
foreach (var sec in securities)
Trader.RegisterTrades(sec);
_securitiesWindow.SecurityPicker.Securities.AddRange(securities);
};

Тоесть хочу получать все сделки по всем инструментам, причем и в заказе всех сделок и в таблице всех сделок выбираю только фьюч и опционы на индекс РТС.
Стартую сампле --> Quik тупо зависает...

Прошу проверить.

Спасибо.
Thanks:

RomSunZ

Avatar
Date: 12/15/2014
Reply


Подскажите, почему Security.State всегда равно SecurityStates.Trading не зависимо от того, что показывается в таблице инструментов в Квике?
(например на клиринге в квике состояние пишет "приостановлено", а транслируется как Trading)
Исправьте пожалуйста.
Thanks:

longtrades

Avatar
Date: 12/26/2014
Reply


Здравствуйте ,

когда можно ожидать что вы посмотрите в сторону проблеммы описаной здесь: http://stocksharp.com/posts/m/32257/

Спсибо.
Thanks:

Slepoy

Avatar
Date: 1/23/2015
Reply


Приветствую всех участников форума.
Хотелось бы услышать пояснение об экспорте через ЛУА. Я конечно новичок и только учусь (смотрю 1 видеоурок), но сразу понятно, что ЛУА как-то избирательно передаёт информацию. Как я понял, раньше через ДДЕ, подключение робота проходило в 2 этапа:
1. Подключение к потоку
2. Экспорт таблиц через ДДЕ

То есть, до старта экспорта по ДДЕ никакие данные в робота априори поступать не могли. С ЛУА же другая ситуация, если не использовать "экспорт" (закомментировать метод StartExport), то список инструментов экспортироваться действительно не будет, но будут экспортироваться - портфели. То есть, ЛУА передаёт часть информации вообще сам по себе, без использования специальных методов/событий. Как-то неправильно это всё и нелогично. Нужно либо включить передачу "портфелей" в экспорт, либо вообще "экспорт" выкинуть, ведь он исходно был задуман для ДДЕ и импорта конкретных таблиц. Тут же ЛУА, тут нечего экспортировать. Текущая ситуация выглядит аллогично, и со стороны смотрится как утечка потока "портфели". ЛУА протекает ))). И у меня логичный вопрос: это специально так задумано или это баг в ЛУА-коннекторе?

http://s015.radikal.ru/i...501/b7/20de1adc06dc.jpg

http://s008.radikal.ru/i...1501/bb/ef4cf78d1aef.jpg
Thanks:

Zabik

Avatar
Date: 2/12/2015
Reply


Roman08120
RomSunZ
Roman08120
Добрый день, подскажите пож-та, можно ли осуществить в коннекторе так, чтобы в список инструментов загружался только один определённый инструмент, а не весь список фьючей, акций, опционов и т.д.? Затрудняет поиск


Наверное настроить списки в квике...


Настраивал, оставлял один инструмент, но всё равно подгружаются куча других


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

Написал следующий код:

Code
 _trader.NewSecurities += securities => this.GuiAsync(() =>
                {
                    var lkoh = securities.FirstOrDefault(s => s.Code == "LKOH");
                    var vtbr = securities.FirstOrDefault(s => s.Code == "VTBR");
                    Listbox1.Items.Add(lkoh);
                    Listbox1.Items.Add(vtbr);                    
                });


Listbox можно так же поменять на Combobox, кому как удобнее. После соединения проходит приличное время пока все подгрузится, но зато не приходится искать в списке из тысяч инструментов те, которыми постоянно пользуешься.
Thanks: Mikhail Sukhov

longtrades

Avatar
Date: 2/18/2015
Reply


Скажите, пожалуйста , это нормально что у всех сделок OrderDirection = null ?

И еще один вопрос , проэкт СтокШарп еще живой ? а то смотрю уж очень редко на форуме в последнее время отвечают на вопросы пользователей.
Thanks:
<< < 11 12 13 14 15  > >>

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

loading
clippy