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

开拓者 TB关于公式计算差别问题, 急等回复! [开拓者 TB]

 

  • 咨询内容: 我回测的公式用的(crossover(j1,j2)为条件,j1、j2都为X[1],Sell(1,Open)发单。平仓条件为close

    如果改为实盘公式,是否必须改为Sell(1,close[1])发单,平仓改为close[1]判断平仓。但是这样改后回测区别非常大,如何处理?怎么才是对的?在线等回复。

     

  • TB技术人员: 抱歉呀。很难理解你的公式与文字所要表达的意义。
    或者你就直接贴部分代码,我们通道代码来判断吧。

     

  • TB客服: long_sig=(e1[2]<e2[2] && e1[1]>e2[1]);
    short_sig=( e1[2]>e2[2] && e1[1]<e2[1] );
    long_sig_cover=( Close<Close[1]);//实盘是否=( Close[1]<Close[2])
    short_sig_cover=(Close>Close[1]);//实盘是否=( Close[1]>Close[2])
           
           
            if(CurrentContracts>0)//
           
            {
                    if((Low<(GetGlobalVar(0)-stoploss)))
                            Sell(1,GetGlobalVar(0)-stoploss);       
                   
                    if(long_sig_cover  )//
                            Sell(1,Close);//实盘close[1]?       
            }
                   
           
           
            if(CurrentContracts<0)//CurrentContracts
            {
                    if((High>(GetGlobalVar(0)+stoploss)))
                            BuyToCover(1,GetGlobalVar(0)+stoploss);

                    if(short_sig_cover )//
                            BuyToCover(1,Close[1]);       
            }
                     if(long_sig &&  CurrentContracts==0)//
            {
                    buy(1,Open);
                    SetGlobalVar(0,Open);//实盘close[1]
            }        
            if(short_sig &&  CurrentContracts==0)
            {
                    SellShort(1,Open);
                    SetGlobalVar(0,Open);
            }

     

  • 网友回复: e1[2]<e2[2] && e1[1]>e2[1];J1=E1[1];J2=E2[1]是否=(crossover(j1,j2))

     

  • 网友回复:
    晴朗 发表于 2012-12-21 12:16
    long_sig=(e1[2]e2[1]);
    short_sig=( e1[2]>e2[2] && e1[1]0)//
           


    使用close确实有信号消失的可能性。换成close[1]可避免此情况 。
    另,你可以使用序列变量来记录开仓价从来确定止损或止赢点,不必要使用全局变量。

 

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

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容