← Atrás

API 4.3.14.2(особенности, изменения, замечания, новинки, баги)

Чтобы не плодить тонну постов - я предлагаю под каждый новый/старый релиз API создать одну ветку-пост, в которой описывать все замечания по конкретному релизу. В общем, данный пост про конретный релиз API 4.3.14.2, пишем сюда все замечания касательно только данного релиза. Когда выйдет новый релиз API 4.3.15 - под него создадим новый пост. Так будет более-менее упорядоченно.

Сегодня заметил опечатку, ну я предполагаю что это опечатка, т.к. исходники не глядел. Событие StopOrderRegistered класса Strategy, в версии API 4.3.13 называлось по нормальному "Событие об успешной регистрации стоп-заявки". В новом API 4.3.14.2 имя изменилось на "Событие об ошибке регистрации стоп-заявки", хотя событие отвечающее за это - уже есть StopOrderRegisterFailed. В итоге, появился дубль. Два события StopOrderRegistered и StopOrderRegisterFailed, - судя по описанию, выполняются одно и тоже. Я думаю это опечатка, хотя хрен его знает.

http://i9.pixs.ru/storage/2/5/8/Opechatkaj_2093534_21643258.jpg

¿Le resultó útil este tema?

Compartir tema

Comentarios (20)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Den
Den

SampleQuik S# 4.3.14.2 и Quik 7.1.2.2 от БКС. В логах вижу

|LuaServer |LookupOrders |LuaServer |Orders count: 12 |LuaServer |LookupOrders done |LuaServer |LookupTrades |LuaServer |Own trades count: 16 |LuaServer |LookupTrades done

Но события NewMyTrades, NewOrders не вызываются...

Mikhail Sukhov
Mikhail Sukhov

Den: SampleQuik S# 4.3.14.2 и Quik 7.1.2.2 от БКС.

На демо БКС 7.1.1.16 работает. Изменение в версии минимальное, думаю, что причина в каких-то ваших настройках локальных.

shipa988
shipa988

У меня в новой версии не получает инструменты. Портфель приходит, инструменты нет. демо БКС 7.1.1.16

Mikhail Sukhov
Mikhail Sukhov

shipa988: У меня в новой версии не получает инструменты. Портфель приходит, инструменты нет. демо БКС 7.1.1.16

Пример запускали?

shipa988
shipa988

Да запускал! он то и не работает. Предыдущая версия stocksharp успешно работает и сейчас. Однако предыдущая версия с демо БКС 7.1.1.16 не регистрирует заявки(говорит что не верно указан торговый счет). Хотя с Quik с официального сайта АРКА 7.2.0.45 все проходит. Вот такие вот загадки((

Mikhail Sukhov
Mikhail Sukhov

shipa988: (говорит что не верно указан торговый счет).

Логи клиента и сервера под режимом Дебаг.

shipa988
shipa988

0001/01/01 00:00:00.000| |QuikTrader|Connect 2016/05/05 13:49:34.642|Debug |Quik LUA. Market data|To server: 8=FIX.4.49=9535=A49=quik56=StockSharpMD52=20160505-10:49:34.64034=198=0108=60141=Y553=quik554=quik10=174^ 2016/05/05 13:49:34.643|Debug |Quik LUA. Transactions|To server: 8=FIX.4.49=9535=A49=quik56=StockSharpTS52=20160505-10:49:34.64034=198=0108=60141=Y553=quik554=quik10=196^ 2016/05/05 13:49:36.103| |Quik LUA. Transactions|From server: Logon 2016/05/05 13:49:36.103| |Quik LUA. Market data|From server: Logon 2016/05/05 13:49:36.106|Debug |QuikTrader|BP:Connect,T(L)=2016.05.05 13:49:36.109 2016/05/05 13:49:36.115|Debug |Quik LUA. Market data|Сессия 'server'. Получено: '8=FIX.4.09=5935=A49=quik56=StockSharpMD52=20160505-10:49:36.10534=110=052' 2016/05/05 13:49:36.115|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=5935=A49=quik56=StockSharpTS52=20160505-10:49:36.10534=110=074' 2016/05/05 13:49:36.109|Debug |QuikTrader|BP:Connect,T(L)=2016.05.05 13:49:36.109 2016/05/05 13:49:36.122|Debug |Quik LUA. Market data|To server: 8=F![](IX.4.49=7835=x49=quik56=StockSharpMD52=20160505-10:49:36.12734=2320=49774340559=410=003 2016/05/05 13:49:36.123|Debug |Quik LUA. Transactions|To server: 8=FIX.4.49=11735=AN49=quik56=StockSharpTS52=20160505-10:49:36.12734=2710=49774341724=0715=20160505 10:05:3660=10:49:36.12710=156 2016/05/05 13:49:36.124|Debug |Quik LUA. Transactions|To server: 8=FIX.4.49=7935=AF49=quik56=StockSharpTS52=20160505-10:49:36.12734=3584=49774342585=710=058 2016/05/05 13:49:36.156| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.171|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=17435=AP49=quik56=StockSharpTS52=20160505-10:49:36.15834=2710=497743411=SPBFUT005CG581=3728=055=StockSharpMoney753=4708=100000707=SMTM708=0707=CRES708=0707=TVAR10=232' 2016/05/05 13:49:36.160|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.169,T(S)=2016.05.05 13:49:36.158,P=SPBFUT005CG,Changes=[BeginValue, 100000],[CurrentValue, 0],[VariationMargin, 0] 2016/05/05 13:49:36.171| |Quik LUA. Transactions|From server: )PositionReport 2016/05/05 13:49:36.171|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=14835=AP49=quik56=StockSharpTS52=20160505-10:49:36.15834=3710=497743411=50950581=3728=055=StockSharpMoney753=3708=0707=SMTM708=0707=CRES10=226' 2016/05/05 13:49:36.171| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.172|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=14835=AP49=quik56=StockSharpTS52=20160505-10:49:36.15834=4710=497743411=50950581=3728=055=StockSharpMoney753=3708=0707=SMTM708=0707=CRES10=227' 2016/05/05 13:49:36.172| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.172|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=15835=AP49=quik56=StockSharpTS52=20160505-10:49:36.15834=5710=497743411=50950581=3728=055=StockSharpMoney753=3708=200000707=SMTM708=200000707=CRES10=201' 2016/05/05 13:49:36.172| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.172|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=15835=AP49=quik56=StockSharpTS52=20160505-10:49:36.15834=6710=497743411=50950581=3728=055=StockSharpMoney753=3708=200000707=SMTM708=200000707=CRES10=202' 2016/05/05 13:49:36.172| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.173|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=14135=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=7710=497743411=SPBFUT005CG581=3728=055=StockSharpMoney207=FORTS15=RUB753=010=124' 2016/05/05 13:49:36.173| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.173|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=13535=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=8710=497743411=50950581=3728=055=StockSharpMoney207=MICEX15=RUB753=010=120' 2016/05/05 13:49:36.173| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.173|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=13535=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=9710=497743411=50950581=3728=055=StockSharpMoney207=MICEX15=RUB753=010=121' 2016/05/05 13:49:36.173| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.173|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=13635=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=10710=497743411=50950581=3728=055=StockSharpMoney207=MICEX15=RUB753=010=162' 2016/05/05 13:49:36.173| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.173|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=13635=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=11710=497743411=50950581=3728=055=StockSharpMoney207=MICEX15=USD753=010=166' 2016/05/05 13:49:36.173| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.173|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=11935=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=12710=497743411=50950581=3728=055=StockSharpMoney753=110=204' 2016/05/05 13:49:36.173| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.175|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=16835=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=13710=497743411=50950581=3728=0660=055=USD000000TOD167=CS702=2703=SOD706=1704=0703=EP706=1704=010=134' 2016/05/05 13:49:36.175| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.175|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=11935=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=14710=497743411=50950581=3728=055=StockSharpMoney753=110=206' 2016/05/05 13:49:36.175| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.175|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=16035=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=15710=497743411=50950581=3728=0660=055=SBER167=CS702=2703=SOD706=1704=0703=EP706=1704=010=185' 2016/05/05 13:49:36.175| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.175|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=11935=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=16710=497743411=50950581=3728=055=StockSharpMoney753=110=208' 2016/05/05 13:49:36.175| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.176|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=16035=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=17710=497743411=50950581=3728=0660=255=SBER167=CS702=2703=SOD706=1704=0703=EP706=1704=010=189' 2016/05/05 13:49:36.176| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.176|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=11935=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=18710=497743411=50950581=3728=055=StockSharpMoney753=110=210' 2016/05/05 13:49:36.176| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.176|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=16835=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=19710=497743411=50950581=3728=0660=055=US0138171014167=CS702=2703=SOD706=1704=0703=EP706=1704=010=059' 2016/05/05 13:49:36.176| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.177|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=11935=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=20710=497743411=50950581=3728=055=StockSharpMoney753=110=203' 2016/05/05 13:49:36.177| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 13:49:36.177|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=16835=AP49=quik56=StockSharpTS52=20160505-10:49:36.17434=21710=497743411=50950581=3728=0660=255=US0138171014167=CS702=2703=SOD706=1704=0703=EP706=1704=010=054' 2016/05/05 13:49:36.169| |QuikTrader|Создан новый портфель SPBFUT005CG. 2016/05/05 13:49:36.169|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.171,T(S)=2016.05.05 13:49:36.158,P=50950,Changes=[BeginValue, 0],[CurrentValue, 0] 2016/05/05 13:49:36.171| |QuikTrader|Создан новый портфель 50950. 2016/05/05 13:49:36.171|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.171,T(S)=2016.05.05 13:49:36.158,P=50950,Changes=[BeginValue, 0],[CurrentValue, 0] 2016/05/05 13:49:36.171|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.172,T(S)=2016.05.05 13:49:36.158,P=50950,Changes=[BeginValue, 200000],[CurrentValue, 200000] 2016/05/05 13:49:36.172|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.172,T(S)=2016.05.05 13:49:36.158,P=50950,Changes=[BeginValue, 200000],[CurrentValue, 200000] 2016/05/05 13:49:36.172|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.173,T(S)=2016.05.05 13:49:36.174,P=SPBFUT005CG,Changes=[Currency, RUB] 2016/05/05 13:49:36.173|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.173,T(S)=2016.05.05 13:49:36.174,P=50950,Changes=[Currency, RUB] 2016/05/05 13:49:36.173|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.173,T(S)=2016.05.05 13:49:36.174,P=50950,Changes=[Currency, RUB] 2016/05/05 13:49:36.173|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.173,T(S)=2016.05.05 13:49:36.174,P=50950,Changes=[Currency, RUB] 2016/05/05 13:49:36.173|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.173,T(S)=2016.05.05 13:49:36.174,P=50950,Changes=[Currency, USD] 2016/05/05 13:49:36.173|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.173,T(S)=2016.05.05 13:49:36.174,P=50950,Changes= 2016/05/05 13:49:36.173|Debug |QuikTrader|BP:Position,T(L)=2016.05.05 13:49:36.174,Sec=S#:USD000000TOD@, Native:,Type:Stock,P=50950 2016/05/05 13:49:36.174|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.175,T(S)=2016.05.05 13:49:36.174,Sec=S#:USD000000TOD@, Native:,Type:Stock,P=50950,Changes=[BeginValue, 0] 2016/05/05 13:49:36.175|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.175,T(S)=2016.05.05 13:49:36.174,Sec=S#:USD000000TOD@, Native:,Type:Stock,P=50950,Changes=[CurrentValue, 0] 2016/05/05 13:49:36.175|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.175,T(S)=2016.05.05 13:49:36.174,P=50950,Changes= 2016/05/05 13:49:36.175|Debug |QuikTrader|BP:Position,T(L)=2016.05.05 13:49:36.175,Sec=S#:SBER@, Native:,Type:Stock,P=50950 2016/05/05 13:49:36.175|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.175,T(S)=2016.05.05 13:49:36.174,Sec=S#:SBER@, Native:,Type:Stock,P=50950,Changes=[BeginValue, 0] 2016/05/05 13:49:36.175|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.175,T(S)=2016.05.05 13:49:36.174,Sec=S#:SBER@, Native:,Type:Stock,P=50950,Changes=[CurrentValue, 0] 2016/05/05 13:49:36.175|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.175,T(S)=2016.05.05 13:49:36.174,P=50950,Changes= 2016/05/05 13:49:36.175|Debug |QuikTrader|BP:Position,T(L)=2016.05.05 13:49:36.176,Sec=S#:SBER@, Native:,Type:Stock,P=50950 2016/05/05 13:49:36.176|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.176,T(S)=2016.05.05 13:49:36.174,Sec=S#:SBER@, Native:,Type:Stock,P=50950,Changes=[BeginValue, 0] 2016/05/05 13:49:36.176|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.176,T(S)=2016.05.05 13:49:36.174,Sec=S#:SBER@, Native:,Type:Stock,P=50950,Changes=[CurrentValue, 0] 2016/05/05 13:49:36.176|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.176,T(S)=2016.05.05 13:49:36.174,P=50950,Changes= 2016/05/05 13:49:36.176|Debug |QuikTrader|BP:Position,T(L)=2016.05.05 13:49:36.176,Sec=S#:US0138171014@, Native:,Type:Stock,P=50950 2016/05/05 13:49:36.176|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.176,T(S)=2016.05.05 13:49:36.174,Sec=S#:US0138171014@, Native:,Type:Stock,P=50950,Changes=[BeginValue, 0] 2016/05/05 13:49:36.176|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.176,T(S)=2016.05.05 13:49:36.174,Sec=S#:US0138171014@, Native:,Type:Stock,P=50950,Changes=[CurrentValue, 0] 2016/05/05 13:49:36.176|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 13:49:36.176,T(S)=2016.05.05 13:49:36.174,P=50950,Changes= 2016/05/05 13:49:36.176|Debug |QuikTrader|BP:Position,T(L)=2016.05.05 13:49:36.177,Sec=S#:US0138171014@, Native:,Type:Stock,P=50950 2016/05/05 13:49:36.177|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.177,T(S)=2016.05.05 13:49:36.174,Sec=S#:US0138171014@, Native:,Type:Stock,P=50950,Changes=[BeginValue, 0] 2016/05/05 13:49:36.177|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 13:49:36.177,T(S)=2016.05.05 13:49:36.174,Sec=S#:US0138171014@, Native:,Type:Stock,P=50950,Changes=[CurrentValue, 0] 2016/05/05 13:49:36.351| |Quik LUA. Market data|From server: SecurityList ... ... ... 2016/05/05 13:52:05.852| |QuikTrader|RegisterOrder: 0/ Покупка Цена=0,01 Объем=50 Сост=None Бал=0 2016/05/05 13:52:05.867|Debug |QuikTrader|BP:Execution,T(L)=2016.05.05 13:52:05.852,T(S)=0001.01.01 00:00:00.000,(Order),Sec=S#:SBER@TQBR, Native:,Type:Stock,Ord=/49774351/49774351,Fail=,TId=,Pf=50950,TPrice=,UId= 2016/05/05 13:52:05.867| |QuikTrader|New order: 49774351/ Покупка Цена=0.01 Объем=50 Сост=Pending Бал=50 2016/05/05 13:52:05.881|Debug |Quik LUA. Transactions|To server: 8=FIX.4.49=18535=D49=quik56=StockSharpTS52=20160505-10:52:05.88134=611=4977435155=SBER207=TQBR48=SBER22=8100=TQBR75=2016050560=10:52:05.88154=140=11=5095038=50461=E21=1167=CS59=110=038 2016/05/05 13:52:06.096| |Quik LUA. Transactions|From server: ExecutionReport 2016/05/05 13:52:06.099|Debug |QuikTrader|BP:Execution,T(L)=2016.05.05 13:52:06.105,T(S)=2016.05.05 13:52:06.097,(Order),Sec=S#:@, Native:,Type:,Ord=/0/49774351,Fail=System.InvalidOperationException: oshibka: (145) <mark>neverno ukazan torgovyi schet</mark>.,TId=,Pf=,TPrice=,UId= 2016/05/05 13:52:06.106|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=17035=849=quik56=StockSharpTS52=20160505-10:52:06.09734=2441=49774351150=839=858=oshibka: (145) neverno ukazan torgovyi schet.75=2016050560=10:52:06.09740=254=110=119' 2016/05/05 13:52:06.105|Error |QuikTrader|OrderFailed 49774351/ Покупка Цена=0,01 Объем=50 Сост=Failed Бал=50 System.InvalidOperationException: oshibka: (145) neverno ukazan torgovyi schet. 2016/05/05 13:52:06.265| |Quik LUA. Transactions|From server: PositionReport

а вот работающая заявка в новом QUIK

0001/01/01 00:00:00.000| |QuikTrader|Connect 2016/05/05 15:20:02.334|Debug |Quik LUA. Market data|To server: 8=FIX.4.49=9535=A49=quik56=StockSharpMD52=20160505-12:20:02.33134=198=0108=60141=Y553=quik554=quik10=157^ 2016/05/05 15:20:02.334|Debug |Quik LUA. Transactions|To server: 8=FIX.4.49=9535=A49=quik56=StockSharpTS52=20160505-12:20:02.33134=198=0108=60141=Y553=quik554=quik10=179^ 2016/05/05 15:20:03.557| |Quik LUA. Market data|From server: Logon 2016/05/05 15:20:03.557| |Quik LUA. Transactions|From server: Logon 2016/05/05 15:20:03.572|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=5935=A49=quik56=StockSharpTS52=20160505-12:20:03.55434=110=067' 2016/05/05 15:20:03.572|Debug |Quik LUA. Market data|Сессия 'server'. Получено: '8=FIX.4.09=5935=A49=quik56=StockSharpMD52=20160505-12:20:03.55434=110=045' 2016/05/05 15:20:03.555|Debug |QuikTrader|BP:Connect,T(L)=2016.05.05 15:20:03.564 2016/05/05 15:20:03.564|Debug |QuikTrader|BP:Connect,T(L)=2016.05.05 15:20:03.565 2016/05/05 15:20:03.579|Debug |Quik LUA. Market data|To server: 8=FIX.4.49=7835=x49=quik56=StockSharpMD52=20160505-12:20:03.57834=2320=55202176559=410=244 2016/05/05 15:20:03.580|Debug |Quik LUA. Transactions|To server: 8=FIX.4.49=11735=AN49=quik56=StockSharpTS52=20160505-12:20:03.58134=2710=55202177724=0715=20160505 12:05:0360=12:20:03.58110=120 2016/05/05 15:20:03.581|Debug |Quik LUA. Transactions|To server: 8=FIX.4.49=7935=AF49=quik56=StockSharpTS52=20160505-12:20:03.58134=3584=55202178585=710=037 2016/05/05 15:20:03.603| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 15:20:03.618|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=15935=AP49=quik56=StockSharpTS52=20160505-12:20:03.60034=2710=552021771=104231581=3728=055=StockSharpMoney753=3708=300000707=SMTM708=300000707=CRES10=208' 2016/05/05 15:20:03.599|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 15:20:03.616,T(S)=2016.05.05 15:20:03.600,P=104231,Changes=[BeginValue, 300000],[CurrentValue, 300000] 2016/05/05 15:20:03.619| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 15:20:03.619|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=13635=AP49=quik56=StockSharpTS52=20160505-12:20:03.60634=3710=552021771=104231581=3728=055=StockSharpMoney207=MICEX15=RUB753=010=131' 2016/05/05 15:20:03.619| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 15:20:03.619|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=11935=AP49=quik56=StockSharpTS52=20160505-12:20:03.60934=4710=552021771=104231581=3728=055=StockSharpMoney753=110=175' 2016/05/05 15:20:03.619| |Quik LUA. Transactions|From server: PositionReport 2016/05/05 15:20:03.621|Debug |Quik LUA. Transactions|Сессия 'server'. Получено: '8=FIX.4.09=16035=AP49=quik56=StockSharpTS52=20160505-12:20:03.60934=5710=552021771=104231581=3728=0660=055=LKOH167=CS702=2703=SOD706=1704=0703=EP706=1704=010=156' 2016/05/05 15:20:03.616| |QuikTrader|Создан новый портфель 104231. 2016/05/05 15:20:03.616|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 15:20:03.619,T(S)=2016.05.05 15:20:03.606,P=104231,Changes=[Currency, RUB] 2016/05/05 15:20:03.619|Debug |QuikTrader|BP:PortfolioChange,T(L)=2016.05.05 15:20:03.619,T(S)=2016.05.05 15:20:03.609,P=104231,Changes= 2016/05/05 15:20:03.619|Debug |QuikTrader|BP:Position,T(L)=2016.05.05 15:20:03.620,Sec=S#:LKOH@, Native:,Type:Stock,P=104231 2016/05/05 15:20:03.621|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 15:20:03.621,T(S)=2016.05.05 15:20:03.609,Sec=S#:LKOH@, Native:,Type:Stock,P=104231,Changes=[BeginValue, 0] 2016/05/05 15:20:03.621|Debug |QuikTrader|BP:PositionChange,T(L)=2016.05.05 15:20:03.621,T(S)=2016.05.05 15:20:03.609,Sec=S#:LKOH@, Native:,Type:Stock,P=104231,Changes=[CurrentValue, 0] 2016/05/05 15:20:03.785| |Quik LUA. Market data|From server: SecurityList ... ... ... 2016/05/05 15:20:50.121| |QuikTrader|RegisterOrder: 0/ Покупка Цена=0,01 Объем=50 Сост=None Бал=0 2016/05/05 15:20:50.132|Debug |QuikTrader|BP:Execution,T(L)=2016.05.05 15:20:50.121,T(S)=0001.01.01 00:00:00.000,(Order),Sec=S#:SBER@QJSIM, Native:,Type:Stock,Ord=/55202179/55202179,Fail=,TId=,Pf=104231,TPrice=,UId= 2016/05/05 15:20:50.132| |QuikTrader|New order: 55202179/ Покупка Цена=0.01 Объем=50 Сост=Pending Бал=50

2016/05/05 15:20:51.066| |QuikTrader|Order changed: 55202179/2495654713 Покупка Цена=0.01 Объем=50 Сост=Done Бал=0 2

так выставляю заявки при работе с новой и старой версией соответственно ![![](http://i9.pixs.ru/storage/2/8/6/newquikjpg_8289571_21816286.jpg]([]новый quik) ![](http://i11.pixs.ru/storage/3/0/9/oldquikjpg_9065873_21816309.jpg]старый quik)

shipa988
shipa988

сами файлы

Mikhail Sukhov
Mikhail Sukhov

shipa988: сами файлы

t["ACCOUNT"] = "S0-USA"
t["CLASSCODE"] = "TQBR"
t["SECCODE"] = "SBER"
t["QUANTITY"] = "50"
t["CLIENT_CODE"] = "50950"
t["EXPIRY_DATE"] = "GTC"
t["OPERATION"] = "B"
t["TYPE"] = "M"
t["ACTION"] = "NEW_ORDER"
t["PRICE"] = "0"
t["EXECUTION_CONDITION"] = "PUT_IN_QUEUE"
t["TRANS_ID"] = "55599460"

Это транзакция. И дальше вам ответ от Квика, что неверно указан номер счета. Что не так - это вам к Арке или брокеру. S# корректно все данные отправил в терминал и корректно получил по ним ответ.

Gavrus
Gavrus

Кто в курсе, подскажите, пожалуйста. При использовании старого подключения к Quik по DDE, раньше до версии 4.3.13 все работало, все таблицы нормально из квика экспортировались, но с версии 4.3.14 экспорт из квика по DDE запускается а в QuikTrader они не поступают (((( В чем проблема??? Этот функционал не работает в ПРИМЕРАХ!

Slepoy
Slepoy Autor

Gavrus: Кто в курсе, подскажите, пожалуйста. При использовании старого подключения к Quik по DDE, раньше до версии 4.3.13 все работало, все таблицы нормально из квика экспортировались, но с версии 4.3.14 экспорт из квика по DDE запускается а в QuikTrader они не поступают (((( В чем проблема??? Этот функционал не работает в ПРИМЕРАХ!

Я бы на твоём месте забил на ДДЕ, и начал бы перебираться на ЛУА. Походу всё идёт к тому, что ДДЕ скоро вообще полноcтью выпилят из API. Поддерживать устаревший и неудобный коннектор "ДДЕ+библиотека_транзакций" - это лишние трудо/время/бабло-затраты. Я бы на их месте ДДЕ - полностью бы выпилил.

daniil.tr
daniil.tr

День добрый. При использовании примера Quik для подключения к бирже по протоколу FIX получаю непонятную ошибку "Value is empty"

2016/05/10 17:09:21.709|       |Quik LUA. Market data|Connect to Unspecified/api.okcoin.cn:9880...
2016/05/10 17:09:22.100|       |Quik LUA. Market data|Connect to Unspecified/api.okcoin.cn:9880 is OK.
2016/05/10 17:09:22.101|       |Quik LUA. Market data|Sending logon to Unspecified/api.okcoin.cn:9880...
2016/05/10 17:09:22.101|       |Quik LUA. Market data|Logon sent to Unspecified/api.okcoin.cn:9880 OK.
2016/05/10 17:09:22.101|       |Quik LUA. Market data|Start message processing.
2016/05/10 17:09:22.101|Debug  |Quik LUA. Market data|To server: 8=FIX.4.4^9=183^35=A^49=тут_мой_apiKey^56=OKSERVER^52=20160510-14:09:22.101^34=1^98=0^108=60^141=Y^553=тут_мой_apiKey^554=тут_мой_secretKey^10=170^
2016/05/10 17:09:22.900|Error  |Quik LUA. Market data|System.InvalidOperationException: Value is empty.
   в StockSharp.Fix.Native.TextFixReader.ReadTag()
   в #=qfRZ7pemjxpoxPmObVEtIBevMOyapMU_VyornAvZTO0ahyDqZVsf9rv_PEclzz1MA.#=qgSGR1SDFtSJUIe7X8zQRtA==(IFixReader #=q2nUiutBfR3eEUh$g9VIiog==, FixTags #=qyAk4CplYsCM0dwrEZFWo1g==)
   в #=qfRZ7pemjxpoxPmObVEtIBevMOyapMU_VyornAvZTO0ahyDqZVsf9rv_PEclzz1MA.#=q0GRsD49WfcxbovznA_zmCg==(IFixReader #=q2nUiutBfR3eEUh$g9VIiog==, Boolean #=qH4GbWm32Qz5RrC_8REtIYEF$4P06GyVkVvT0r7inCME=, String #=qf0AhNgro1T3fdZ_Bb39oHvb06UnwOVzcKNFbiV4WruU=)
   в StockSharp.Fix.Dialects.BaseDialect.#=qIArNFQzajJFGrfxlNMukiveeY00y8P2AH72zybI1DibwwcTDMHW3BJOHjCBxZK5I()
   в StockSharp.Fix.FixMessageAdapter.#=q6swou73IYqd_6BZJhaj5HnS_D9hOtWLhD3osscl99dY=()

Тоже самое при использовании коннектора FIX в S#.Designer

07:09:41.644|       |FIX       |Connect to Unspecified/api.okcoin.com:9880...
07:09:42.282|       |FIX       |Connect to Unspecified/api.okcoin.com:9880 is OK.
07:09:42.283|       |FIX       |Sending logon to Unspecified/api.okcoin.com:9880...
07:09:42.289|       |FIX       |Logon sent to Unspecified/api.okcoin.com:9880 OK.
07:09:42.290|       |FIX       |Start message processing.
07:09:42.290|Debug  |FIX       |To server: 8=FIX.4.4^9=183^35=A^49=тут_мой_apiKey^56=OKSERVER^52=20160510-14:09:42.301^34=1^98=0^108=60^141=Y^553=тут_мой_apiKey^554=тут_мой_secretKey^10=174^
07:09:42.853|Error  |FIX       |System.InvalidOperationException: Value is empty.
   at StockSharp.Fix.Native.TextFixReader.ReadTag()
   at #=qjcT_UIgnP6ct_8MlSJzskygE6_7pKDeVFDL8TazXe3jwu0vjz1tfLwP8yKUs8CKf.#=q7DNsH2BfhTAZ62x_nJ4yvw==(IFixReader #=qWClUTYppieHCCFUE17PPsA==, FixTags #=qRivLCfBsSqVVqvJFVrcByw==)
   at #=qjcT_UIgnP6ct_8MlSJzskygE6_7pKDeVFDL8TazXe3jwu0vjz1tfLwP8yKUs8CKf.#=qP$RDNtHVUjZjqK0v4gNDcQ==(IFixReader #=qWClUTYppieHCCFUE17PPsA==, Boolean #=q2TxyjlA$EpSYr0SSJLBtJkPog3yNlztOjMLZB0Cl0Rg=, String #=qDVBLmRjIXvz$8vd$MGLUwsZLAGAkQIbLmA9fILFZV20=)
   at StockSharp.Fix.Dialects.BaseDialect.#=qGKC61oyjqwiWbG1NxVPW74z9sTe8CEKazn3PrVBDqL4RUK5gwTnQoR7lQRnsxOKW()
   at StockSharp.Fix.FixMessageAdapter.#=qMnHVF443p6vFEntqz22V_mofNpmLxVpg9xIMaWn5ohk=()
07:09:42.855|Debug  |FIX       |Session 'api.okcoin.com:9880 Sender тут_мой_apiKey Target OKSERVER'. Received: ''
07:09:42.855|Error  |BasketMessageAdapter|Connection error for FixMessageAdapter: System.InvalidOperationException: Value is empty.
   at StockSharp.Fix.Native.TextFixReader.ReadTag()
   at #=qjcT_UIgnP6ct_8MlSJzskygE6_7pKDeVFDL8TazXe3jwu0vjz1tfLwP8yKUs8CKf.#=q7DNsH2BfhTAZ62x_nJ4yvw==(IFixReader #=qWClUTYppieHCCFUE17PPsA==, FixTags #=qRivLCfBsSqVVqvJFVrcByw==)
   at #=qjcT_UIgnP6ct_8MlSJzskygE6_7pKDeVFDL8TazXe3jwu0vjz1tfLwP8yKUs8CKf.#=qP$RDNtHVUjZjqK0v4gNDcQ==(IFixReader #=qWClUTYppieHCCFUE17PPsA==, Boolean #=q2TxyjlA$EpSYr0SSJLBtJkPog3yNlztOjMLZB0Cl0Rg=, String #=qDVBLmRjIXvz$8vd$MGLUwsZLAGAkQIbLmA9fILFZV20=)
   at StockSharp.Fix.Dialects.BaseDialect.#=qGKC61oyjqwiWbG1NxVPW74z9sTe8CEKazn3PrVBDqL4RUK5gwTnQoR7lQRnsxOKW()
   at StockSharp.Fix.FixMessageAdapter.#=qMnHVF443p6vFEntqz22V_mofNpmLxVpg9xIMaWn5ohk=()
07:09:42.855|Error  |Connector |System.InvalidOperationException: Value is empty.
   at StockSharp.Fix.Native.TextFixReader.ReadTag()
   at #=qjcT_UIgnP6ct_8MlSJzskygE6_7pKDeVFDL8TazXe3jwu0vjz1tfLwP8yKUs8CKf.#=q7DNsH2BfhTAZ62x_nJ4yvw==(IFixReader #=qWClUTYppieHCCFUE17PPsA==, FixTags #=qRivLCfBsSqVVqvJFVrcByw==)
   at #=qjcT_UIgnP6ct_8MlSJzskygE6_7pKDeVFDL8TazXe3jwu0vjz1tfLwP8yKUs8CKf.#=qP$RDNtHVUjZjqK0v4gNDcQ==(IFixReader #=qWClUTYppieHCCFUE17PPsA==, Boolean #=q2TxyjlA$EpSYr0SSJLBtJkPog3yNlztOjMLZB0Cl0Rg=, String #=qDVBLmRjIXvz$8vd$MGLUwsZLAGAkQIbLmA9fILFZV20=)
   at StockSharp.Fix.Dialects.BaseDialect.#=qGKC61oyjqwiWbG1NxVPW74z9sTe8CEKazn3PrVBDqL4RUK5gwTnQoR7lQRnsxOKW()
   at StockSharp.Fix.FixMessageAdapter.#=qMnHVF443p6vFEntqz22V_mofNpmLxVpg9xIMaWn5ohk=()

В чем может быть проблема? Что я делаю не так? Непонятно в какую сторону копать...

Mikhail Sukhov
Mikhail Sukhov

QuikTrader может подключаться только к терминалу. FixTrader к бирже напрямую, но это уже платный коннектор https://stocksharp.ru/pricing/

daniil.tr
daniil.tr

Михаил, спасибо за ответ. Подскажите еще пожалуйста, в S#.Designer коннектор FIX тоже платный?? Есть ли какая-то триал/демо версия FixTrader для пробы? А то не хочется брать кота в мешке ))

Mikhail Sukhov
Mikhail Sukhov

daniil.tr: Михаил, спасибо за ответ. Подскажите еще пожалуйста, в S#.Designer коннектор FIX тоже платный?? Есть ли какая-то триал/демо версия FixTrader для пробы? А то не хочется брать кота в мешке ))

Стоимость коннектора не зависит от того, где он используется. Но в Дизайнере пока нет фичи live подключения к торгам вообще. Только бэктест.

risty
risty

http://stocksharp.ru/forum/5378/DevExpress-Xpf-Core-v15-2/ вот эта тема имеет место быть.

agat50
agat50

risty: http://stocksharp.ru/forum/5378/DevExpress-Xpf-Core-v15-2/ вот эта тема имеет место быть.

+1, тоже встретил. Со SmartCom коннектором какие-то проблемы постоянные, примеры SampleSmartCandles SampleSmartSMA не работают нормально (не подгружаются инструменты например), на 3.13 нормально, пришлось откатиться.

risty
risty

Мужчины, какой самый элегантный способ переноса заявок через клиринг? Мне в голову приходит подписаться на OrderChanged, посмотреть что там произошло в клиринг(баланс, цена, направление снятых заявок) Событие же будет вызвано при снятии заявок биржей? И восстановить заявки по приходу первой пришедшей сделке после клиринга. Или есть какие-то другие проверенные и более элегантные способы?

Slepoy
Slepoy Autor

Инфа для пользователей сидящих на API 4.3.14.2. Настоятельно рекомендую обновится до новой версии API 4.3.15, которая вышла на этой неделе: https://github.com/StockSharp/StockSharp/releases В версии API 4.3.14.2 есть баг в Менеджере Позиции, конкретно при расчёте позиции исходя из реализованного объёма заявки, т.е. когда мы создаём объект передавая его конструктору true, т.е. пишем "new PositionManager(true)". Тем самым мы устанавиваем свойство byOrders в значение true. И если у вас где-то в коде используется именно такая запись "new PositionManager(true)" то ждите беду, у вас будет неверно подсчитыватся позиция. Дело в том, что в версии API 4.3.13 было вообще два отдельных метода, один расчитывал позицию по заявкам, т.е. для объекта "new PositionManager(true)", другой же метод расчитывал позицию по сделкам, т.е. для объекта "new PositionManager(false)". В версии API 4.3.14.2 эти два метода свели в один ProcessMessage() в котором и допустили косяк. Причём косяк лишь для расчёта по заявкам, при расчёте по сделкам всё работает как надо. То есть, если вы создали объект "new PositionManager(false)", то всё работает хорошо, позиция подсчитывается верно. Но если вы создали объект "new PositionManager(true)" то позиция будет почти всегда меньше реальной. Я этот косяк заметил где-то с полмесяца назад, когда изучал видеоуроки, конкретно "Урок 3. Часть 2. Strategy Rule", где была элементарная стратегия, которая должна была набрать определённную лонговую позу единичными заявками. Так вот, стратегия почти всегда перебирала больше чем надо. К примеру, ставим набрать 10 лотов, так стратегия реально наберёт то 12, то 13, то 14, то 21. И вся проблема была именно в том, что в класс Strategy не умеет создавать объект "new PositionManager(false)", в исходниках жестко приписана строчка "private IPositionManager _positionManager = new PositionManager(true);". То есть, нет возможности вручную изменить способ расчёта позиции. Чтобы создать своего Менеджера Позиции со свойством byOrders= false, мне пришлось ещё и переопределять метод OnNewMyTrades(), брать коллекцию моих пришедших сделок, перебирать её, и для каждую сделку ковертировать в объект-сообщение, и передавать его методу ProcessMessage(). В обещем, косяк разработчики заметили и поправили в новом API 4.3.15. Плохо лишь одно, что я на решение проблемы убил неделю-полторы времени, и когда я хотел уже пожаловаться отдельным постом, то тут и вышел новый API ))). Я даже картинку заготовил и всё в пустую ))). Кому интересно, картинка тута: http://i9.pixs.ru/storage/7/9/8/314h10jpg_2030394_22379798.jpg http://i9.pixs.ru/storage/7/9/8/314h10jpg_2030394_22379798.jpg

<mark>Просьба к разработчикам.</mark> В новом API ввести в класс Strategy свойство byOrders, чтобы пользователь при создании объекта стратегии мог бы сам выбирать метод расчёта позы: по заявкам/по сделкам. То есть, записать так: private IPositionManager _positionManager = new PositionManager(byOrders); Можете byOrders сразу установить true, чтобы ни у кого не полетели роботы. И кому надо, те при создании объекта стратегии сами сменят данное свойство на false. Тем более, текущие исходники даже менять не нужно, ибо уже текущий код в классе Strategy поддерживает это, он фактически сейчас даже избыточен. Исходники уже учитывают отправку методу обектов-сообщений на основе сделок "PositionManager.ProcessMessage(trade.ToMessage());". То есть все уже и так готово. Делать практически ничего не нужно - лишь добавить свойство byOrders.

Kudryavtsev
Kudryavtsev

В этой версии библиотек у меня "не работают" ваши примеры SimpleHistoryTesting и SimpleRandomEmulation (другие не смотрел). Компилируются и запускаются без проблем, но при нажатии кнопки Старт 🤨.