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

《日内交易策略--谷物期货交易实战指南》中的策略 [开拓者 TB]

  • 咨询内容: 《日内交易策略--谷物期货交易实战指南》中提到的策略。
    缺点:有时因r比较小,止损会很小;在有日内明显趋势的时候,因为止盈,而仅赚到比较小的部分。
    怎么改呢?给点意见呗
    1. Params

    2. vars

    3.   Bool     buycon;               //开多条件
    4.   Bool     sellcon;              //开空条件
    5.   Bool     specialbuy;
    6.   Bool     specialsell;
    7.   Numeric  r;
    8.   Numeric  temp;
    9.   Numeric  MyEntryPrice;
    10.   String   sFileName;
    11.   Numeric  BST;  
    12.   Numeric  HD;
    13.   Numeric  LD;
    14.   Numeric  N;
    15.   Numeric  i;
    16.   
    17. begin
    18.   BST=BarsSinceToday+1;
    19.   sFileName="d:\\my_TB\\RetracementBreakupBT"+Text(CurrentDate)+".log";
    20.   PlotString("barnum",Text(BST),low-5);

    21.   N=BST;                     //求从开始到前一根K线的最大值最小值,Lowest和LowD求最值都包含了这个K线的最值。
    22.   LD=Low[1];
    23.   For i = 1 To N-1
    24.   {
    25.     temp=LD;
    26.     LD=Min(Low[i],temp);
    27.   }
    28.   
    29.   HD=High[1];
    30.   For i = 1 To N-1
    31.   {
    32.     temp=HD;
    33.     HD=Max(High[i],temp);
    34.   }
    35.   
    36.   FileAppend(sFileName, "\n进入第"+Text(BST)+"跟K线");
    37.   FileAppend(sFileName, "\n已知最低点"+Text(LD)+"  GetGlobalVar(0)"+Text(GetGlobalVar(0))+"  GetGlobalVar(1)"+Text(GetGlobalVar(1))+"  GetGlobalVar(2)"+Text(GetGlobalVar(2)));

    38. If(Date != Date[1] || BarStatus == 0)   
    39. {
    40.    SetGlobalVar(0,0);      //用全局变量0来做趋势的指标,1为向上,0为中立,-1为向下
    41.    SetGlobalVar(1,0);      //用全局变量1来表示高点
    42.    SetGlobalVar(2,0);      //用全局变量2来表示低点
    43.    SetGlobalVar(3,0);      //用全局变量3来表示无持仓的高低点出现在当日第几根K线
    44.    SetGlobalVar(4,0);      //用全局变量4来表示孕线数
    45.    SetGlobalVar(5,0);      //用全局变量5来表示回撤激值点
    46.    SetGlobalVar(6,0);      //用全局变量6来表示r
    47.    FileAppend(sFileName, "\n 全局变量初始化");  
    48.    return;                 //当日的第一根K线,推出、不交易  
    49. }
    50.   
    51.   If(GetGlobalVar(0)==0)         
    52.   {
    53.     if (close[1] > open[1])
    54.     {  
    55.           SetGlobalVar(0,1);
    56.           SetGlobalVar(1,HD);
    57.           SetGlobalVar(2,LD);
    58.           SetGlobalVar(3,BST-1);
    59.           FileAppend(sFileName,"在第"+Text(BST-1)+"跟K线,确定最初看涨趋势");
    60.           return;
    61.     }
    62.         else if (close[1] < open[1])
    63.     {
    64.          SetGlobalVar(0,-1);
    65.          SetGlobalVar(1,HD);
    66.          SetGlobalVar(2,LD);
    67.          SetGlobalVar(3,BST-1);
    68.          FileAppend(sFileName,"在第"+Text(BST-1)+"跟K线,确定最初看跌趋势");
    69.      return;
    70.         }
    71.         else return;
    72.   }
    73.   

    74.   
    75.   //四种出现新高新低的新情况
    76.   If(GetGlobalVar(0)==1 And High[1]>GetGlobalVar(1) And MarketPosition==0)   
    77.   {
    78.         SetGlobalVar(1,High[1]);
    79.         SetGlobalVar(4,0);
    80.         SetGlobalVar(5,0);
    81.         FileAppend(sFileName,"在上一根K线,有新高点产生,看涨倾向不变。");
    82.   }
    83.   
    84.   If(BST==4) FileAppend(sFileName,"看看第四个K线到不到这【1】"+Text(Low[1])+"  "+Text(GetGlobalVar(2))+"  "+Text(GetGlobalVar(0)));
    85.   
    86.   If(GetGlobalVar(0)==1 And Low[1]<GetGlobalVar(2) )
    87.   {
    88.     If(BST==4) FileAppend(sFileName,"看看第四个K线进不进来");
    89.         SetGlobalVar(0,-1);
    90.         SetGlobalVar(2,Low[1]);
    91.         SetGlobalVar(4,0);
    92.         SetGlobalVar(5,0);
    93.         FileAppend(sFileName,"在上一根K线,有新低点产生,由看涨倾向变成看跌倾向。");
    94.   }
    95.   If(GetGlobalVar(0)==-1 And Low[1]<GetGlobalVar(2) And MarketPosition==0)
    96.   {
    97.     SetGlobalVar(2,Low[1]);
    98.         SetGlobalVar(4,0);
    99.         SetGlobalVar(5,0);
    100.         FileAppend(sFileName,"在上一根K线,有新低点产生,看跌倾向不变。");
    101.   }
    102.    If(GetGlobalVar(0)==-1 And High[1]>GetGlobalVar(1) )
    103.   {
    104.     SetGlobalVar(0,1);
    105.         SetGlobalVar(1,High[1]);
    106.         SetGlobalVar(4,0);
    107.         SetGlobalVar(5,0);
    108.         FileAppend(sFileName,"在上一根K线,有新高点产生,由看跌倾向变成看涨倾向。");
    109.   }
    110.   
    111.   
    112.    If( MarketPosition==0)
    113.   {
    114.     If( High[1] < GetGlobalVar(1) And Low[1] >GetGlobalVar(2) )  //孕线
    115.    {
    116.      temp=GetGlobalVar(4)+1;
    117.          SetGlobalVar(4,temp);
    118.          FileAppend(sFileName,"上一根K线为孕线,此时孕线数为"+Text(GetGlobalVar(4)));
    119.    }
    120.    If(GetGlobalVar(0)==1 And High[1]<High[2] And Low[1]<Low[2])    //看涨时的回撤极值点
    121.    {
    122.      SetGlobalVar(5,Low[1]);
    123.          FileAppend(sFileName,"看涨倾向下有新回撤极值点");
    124.    }
    125.    If(GetGlobalVar(0)==-1 And High[1]>High[2] And Low[1]>Low[2])   //看跌时的回撤极值点
    126.    {
    127.      SetGlobalVar(5,High[1]);
    128.          FileAppend(sFileName,"看跌倾向下有新回撤极值点");
    129.    }
    130.   }
    131.   
    132.   
    133.   specialbuy = (GetGlobalVar(0)==1 And GetGlobalVar(4)==1 And BST==3 And High> GetGlobalVar(1) );         
    134.   specialsell= (GetGlobalVar(0)==-1 And GetGlobalVar(4)==1 And BST==3 And Low < GetGlobalVar(2) );
    135.   
    136.   buycon = ( GetGlobalVar(0)==1  And GetGlobalVar(4)>= 2 And High > GetGlobalVar(1));
    137.   sellcon= ( GetGlobalVar(0)==-1 And GetGlobalVar(4)>= 2 And Low < GetGlobalVar(2) );
    138.          
    139.   If((buycon || specialbuy) And MarketPosition==0)
    140.   {
    141.      temp=GetGlobalVar(1);
    142.          Buy(1,temp);
    143.          FileAppend(sFileName,"");
    144.   }  
    145.   
    146.   If((sellcon||specialsell) And MarketPosition==0)
    147.   {
    148.      temp=GetGlobalVar(2);
    149.      SellShort(1,temp);
    150.   }

    151.   If(GetGlobalVar(1) == 0) FileAppend(sFileName,"计算r时高点为0,异常!");
    152.   If(GetGlobalVar(2) == 0) FileAppend(sFileName,"计算r时低点为0,异常!");
    153.    
    154.   If(GetGlobalVar(5)==0)
    155.       r=GetGlobalVar(1)-GetGlobalVar(2);
    156.   Else If(GetGlobalVar(0)==1)
    157.       r=GetGlobalVar(1)-GetGlobalVar(5);
    158.   Else If(GetGlobalVar(0)==-1)
    159.       r=GetGlobalVar(5)-GetGlobalVar(2);
    160.   FileAppend(sFileName,"计算得出的r为"+Text(r));
    161.   
    162.   
    163.   //止损止盈部分
    164.   MyEntryPrice=AvgEntryPrice;
    165.   If(MarketPosition==1 And BarsSinceEntry>=1)
    166.   {
    167.     If(High>=MyEntryPrice + 2*r)
    168.     {
    169.            temp=MyEntryPrice+2*r;
    170.            If(Open>temp) temp=Open;
    171.            Sell(1,temp);
    172.            SetGlobalVar(4,0);
    173.            SetGlobalVar(1,HD);
    174.            SetGlobalVar(2,LD);
    175.         }Else If(Low<MyEntryPrice-r)
    176.         {
    177.            temp=MyEntryPrice-r;
    178.            If(Open<temp) temp=Open;
    179.            Sell(0,temp);
    180.            SetGlobalVar(1,HD);
    181.            SetGlobalVar(2,LD);
    182.            SetGlobalVar(4,0);
    183.         }
    184.   }Else If(MarketPosition==-1 And BarsSinceEntry>=1)
    185.   {
    186.      If(Low<MyEntryPrice-2*r)
    187.         {
    188.            temp=MyEntryPrice-2*r;
    189.            If(Open<temp) temp=Open;
    190.            BuyToCover(1,temp);
    191.            SetGlobalVar(1,HD);
    192.            SetGlobalVar(2,LD);
    193.            SetGlobalVar(4,0);
    194.         }Else If(High>MyEntryPrice+r)
    195.         {
    196.            temp=MyEntryPrice+r;
    197.            If(Open>temp) temp=Open;
    198.            BuyToCover(1,temp);
    199.            SetGlobalVar(1,HD);
    200.            SetGlobalVar(2,LD);
    201.            SetGlobalVar(4,0);
    202.         }
    203.    }
    204.    
    205.    //尾盘平仓
    206.    If((Date[-1] != InvalidInteger && Date != Date[-1]) || (Date[-1]==InvalidInteger && Date<CurrentDate))  
    207.    {
    208.      Sell(1,Close);
    209.          BuyToCover(1,Close);
    210.    }          
    211.           
    212. end   

     

  • TB技术人员: 可否不设止盈,改用跟踪止损,比如用吊灯止损或棘轮止损,这样就能让利润奔跑.
    这是棘轮止损的链接:http://bbs.tb18.net/thread-19775-1-1.html

     

  • TB客服: 刚到论坛这么短的时间,能写出这个,真是挺不一般的人物呀。

 

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

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


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

相关文章

    没有相关内容