-- 作者:jim5jim
-- 发布时间:2011/9/7 16:50:15
-- 求助:后台程序发送监控邮件的代码编写,多谢
金字塔2.64专业版Orderqueue下单方式出现资金不足的问题。 基本情况:总资金可下4手,采用前台图表交易轮询方式,两个模型,其中A模型下单1手,B模型下单两手。 出错时的情形:A模型已持仓1手空单,B模型持仓2手空单。B模型在14:40平仓反手,结果平仓单未及时成交,需要追单,然后就出现资金不足,最终结果是平仓单成功,反手单没成功.
从交易日志看出在平仓单撤单并发出追单后(注1和注2两行),就认为第一条交易指令已完成,等待下单的队列中数据减少了一条(注3) 建议在追单成交后(注4的位置)才认定第一条交易指令完成,才招行下一条交易指令
顺祝金字塔越来越好
附:模型中的交易语句
hd1:=1*mindiff; if islastbar then begin 委托买:=c+hd1; 委托卖:=c-hd1; SELL( (sellcond or exittime or dtexit)\\HOLDING()>0,lot,limitr,委托卖),orderqueue ; SELLSHORT((buycond or exittime or ktexit)\\HOLDING()<0,lot,limitr, 委托买),orderqueue ; BUY(buycond\\HOLDING()=0 and entertime,lot,limitr,委托买),orderqueue ; BUYSHORT(sellcond \\HOLDING()=0 and entertime,lot,limitr, 委托卖),orderqueue; end;
交易日志 2011-09-07 14:40:08.248 【图表】IF09 运行完毕 2011-09-07 14:40:08.249 【图表】触发下单 SHELLSHORT 品种 IF09 2011-09-07 14:40:08.250 【图表】分品种下单调整后,系数1 2011-09-07 14:40:08.252 【图表】模型下单 2 2011-09-07 14:40:08.253 【图表】下单系数调整后 手数:2 2011-09-07 14:40:08.255 【图表】实际持仓 -3 2011-09-07 14:40:08.256 【图表】至队列下单 2011-09-07 14:40:08.258 【图表】触发下单 BUY 品种 IF09 2011-09-07 14:40:08.260 【图表】分品种下单调整后,系数1 2011-09-07 14:40:08.261 【图表】模型下单 2 2011-09-07 14:40:08.263 【图表】下单系数调整后 手数:2 2011-09-07 14:40:08.264 【图表】至队列下单 2011-09-07 14:40:08.266 【图表】IF09 运行完毕 2011-09-07 14:40:08.267 【队列】当前队列准备处理数据:2条 2011-09-07 14:40:08.269 【队列】发送下单指令 2011-09-07 14:40:08.271 【下单】IF09 价2769.399902 量2 买卖0 类型0 开平2 账户60309168 Formula 1 2011-09-07 14:40:08.274 【队列】当前队列准备处理数据:2条 2011-09-07 14:40:08.275 【队列】当前有未处理队列,返回等待 2011-09-07 14:40:08.503 【回报】60309168 : IF1109 - 已报单 2 价格:2769.4 平 买 2011-09-07 14:40:09.262 【图表】IF09 运行完毕 ...................... 2011-09-07 14:40:14.332 【图表】IF09 运行完毕 2011-09-07 14:40:15.052 【追单】追单队列 撤单操作 订单号:-1329396273 2011-09-07 14:40:15.053 【追单】发送了首次追单下单指令到队列 2011-09-07 14:40:15.213 注1【回报】60309168 : IF1109 - 已撤单 2011-09-07 14:40:15.220 注2【下单】IF09 价2770.000000 量2 买卖0 类型0 开平1 账户60309168 Formula 1 i 2011-09-07 14:40:15.221 注3【队列】当前队列准备处理数据:1条 2011-09-07 14:40:15.222 【队列】发送下单指令 2011-09-07 14:40:15.223 【下单】IF09 价2769.399902 量2 买卖0 类型0 开平0 账户60309168 Formula 1 2011-09-07 14:40:15.225 【追单】撤单成功,发送追单指令 2011-09-07 14:40:15.264 【回报】60309168 : IF1109 - 已报单 2 价格:2770.0 平 买 2011-09-07 14:40:15.271 【回报】60309168 : IF1109 - 综合交易平台:资金不足 2011-09-07 14:40:15.346 【图表】IF09 运行完毕 2011-09-07 14:40:15.347 【图表】IF09 运行完毕 2011-09-07 14:40:16.022 【回报】60309168 : IF1109 - 已成交 1 价格:2770.0 平 买 2011-09-07 14:40:16.360 【图表】IF09 运行完毕 2011-09-07 14:40:16.361 【图表】IF09 运行完毕 2011-09-07 14:40:16.720 注4【回报】60309168 : IF1109 - 已成交 1 价格:2770.0 平 买 2011-09-07 14:40:17.374 【图表】IF09 运行完毕 2011-09-07 14:40:17.375 【图表】IF09 运行完毕
|
-- 作者:fly
-- 发布时间:2011/9/7 17:01:37
--
您好,这,不是BUG.ORDERQUEUE只是保证顺序下委托单,并不能保证顺序成交
orderqueue 顺序下单
功能描述:有A和B两个单子,A在队列前面,B紧跟A。只有当A单子有以下情况,才会下委托单B(1)收到成交回报;(2)下单失败;(3)撤单(一旦队列下单不成交撤单后,再次委托会将委托追单排到最后)。
|
-- 作者:jim5jim
-- 发布时间:2011/9/7 17:31:24
--
学习了楼上的贴子,确实可以很好的避免出现问题,我准备用这个方式处理,谢谢!
另:
1 、tholding2是不是只有专业版才可以用,标准版用户仅仅为了实现满仓反手买一个专业版?
2、图表方式的虚拟持仓简洁好用,用tholding2还要考虑其受其它模型的影响,比如我就同时使用到两个模型,不能简单的使用tholding2=0来判断已成功平仓
3、orderqueue指令的最大作用就是在满仓反手的时候实现按序下单,如果追单时还是出现资金不足,这条指令等于是废了.
4、最根本的解决办法还是完善orderqueue的功能
[此贴子已经被作者于2011-9-7 17:41:42编辑过]
|