您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

请教版主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的回测中本来就存在这样的问题?

    非常感谢啊

【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容