我用下面的STP单交易EURUSD,我看到日志里写的发单价格是0.00000。
tBUYSHORT(1, TrdAmount, STP, BBR-0.0002-nTick*4, 0, sAccount);
我期望用STP单达到立即成交的目的,但是实际上没有。追了3次价才成交,滑价虽然不大,但是这个结果很让人困惑。
下面是交易日志截图。希望各位金友指点一下,怎么用STP指令达到立即成交的目的?
多谢啦!
2010-12-08 00:42:56.931 【后台】EURUSD 运行结束
2010-12-08 00:42:57.915 【后台】EURUSD TBuyShort 出现信号
2010-12-08 00:42:57.915 【后台】EURUSD TBuyShort 已成功触发下单操作 价格:1.333400 数量:600000 类型:2 账户:U66666 品种:EURUSD
2010-12-08 00:42:57.930 【后台】下单已发送
2010-12-08 00:42:57.930 【下单】EURUSD 价0.000000 量600000 买卖1 类型2 账户U66666 Formula 1
2010-12-08 00:42:57.930 【后台】EURUSD 运行结束
2010-12-08 00:42:58.055 【回报】U66666 : EURUSD - 已递交
2010-12-08 00:42:58.945 【后台】EURUSD 运行结束
2010-12-08 00:42:59.944 【后台】EURUSD 运行结束
2010-12-08 00:43:00.912 【后台】EURUSD 运行结束
2010-12-08 00:43:01.912 【后台】EURUSD 运行结束
2010-12-08 00:43:02.895 【追单】发送了首次追单下单指令到队列
2010-12-08 00:43:02.895 【追单】追单队列 撤单操作 订单号:377
2010-12-08 00:43:02.911 【后台】EURUSD 运行结束
2010-12-08 00:43:03.567 【回报】定单被取
2010-12-08 00:43:03.598 【回报】U66666 : EURUSD - 已撤单
2010-12-08 00:43:03.614 【下单】EURUSD 价1.333750 量600000 买卖1 类型0 账户U66666 Formula 1
2010-12-08 00:43:03.614 【追单】撤单成功,发送追单指令
2010-12-08 00:43:03.941 【后台】EURUSD 运行结束
2010-12-08 00:43:03.957 【回报】U66666 : EURUSD - 委托成功
2010-12-08 00:43:04.941 【后台】EURUSD 运行结束
2010-12-08 00:43:05.909 【后台】EURUSD 运行结束
2010-12-08 00:43:06.908 【后台】EURUSD 运行结束
2010-12-08 00:43:07.923 【后台】EURUSD 运行结束
2010-12-08 00:43:09.047 【后台】EURUSD 运行结束
2010-12-08 00:43:09.890 【追单】追单队列 撤单操作 订单号:378
2010-12-08 00:43:09.906 【后台】EURUSD 运行结束
2010-12-08 00:43:10.780 【回报】定单被取
2010-12-08 00:43:10.811 【回报】U66666 : EURUSD - 已撤单
2010-12-08 00:43:10.827 【下单】EURUSD 价1.333600 量600000 买卖1 类型0 账户U66666 Formula 1
2010-12-08 00:43:10.827 【追单】撤单成功,发送追单指令
2010-12-08 00:43:10.999 【后台】EURUSD 运行结束
2010-12-08 00:43:11.186 【回报】U66666 : EURUSD - 委托成功
2010-12-08 00:43:11.936 【后台】EURUSD 运行结束
2010-12-08 00:43:12.904 【后台】EURUSD 运行结束
2010-12-08 00:43:13.903 【后台】EURUSD 运行结束
2010-12-08 00:43:14.902 【后台】EURUSD 运行结束
2010-12-08 00:43:15.917 【后台】EURUSD 运行结束
2010-12-08 00:43:16.885 【追单】追单队列 撤单操作 订单号:379
2010-12-08 00:43:16.901 【后台】EURUSD 运行结束
2010-12-08 00:43:17.775 【回报】定单被取
2010-12-08 00:43:17.806 【回报】U66666 : EURUSD - 已撤单
2010-12-08 00:43:17.822 【下单】EURUSD 价1.333500 量600000 买卖1 类型0 账户U66666 Formula 1
2010-12-08 00:43:17.822 【追单】撤单成功,发送追单指令
2010-12-08 00:43:17.978 【后台】EURUSD 运行结束
2010-12-08 00:43:18.181 【回报】U66666 : EURUSD - 委托成功
2010-12-08 00:43:18.930 【后台】EURUSD 运行结束
2010-12-08 00:43:19.898 【后台】EURUSD 运行结束
2010-12-08 00:43:20.898 【后台】EURUSD 运行结束
2010-12-08 00:43:21.897 【后台】EURUSD 运行结束
2010-12-08 00:43:22.365 【回报】U66666 : EURUSD - 全部成交 价格:1.33350 卖 数量600000
2010-12-08 00:43:22.943 【后台】EURUSD 运行结束
tBUYSHORT(1, TrdAmount, STP, BBR-0.0002-nTick*4, 0, sAccount);
对于STP类指令,红色的 0 为止损限价,此处无用,应该忽略
请细看函数说明
正确的是
tBUYSHORT(1, TrdAmount, STP, BBR-0.0002-nTick*4, sAccount);
STP的意义
对于BUYSHORT指令,BBR-0.0002-nTick*4 应该低于现价,只要有BBR-0.0002-nTick*4或之下的成交,就按市价卖出
使用STP后,就不应该再来用追单来进行后续处理,否则就逻辑紊乱了。
如果楼主希望立即成交,应该使用MKT。
使用STP是等待某个价位后成交,不应该反复追单的
感谢 金字塔 和 admin 的大力帮助,明白很多了,先谢谢!
tBUYSHORT(1, TrdAmount, STP, BBR-0.0002-nTick*4, sAccount);
我的这个情况,有点象钓鱼:我认定还是下降趋势,所以等价格上升到BBR-0.0002的位置,就开空单。我让一些价位(nTick*4),希望能尽快成交。
RE:金字塔
BBR-0.0002-nTick*4 应该低于现价 ==》是的,当时的现价是BBR-0.0002,我在这个价格之下nTick*4(让4个最小变动) 。
RE:admin
使用STP后,就不应该再来用追单来进行后续处理,否则就逻辑紊乱了。==》上面日志里的追单,是金字塔的自动追单,我设置了5秒钟不成交,就启动追单。
总结:
看来,对于我的这种情况,更适合的“市价指令+追价设置”,因为STP实际上也是按市价发出委托单。
你们看对吗?
对于IB而言STP就是市价下单的。
如果希望是限价发出止损单,请使用STPLMT