您现在的位置:程序化交易>> 特别播报>> 古期心得>>正文内容

古期分享文华财经分组指令模型案例解析--震荡趋势全都要[古期心得]

量化研究中苦心研究的趋势突破策略却迟迟等不到趋势的东风,资金很快在多空双方剧烈的拉锯战中消耗殆尽,而针对震荡行情开发的短期策略却又在痛失单边行情的超额利润。今天给大家介绍一下分组指令量化案例,针对不同行情特征,启用不同的进出场条件,震荡和趋势行情我全都要!
 
*本文讲述的分组指令功能基于文华T8趋势策略量化软件
 
一、分组指令写法介绍
 
分组指令可以对开平条件分成N个组,某个组开的仓位只有该组对应的平仓条件条件才能平,其他组的平仓条件即使满足也不会出信号、发委托。
 
1、一开一平过滤模型:
 
不同的开仓条件如果想以不同的平仓策略进行平仓,可以利用指令分组来进行控制。在没有持仓的情况下任意组别都可以开仓,某个组开仓后,只能出该组的平仓信号。
 
 
 
写法示例:
 
A组开多条件,BK('A');
 
A组平多条件,SP('A');
 
A组开空条件,SK('A');
 
A组平空条件,BP('A');
 
//-------------------------
 
B组开多条件,BK('B');
 
B组平多条件,SP('B');
 
B组开空条件,SK('B');
 
B组平空条件,BP('B');
 
AUTOFILTER;
 
 
 
2、加减仓模型:
 
入场策略和加仓策略可能有所不同,相应的止损及出场策略的使用亦不相同,这时可以采用指令分组的方式实现。在没有持仓的情况下任意组别都可以开仓,某个组开仓后持仓没有全部平掉,就只能出该组的加仓和平仓信号。
 
 
 
写法示例:
 
A组开多条件,BK('A',1);
 
A组平多条件,SP('A',BKVOL);
 
A组开空条件,SK('A',1);
 
A组平空条件,BP('A',SKVOL);
 
//-------------------------
 
B组开多条件,BK('B',1);
 
B组平多条件,SP('B',BKVOL);
 
B组开空条件,SK('B',1);
 
B组平空条件,BP('B',SKVOL);
 
Ps:
 
1.分组指令对组的命名规则为,只能用 A——I 这九个字母中的其中几个命名。
 
2.不分组的平仓条件只能平不分组的开仓条件。
 
二、分组指令模型案例解析
 
以下面模型编写为例,针对趋势行情和波段行情分别使用了不同的开平条件,趋势行情以乖离率大于0.06位判断,进入A组趋势策略的开平仓条件,震荡行情以乖离率小于0.06位判断,进入B组震荡策略的开平仓条件。
 
 
  1. N1:=10; 
  2.  
  3. N2:=20; 
  4.  
  5. L1:=6; 
  6.  
  7. MA1:MA(CLOSE,N1);//N1日收盘价的均线 
  8.  
  9. MA2:MA(CLOSE,N2);//N2日收盘价的均线 来源 http://www.cxh99.com 
  10.  
  11. //收盘价减去收盘价在L1周期内的简单移动平均,除以收盘价在L1周期内的简单移动平均乘以100; 
  12.  
  13. RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//收盘价与N周期最低值做差,N周期最高值与N周期最低值做差,两差之间做比值。 
  14.  
  15. K:SMA(RSV,3,1);//RSV的移动平均值 
  16.  
  17. D:SMA(K,3,1);//K的移动平均值 
  18.  
  19. J:3*K-2*D; 
  20.  
  21. //----A组趋势----- 
  22.  
  23. CLOSEMINUTE>2 && CROSS(MA1,MA2) && ABS(BIAS1)>0.06,BK('A');//N1日收盘价和N2日收盘价的均线金叉,BIAS1绝对值大于0.06,A组趋势做多 来源 程序化交易 http://www.cxh99.com 
  24.  
  25. CROSSDOWN(CLOSE,MA1),SP('A');//收盘价和N1日收盘价死叉,A组趋势平仓 
  26.  
  27. CLOSEMINUTE>2 && CROSSDOWN(MA1,MA2) && ABS(BIAS1)>0.06,SK('A');//N1日收价和N2日收价的均线死叉,BIAS1绝对值大于0.06,A组趋势做空 
  28.  
  29. CROSS(CLOSE,MA1),BP('A');//收盘价和N1日收盘金死,A组趋势平仓 
  30.  
  31. //----B组波段------ 
  32.  
  33. CLOSEMINUTE>2 && CROSS(K,D) && ABS(BIAS1)<0.06,BK('B');//KD金叉且BIAS1绝对值小于0.06,B组波段做多 
  34.  
  35. CROSSDOWN(K,D),SP('B');//KD死叉,B组波段平仓 
  36.  
  37. CLOSEMINUTE>2 && CROSSDOWN(K,D) && ABS(BIAS1)<0.06,SK('B');//KD死叉且BIAS1绝对值小于0.06,B组波段做空 
  38.  
  39. CROSS(K,D),BP('B');//KD金叉,B组波段平仓 
  40.  
  41. //----------------- 
  42.  
  43. CLOSEMINUTE<=2,CLOSEOUT;//交易日收盘前1分钟清仓 
  44.  
  45. AUTOFILTER; 
 
* 策略仅作为函数案例分析,不建议实盘直接使用,依此入市,风险自负
 
 
 
以下面截图效果为例,A组出现开多信号后,即使满足了b组的平仓条件(绿色圆圈处)KD死叉也不会出现B组的平仓信号,需等后续满足A组平仓条件收盘价死叉MA1时才平仓,获取了整段趋势行情的收益。{来;源 程序化交易 }

 

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

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


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

相关文章

    没有相关内容