2021-07-19 10:40:57.043 【远程】远程预警单 AG12 类型平多 量2
2021-07-19 10:40:57.044 【下单】AG12 价5348.000000 量2 买卖1 类型0 开平1 账户17708496754 Formula 1
2021-07-19 10:40:57.045 【下单】AG12 价5348.000000 量1 买卖1 类型0 开平2 账户17708496754 Formula 1
2021-07-19 10:40:57.045 【下单】已提交,订单ID :319227896
2021-07-19 10:40:57.046 【下单】已提交,订单ID :319227897
2021-07-19 10:40:57.123 【指令】收到回报指令 ID = 319227896
2021-07-19 10:40:57.123 【回报】17708496754 : AG12 - 已报单 1 价格:5348 平 卖
2021-07-19 10:40:57.125 【指令】收到Order回报指令 ID = 319227896 Status = 3
2021-07-19 10:40:57.126 【指令】收到成交回报指令 ORDERID = 319227896
2021-07-19 10:40:57.126 【回报】17708496754 : ag2112 - 已成交 1 价格:5351 平 卖
2021-07-19 10:40:57.127 【回报】17708496754 : ag2112 - 全部成交 1
2021-07-19 10:40:57.152 【指令】平仓计量 EBuy:0 ESell:0
2021-07-19 10:40:57.186 【指令】报单被拒 ID = 319227897
2021-07-19 10:40:57.187 【回报】17708496754 : ag2112 - 平仓量超过持仓量
2021-07-19 10:40:57.187 【下单】下单交易失败。
2021-07-19 10:40:57.187 【回报】品种 AG12 委托价格 0 委托下单数量小于1
远程预警是平2手多单~而帐户实际持仓只有1手多单~
VBA的代码修正~如果平仓量超过持仓量导致下单被拒~就按照持仓量平仓~
以上orderlog显示一下VBA代码运行正常~
操作结果就是平1手
[Visual Basic] 复制代码
Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
Result = Order.HoldingInfoByCode2(Code,Market,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,"17708496754")
Set Report1 = MarketData.GetReportData(Code,Market)
if Status="Inactive" then
if aspect=0 then
if SellHolding>=(Filled+Remaining) then
ss = (Filled+Remaining)
Else
ss = SellHolding
end if
if kaiping>0 then order.sellshort 1,ss,Price,0,code,market,"17708496754",0
end if
if aspect=1 then
if BuyHolding>=(Filled+Remaining) then
ss = (Filled+Remaining)
Else
ss = BuyHolding
end if
if kaiping>0 then order.sell 1,ss,Price,0,code,market,"17708496754",0
end if
'Application.MsgOut aspect
'Application.MsgOut BuyHolding
'Application.MsgOut ss
'Application.MsgOut kaiping
end if
end sub
2021-07-19 09:09:08.910 【远程】远程预警单 AP10 类型平多 量5
2021-07-19 09:09:08.917 【下单】AP10 价6098.000000 量5 买卖1 类型0 开平1 账户100588 Formula 1
2021-07-19 09:09:08.923 【下单】确认报单已发送 ID=-946135110 RefID = 5670
2021-07-19 09:09:08.927 【回报】100588 : AP110 - CTP:平仓量超过持仓量
2021-07-19 09:09:08.933 【下单】下单交易失败。
2021-07-19 09:09:08.937 【回报】品种 AP10 委托价格 0 委托下单数量小于1
但是同样的VBA代码在另外一台云主机上~
远程预警是平5手ap10的多单~实际持仓只有4手ap10的多单
结果就是下单交易失败~没跟单
是不是VBA没有检测到下单被拒所以没平掉可用的实际持仓??
|