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

帮忙分析一下这个代码 [开拓者 TB]

  • 咨询内容: begin
    If( BarStatus==2)
      Buy(1,h);
    End

    如果进行自动交易,会发生什么?

     

  • TB技术人员: 它会在每个最新的bar上开仓一次,无限循环下去,且最新的信号替代前一个信号

     

  • TB客服:
    tianlan 发表于 2014-11-10 11:00
    它会在每个最新的bar上开仓一次,无限循环下去,且最新的信号替代前一个信号 ...

    是的,我也以为是这样,但模拟盘测试的结果却不是这样,只在模型启动自动化交易时发一次单,然后就不再发了,现在给弄糊涂了,到底tb的发单机制是怎样的?

     

  • 网友回复: 本帖最后由 tianlan 于 2014-11-12 11:01 编辑



    同一个bar 只发一次单?虽然模型是按tick 执行,bar 内可能多次满足条发单条件,是这样吗?版主。如果这样能解释一部分问题,但是我机器上到新bar 却不发单,这个还是无法解释,能否麻烦版主帮忙测试一下,这个发单问题真的很重要,多谢

     

  • 网友回复: 本帖最后由 小米 于 2014-11-11 11:23 编辑
    btzdpower 发表于 2014-11-10 16:55
    同一个bar 只发一次单?虽然模型是按tick 执行,bar 内可能多次满足条发单条件,是这样吗?版主。如果这 ...


    同一个bar内,条件满足的情况下,每一次运算都会执行到buy语句。但是,在启动自动交易的情况下,只有第一次执行到的buy语句才会发出委托单 。这个是会有内部机制来控制的,不会因为多次运算到buy而多次发单 的。
    你所提到的代码,只在发过一次委托后,信号会不断移向最新的K线,但不会再发出委托,其原因也与TB的机制有关。
    在新bar的第一个tick产生时,会将旧bar的最后一个K线与新bar的第一个tick做为同一个索引共同运算一次。
    此时,在该次运算上,旧bar已经发过委托单的内部索引会被传递记录到新的这个tick上,于是新bar上的信号也会被认为是已经委托交易过的,便不会再次发单了。。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容