请教版主V3问题~ - TradeBlazer公式 [开拓者 TB]
- 咨询内容:
请问版主:
在V3中
我的程序如下:
MA5=Average(close,5);
MA10=Average(close,10);
if(MA5>MA10 && ( MarketPosition == 0 || MarketPosition == -1))
{
Buy(10,Close,True);
}
正常的情况下,应该是只有当“当前bar的最后一个收盘价”满足MA5>MA10 时,然后按照“当前bar的最后一个收盘价”发送委托指令,所以在回测的交易记录中,成交价格应该是"满足条件的bar的最后一个收盘价"
我的问题是:为什么回测记录中,成交价格有时是"满足条件的bar的最后一个收盘价",有时却是"满足条件的bar的下一个bar的开盘价"?(PS:我的开仓条件和委托价格都没有用到open或者nextopen),能否解释一下吗,谢谢! - TB技术人员:
Buy(10,Close,True);
LZ看看说明文件把,你这样写,就是延迟到下一根BAR发单,下一根BAR的第一个TICK上,OPEN就是CLOSE。。。。
不知道我这样想是不是对的 - TB客服:
本帖最后由 mars622160 于 2011-8-15 16:14 编辑
回复 2# alex647l
要是记录全部是延迟到下一根bar的open也就没有什么问题了,关键是回测记录显示:有时是用"满足条件的bar的最后一个收盘价"开仓,有时却是用"满足条件的bar的下一个bar的开盘价"开仓,这个相当无语啊。。。到底延迟不啊?? - 网友回复:
回复 3# mars622160
试试
if(cond[1])
buy(1,close[1]) - 网友回复:
本帖最后由 mars622160 于 2011-8-15 19:01 编辑
回复 4# lh948
用您的这个语句肯定是按照当前bar的上一个bar的最后收盘价开仓啊,因为你限制为:buy(1,close[1]),我想知道我写法的问题,版主能否解答,还是TB的回测中本来就存在这样的问题?
非常感谢啊
相关文章
-
没有相关内容