设为首页收藏本站

 找回密码
 注册
查看: 6290|回复: 2
打印 上一主题 下一主题

《日内交易策略--谷物期货交易实战指南》中的策略 [复制链接]

Rank: 2

精华
0
UID
194546
积分
65
帖子
47
主题
13
阅读权限
30
注册时间
2014-9-29
最后登录
2017-11-16
跳转到指定楼层
1#
发表于 2014-12-4 21:42:04 |只看该作者 |倒序浏览
《日内交易策略--谷物期货交易实战指南》中提到的策略。
缺点:有时因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   
复制代码

Rank: 5Rank: 5

精华
0
UID
12330
积分
838
帖子
254
主题
15
阅读权限
60
注册时间
2010-6-16
最后登录
2017-4-25
2#
发表于 2014-12-6 08:14:59 |只看该作者
可否不设止盈,改用跟踪止损,比如用吊灯止损或棘轮止损,这样就能让利润奔跑.
这是棘轮止损的链接:http://bbs.tb18.net/thread-19775-1-1.html

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
175193
积分
122
帖子
90
主题
22
阅读权限
40
注册时间
2013-11-6
最后登录
2023-8-13
3#
发表于 2014-12-18 17:39:39 |只看该作者
刚到论坛这么短的时间,能写出这个,真是挺不一般的人物呀。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-9 16:53

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部