| --  作者:jjjfk --  发布时间:2017/3/23 9:02:41
 --  请问这个策略哪里编写有问题?
 
 源代码:   variable:bj=0;                                    //全局变量   //做多部分   tr1 : max(max((high-low),abs(ref(close,1)-high)),abs(ref(close,1)-low)); atr : ma(tr1,20);                               //atr公式   ma20:ma(close,20);                               //20日均线   a1:=0.01*valuewhen(barpos=1,asset);              //初始资金的1%   a2:=floor(a1/(2*atr));                         //开仓手数   a3:=ref(hhv(high,20),1);                       //20日高点   if holding=0 and close>a3 and close>ma20 and bj=0 then begin buy(1,a2,marketr); bj:=1; end                                   //第一次开仓   a4:=enterprice+2*atr; if holding>0 and close>a4 and bj=1  then begin buy(1,a2,marketr); end                                  //第n次开仓   a5:=enterprice-2*ref(atr,enterbars=1); if holding=1 and low<=a5 then begin sell(1,0,limitr,a4); end                                   //第一次开仓的离场       e1:=ref(enterprice,enterbars); e2:=ref(e1,enterbars); e3:=(e1+e2)/2; if holding>1 and close<e3  then begin  sell(1,0,marketr); end                                     //第n次开仓离场,即:收盘<("holding=n"与“holding=n-1”)/2的位置               //做空部分   a1:=0.01*valuewhen(barpos=1,asset);              //初始资金的1%   a2:=floor(a1/(2*atr));                         //开仓手数   a6:=ref(llv(low,20),1);                       //20日低点   if holding=0 and close<a6 and close<ma20 and bj=0 then begin buyshort(1,a2,marketr); bj:=1; end                                   //第一次开仓   a7:=enterprice-2*atr; if holding<0 and close<a7 and bj=1  then begin buyshort(1,a2,marketr); end                                  //第n次开仓   a8:=enterprice+2*ref(atr,enterbars=1); if holding=1 and high>=a8 then begin sellshort(1,0,limitr,a8); end                                   //第一次开仓的离场       e1:=ref(enterprice,enterbars); e2:=ref(e1,enterbars); e3:=(e1+e2)/2; if holding<-1 and close>e3  then begin  sellshort(1,0,marketr); end                                     //第n次开仓离场,即:收盘>("holding=n"与“holding=n-1”)/2的位置   测试结果: 
  此主题相关图片如下:图片1.jpg 
  
 
  此主题相关图片如下:图片2.png 
  
 
 问题: 1.从2009年测试至今,为什么只交易了一次,其他条件都没成立? 2.第二次开仓与第一次开仓点位相差根本不多,为什么开仓手数相差了一倍? 
 3.随后的平仓都还没有到达平仓条件怎么就被平掉了? 
 |