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

请教各位高手一个简单策略的问题。 [开拓者 TB]

  • 咨询内容: 小弟是TB软件的初学者,以前学的是计算机专业,有一点编程基础,对TB的语言有点熟悉之后,自己根据网上的一个简单的思路,编写了一段TB代码。但是运行过程中有些问题不解,请教坛子里面的各位前辈和高手。

    思路内容: 系统描述:以10:00那根K线的开盘价作为基准线BaseLine,上下0.25%做为开仓线,10:05开始,如果CLOSE大于BaseLine*(1+0.0025)则开多,小于BaseLine则平仓;如果CLOSE小于BaseLine*(1-0.0025)则开空,大于BaseLine则平仓;14:00以后不再开仓;14:55平持仓。

    我编写的代码:
    Params
            Numeric lots(1);
        Numeric begins(10.00);
            Numeric notbef(10.05);
            Numeric notaft(14.00);
            Numeric ends(14.55);
    Vars
        NumericSeries BaseLine(0);
            NumericSeries ssetup(0);
            NumericSeries bsetup(0);
    Begin
       if(date != date[1])
       {
       baseline=0;
       }Else
       {
            if(time*100==begins)
            {
               baseline=Open;
               ssetup=baseline*(1+0.0025);
               bsetup=baseline*(1-0.0025);
            }
            if(time*100>=notbef&&time*100<=notaft&&Close>ssetup&&MarketPosition!=1)
            {
              Buy(lots,ssetup);
            }
             if(Close<baseline)
             {
              Sell(lots,baseline);
             }
            if(Close<bsetup&&time*100>=notbef&&time*100<=notaft&&MarketPosition!=-1)
             {
             SellShort(lots,Minbsetup);
             }
             if(Close>baseline)
             {
             BuyToCover(lots,baseline);
             }
           
            if(time*100>=ends)
            {
             if(marketposition==-1)
             {
             BuyToCover(lots,Close);
             }
             if(marketposition==1)
             {
             Sell(lots,CLOSE);
             }
             Return;
            }
             }
           
    End

    首先希望各位前辈看看我的代码是否有明显的错误。
    下面是我遇到的具体问题。

    问题一:1分钟线和5分钟线看到的平仓不会过夜,15分钟线和30分钟线看到的平仓都会过夜。
    问题二:使用模拟账号交易,图标上观察到得开平仓信号和实际成交不一致。有些实际成交没有信号显示。
    问题三:开平仓信号会出现信号闪烁现象,即信号时有时无。
    希望各位前辈不吝赐教。

     

  • TB技术人员: 问题一:没看懂描述,为什么平仓还会过夜?
    问题二:不知道为什么,感觉应该和你的问题三是联系的
    问题三:你以当前的close作为开仓信号的判断,close在一根k线没有走完之前总是变化的,所以信号会闪烁

     

  • TB客服:
    darknesszeal 发表于 2013-11-11 18:30
    问题一:没看懂描述,为什么平仓还会过夜?
    问题二:不知道为什么,感觉应该和你的问题三是联系的
    问题三: ...

    我重新描述一下问题一,按照上面思路描述建仓和平仓必须在同一天内,即下午2点55平掉所有持仓,而我的问题是我的1分钟和5分钟K线观察建仓和平仓都是在同一天内进行的,而15分钟K线平仓时间变成第二天了。如下:
    建仓时间        建仓价格        平仓时间        平仓价格
    2012/11/12 10:45        23750        2012/11/13 13:30        23790
    2012/11/14 10:30        23815        2012/11/16 10:00        24295
    关于问题二和问题三我觉得应该是你说的问题,我去改改,多谢指教哈。

     

  • 网友回复:
    bcqhsz 发表于 2013-11-12 08:52
    我重新描述一下问题一,按照上面思路描述建仓和平仓必须在同一天内,即下午2点55平掉所有持仓,而我的问 ...

    我觉得问题一你可以试着用fileappend这个函数把time数据输入到文件里去查看,按照你的程序逻辑历史k线回测应该会出现问题,历史k线回测的time值应该是当前k线开始时候的数值,用15分钟或者30分钟k线,最后一根k线的time可能是1445和1430,是不会满足time*100>=ends这个条件的。

     

  • 网友回复:
    darknesszeal 发表于 2013-11-12 13:49
    我觉得问题一你可以试着用fileappend这个函数把time数据输入到文件里去查看,按照你的程序逻辑历史k线回 ...

    高手呀,听你这么一说还真是那么回事,我大概明白问题出在哪了,非常感谢你哈。那这个如果修正的话,怎么修正比较好呢?

 

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

可联系技术人员 QQ: 1145508240  有需要帮忙请点击这里留言!!!进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容