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

各位大侠,救命啊,编译通过但是没有信号,求救! - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 自己攒了一个系统出来,虽然编译通过,但是插入公式应用时却没有信号显示,请管理员或者版主,或者各位大侠救命,感激不尽!
    一分钟钟上应用,思路如下:
    开仓条件:1、当日开盘,如果开盘低于昨日收盘则开多单,反之开空;
              2、高低点反转理论,确定当日一分钟行情下已经走出的高低点,然后加减一定的点位,即为已有仓位的出场以及反向单的进场点位
    平仓条件:1、已经走出的高低点,加减止损间距
              2、尾盘全部平仓
    加仓条件:确定一定的加仓间距和加仓次数,在加仓次数范围之内,然后走出超过此间距就加仓
             

    TB代码如下:
    Params
             Bool   blnitStatus(false);       //初始化标志,修改初始仓位时需改变为True
             Numeric InitMyRealMp(0);         //初始当前仓位,正数表示多单,负数表示空单
             Numeric AddGrid(5);              //加仓间距,最小跳动
             Numeric TotalGrids(10);          //最大交易次数
             Numeric TrailingGrid(30);        //移动止损间距,最小跳动
             Numeric EveryLots(1);            //每次开仓手数
             Numeric OffSet(1);               //委托买卖偏差,默认买卖价偏差一个滑点
             Numeric ExitOnCloseMins(14.58);  //收盘平仓时间
    Vars
            Numeric HighAfterLongEntry;
            Numeric LowAfterShortEntry;
            Numeric MyRealMp(0);
            Numeric MinPoint;
            Numeric TmpPrice;
            Numeric TmpLots;
    Begin
            MinPoint=MinMove*PriceScale;
            MyRealMp=GetGlobalVar(0);
            HighAfterLongEntry=GetGlobalVar(1);
            LowAfterShortEntry=GetGlobalVar(2);
            If(BarStatus==0 and (MyRealMp==InvalidNumeric or blnitStatus))
            {
            MyRealMp=InitMyRealMp;
            }
            If(Date<>Date[1])
            {
            HighAfterLongEntry=High;
            LowAfterShortEntry=Low;
            MyRealMp=0;
            }Else
            {
            HighAfterLongEntry=max(HighAfterLongEntry,High);
            LowAfterShortEntry=Min(LowAfterShortEntry,Low);
            }
            If(Time<ExitOnCloseMins/100)
            {
               If(MyRealMp>0 And HighAfterLongEntry-low>=TrailingGrid*MinPoint And (High-low<TrailingGrid*MinPoint Or(High-Low>=TrailingGrid*MinPoint And Close<Open)))
               {
               TmpPrice=HighAfterLongEntry-TrailingGrid;
               TmpLots=Abs(MyRealMp*EveryLots);
               Sell(TmpLots,TmpPrice);
               MyRealMp=0;
               LowAfterShortEntry=Low;
               }Else
               If(MyRealMp<0 And High-LowAfterShortEntry>=TrailingGrid*MinPoint And (High-low<TrailingGrid*MinPoint Or(High-Low>=TrailingGrid*MinPoint And Close<Open)))
               {
               TmpPrice=LowAfterShortEntry+TrailingGrid;
               TmpLots=Abs(MyRealMp*EveryLots);
               BuyToCover(TmpLots,TmpPrice);
               MyRealMp=0;
               HighAfterLongEntry=0;
               }
               if(Time==0.9000 and open!=Close[1])
               { If(MyRealMp==0 And open<Close[1])//开盘低开多单开仓
                 {
                  TmpPrice=(Open+offset)*MinPoint;
                      TmpLots=EveryLots;
                      Buy(TmpLots,TmpPrice);
                  MyRealMp=1;
                  HighAfterLongEntry=High;
                  }Else
                  If(MyRealMp==0 And open>Close[1] )//开盘高开空单开仓
                 {
                  TmpPrice=(Open-offset)*MinPoint;
                  TmpLots=EveryLots;
                  SellShort(TmpLots,TmpPrice);
                  MyRealMp=-1;
                  LowAfterShortEntry=low;
                 }
              } Else
                If(Time>0.9000 and Time<=0.1455)
                    {If(MyRealMp==0 And High-LowAfterShortEntry>=TrailingGrid*MinPoint)//当日开盘开仓外第一笔多单开仓
                  {
                   TmpPrice=LowAfterShortEntry+(TrailingGrid+offset)*MinPoint;
                   TmpLots=EveryLots;
                       Buy(TmpLots,TmpPrice);
                       MyRealMp=1;
                   HighAfterLongEntry=High;
                  }Else
                        If(MyRealMp==0 And HighAfterLongEntry-low>=TrailingGrid*MinPoint)//当日开盘开仓外的第一笔空单开仓
                  {
                  TmpPrice=HighAfterLongEntry-(TrailingGrid+offset)*MinPoint;
                  TmpLots=EveryLots;
                  SellShort(TmpLots,TmpPrice);
                  MyRealMp=-1;
                  LowAfterShortEntry=low;
                  }
                    }
               If(MyRealMp>0 and MyRealMp<TotalGrids And high-LowAfterShortEntry>=(TrailingGrid+MyRealMp*AddGrid)*MinPoint)//多单加仓
               {
               TmpPrice=LowAfterShortEntry+(TrailingGrid+MyRealMp*AddGrid+offset)*MinPoint;
               TmpLots=EveryLots;
               Buy(TmpLots,TmpPrice);
               MyRealMp=MyRealMp+1;
               }Else
               If(MyRealMp<0 And -1*MyRealMp<TotalGrids And HighAfterLongEntry-Low>=(TrailingGrid+Abs(MyRealMp*AddGrid))*MinPoint)//空单加仓
               {
               TmpPrice=HighAfterLongEntry-(TrailingGrid+Abs(MyRealMp*AddGrid)+offset)*MinPoint;
               TmpLots=EveryLots;
               SellShort(TmpLots,TmpPrice);
               MyRealMp=MyRealMp-1;
               }
            }Else If(Time>=ExitOnCloseMins/100)
            {
        Sell(0,Close);
        BuyToCover(0,Close);
        }
           
            SetGlobalVar(0,MyRealMp);
            SetGlobalVar(1,HighAfterLongEntry);
            SetGlobalVar(2,LowAfterShortEntry);
            Commentary("MyRealMp="+Text(MyRealMp));
            Commentary("HighAfterLongEntry="+Text(HighAfterLongEntry));
            Commentary("LowAfterShortEntry="+Text(LowAfterShortEntry));
    End

     

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


    条件内
    MyRealMp=GetGlobalVar(0);
    一开始GetGlobalVar(0)为0.
    MyRealMp>0;这个条件不满足

     

  • TB客服: 管理员,你好,先对你的回复表示感谢!
    有个问题不明白,if条件语句里面,if条件判断不是说判断条件为真时,则执行吗?那不为真时则是不执行的吧。那么这个语句里面MyRealMp>0,只是用来判断的条件啊!不满足的时候不执行不就是了吗,为什么一定要满足呢??

     

  • 网友回复: 是我自己后边的问题太低级了吗??

     

  • 网友回复: 回复 4# gsjjs01

    if(Time==0.9000 and open!=Close[1])
    改成
    if(Time==0.0900 and open!=Close[1])
    就有信号了

 

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

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

 


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

相关文章

    指定的模型还没有相关内容!