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

请问版主关于数据叠加的问题 - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 本帖最后由 mars622160 于 2012-3-21 21:53 编辑

    版本:TBV4.2.5

    问题:如果我发信号的合约为IF000(数据为data0),交易合约为当月连续(标记为data1),条件如下:

    if (con[1]=true) //con[1]用data0计算出
    {
    buy(lots,data1.close[1])
    }

    请问
    1.按照上述语句,发单会以“data1.close[1]“的价格在当月合约上发单吗?
    2.如果上述程序不会在当月合约(data1)上发单,而是在IF000(data0)上发单,应该如何更改程序使得发单在当月合约?(注意:不想通过“将商品0的讯号映射到商品1”来实现,想纯粹从程序角度)

    非常感谢!

     

  • TB技术人员: 回复 1# mars622160


    1.不能对当月合约进行发单
    2. 可以尝试改为
    1. if(con[1]==true)
    2.      {
    3.           data1.buy(lots,data1.open);
    4.       }
    复制代码

     

  • TB客服: 本帖最后由 mars622160 于 2012-3-24 22:47 编辑

    回复 2# 小米

    谢谢,再请教两个问题:

    (1)以下写法是否可以呢:

    if(con[1]==true)
         {
              data1.buy(lots,data1.close[1]);
          }



    (2) “data1.buytocover(lots,0);”是指按照当月合约(data1)的现价发单吗?(PS:会不会是data0的现价呢?)




    (3)在数据叠加时,"data0.MarketPosition“和"data1.MarketPosition“有何区别?我如果用data0发信号,然后用data1交易,则应该用以下哪种写法?

    写法1:
    if(con[1]==true && MarketPosition == -1)//注意:con[1]是用data0的数据计算
         {
              data1.buy(lots,data1.Open);
          }

    写法2:
    if(con[1]==true && Data1.MarketPosition == -1)//注意:con[1]是用data0的数据计算

         {
              data1.buy(lots,data1.Open);
          }



    非常感谢您!

     

  • 网友回复: 回复 2# 小米

    版主能否回答,非常感谢您!

     

  • 网友回复: 回复 3# mars622160


        1.这样的写法在语法上是没有错的。但是使用上一个BAR的价格来发单 ,这样合理吗?易于成交吗?建议这里使用当前BAR的Open价。
        2.这样写就是使用data0的价格去发单了。
        3.你本身都是对data1进行发单的,信号是标是在data1上的,自然marketposition也要判断data1上的才是,使用第2种写法才是合理的。

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

相关文章

    没有相关内容