第一步 下面是我写的SMA代码 ,然后放在交易系统上测试
input:N(15,1,50),M(2,1,50);
variable:y1=0;
if barpos=1 then
y:=c;
else
y:=(c-y[barpos-1])*M/N+y[barpos-1];
y1:=y;
jx:y;
ljx:=ref(jx,1);
lc:=ref(c,1);
kd:=cross(lc,ljx);
kk:=cross(ljx,lc);
kdj:=o;
kkj:=o;
sell(kk and holding>0 and date>=1110101 ,0,limitr,kkj);//平多
//sellshort(kd and holding<0 ,0,limitr,kdj);//平空
buy(kd and holding=0 and date>1110101 ,asset,limitr,kdj);//开多
//buyshort(kk and holding=0 ,asset,limitr,kkj);//开空)
第二步 直接用系统的SMA代码 ,然后放在交易系统上测试
input:N(15,1,50),M(2,1,50);
jx:SMA(c,N,M);
ljx:=ref(jx,1);
lc:=ref(c,1);
kd:=cross(lc,ljx);
kk:=cross(ljx,lc);
kdj:=o;
kkj:=o;
sell(kk and holding>0 and date>=1110101 ,0,limitr,kkj);//平多
//sellshort(kd and holding<0 ,0,limitr,kdj);//平空
buy(kd and holding=0 and date>1110101 ,asset,limitr,kdj);//开多
//buyshort(kk and holding=0 ,asset,limitr,kkj);//开空)
问题 第一步和第二的JX是完全重合的,按理他们的收益率和回撤应该是一样的,
但是奇怪的总是出现,这两种方式的收益率和回撤 在K线上是一样的,但是在系统的测试平台中测出来收益率和回撤大为不同!!!!
请版主查证,修改。
我测的是399905 日线
在跟踪,稍后回复
今天闲一点,我就讲给你听,错在哪里
首先确定策略1和策略2
原码---策略1
input:N(15,1,50),M(2,1,50);
variable:y1=0;
if barpos=1 then
y:=c;
else
y:=(c-y[barpos-1])*M/N+y[barpos-1];
y1:=y;
jx:y;
ljx:=ref(jx,1);
lc:=ref(c,1);
kd:=cross(lc,ljx);
kk:=cross(ljx,lc);
kdj:=o;
kkj:=o;
sell(kk and holding>0 ,0,limitr,kkj);//平多
buy(kd and holding=0 ,asset,limitr,kdj);//开多
资产:ASSET/10000,NOAXIS,linethick1,coloryellow;
可用现金:=CASH(0)/10000,LINETHICK0;
持仓:=HOLDING,LINETHICK0;
T:=barpos/245;
年复合收益率:100*(POW(资产/100,1/T)-1),LINETHICK0 ;
最大回撤:100*llv((asset/ref(hhv(asset,0),0)-1),0),LINETHICK3, noaxis;
盈回比:(-1)*年复合收益率/最大回撤,linethick0;
交易胜率:PERCENTWIN*100,LINETHICK0 ;
原码---策略2
input:N(15,1,50),M(2,1,50);
jx:SMA(c,N,M);
ljx:=ref(jx,1);
lc:=ref(c,1);
kd:=cross(lc,ljx);
kk:=cross(ljx,lc);
kdj:=o;
kkj:=o;
sell(kk and holding>0 ,0,limitr,kkj);//平多
buy(kd and holding=0 ,asset,limitr,kdj);//开多
资产:ASSET/10000,NOAXIS,linethick1,coloryellow;
可用现金:=CASH(0)/10000,LINETHICK0;
持仓:=HOLDING,LINETHICK0;
T:=barpos/245;
年复合收益率:100*(POW(资产/100,1/T)-1),LINETHICK0 ;
最大回撤:100*llv((asset/ref(hhv(asset,0),0)-1),0),LINETHICK3, noaxis;
盈回比:(-1)*年复合收益率/最大回撤,linethick0;
交易胜率:PERCENTWIN*100,LINETHICK0 ;
其次设定费率, 在公式里设定为股票模式双边均为0.3%, 在测试平台里设置为股票测试 费率双边均为0.3%,并且只测多头 ,确保K线和平台测试费率一致.
好, 接下来开始测
测试对象 上证综指全历史 1990.12.18---2011.11.16
策略1 在K线图表下显示 年收益率 19.31% 最大回撤 57.7%
策略2 在K线图表下显示 年收益率 19.31% 最大回撤 57.7%
策略1 在测试平台中测试,结果为 年收益率 5.44% 最大回撤 83.45%
策略2 在测试平台中测试,结果为 年收益率 19.29% 最大回撤 58.35%
问题就是,策略1和策略2本质是相同的,只不过一个SMA的原码,一个直接用系统的SMA, 在K线图表下其运行结果完全一致.
那么为什么两个完全一样东西在测试平台中测出来的结果确完全不相同,因此推论测试平台可能存在问题,请查实并更证,谢谢.