关于Buy、Sell图表交易总是以对手价成交,而不是挂单价的问题。
首先,我说明下我交易的要求:
(1)我交易的品种价格变化不是很剧烈,我的策略交易次数比较多,因此对滑点比较敏感;
(2)我期望最终能以我的挂单价成交,尽量不要去撮合成交,我在交易助手里面设置了,挂单一段时间后不成交就撤单。平仓单则是挂单一段时间不成交之后再按照现价重新挂单。
(3)因此我在策略单元设置里面:滑点为0跳,委托偏移为0跳。
我的开平仓代码很简单,条件满足的情况下,以Bar的open价报单委托:
OnBarOpen(ArrayRef<Integer> indexs)
{
//平仓
If( pd ) Sell(OpenSize,Open);
If( pk ) BuyToCover(OpenSize,Open);
//开仓
If( kd ) Buy(OpenSize,Open);
If( kk ) SellShort(OpenSize,Open);
}
按理说open价是当前bar的第一个成交价,我希望就以open价委托,但是我实盘成交价从来都不是,都是以对手价,这导致我的每一次开仓和平仓都损失掉一跳,因为我的交易次数比较多,这样的损失对我比较大。
我之前为这个问题问过在线客服,给我的解释是偷价,成交单要综合考虑委托时间和委托价格,你们这个解释我认可。
我想问下,Buy、sell图表交易系统能不能实现我的目的,就以我指定的open价委托,不成交就等等,等待超过一段时间就撤单,系统不要去撮合成交。或者还是必须使用A_sendorder。
多谢这位兄台,您的解释很有道理啊,我尝试一下,非常感谢您。
我开交易助手撤单,是想超过一定时间就委托不成功撤单,平仓单长时间不成交就得修改委托价格。所以交易助手还是很重要的。开仓单委托不成功无法成交没关系,可以撤单。现在的问题就是您所说的一直在追单,追单对我的损失更大。
我还在Oninit里面加上了:SetOrderPriceOffset(0);
SetSlippage(Enum_Rate_PointPerHand,0);
这是交易助手里面的设置,开仓单委托成功后240秒不成交就撤单;
平仓单185秒不成交按最新价重新委托。
我感觉就是每一单都在追单,这个交易助手好像根本没起作用。