看到不一样有阿火的程序里的ma10实际是5周期均线,如果改成ma10:=ma(c,10),同时我的开仓下单指令简单用cross函数的话,图表信号是完全一致的,但为何zich算出来还是大大不同呢?详细源码如下
谢谢
阿火:方法示例如下:(这里股指上的简单的均线系统为例)
variable:sumwealth=0;
ma10:=ma(c,10);
ma25:=ma(c,25);
sxf:=0.01/100;//手续费0.01%
if holding>0 and ma10<ma25 then begin
sell(1,1,thisclose);
sumwealth:=sumwealth+1*c*300*(1-sxf);//卖出时减去交易额
end
if holding<0 and ma10>ma25 then begin
sellshort(1,1,thisclose);
sumwealth:=sumwealth-1*c*300*(1+sxf);//买入时加上交易额
end
if holding=0 and ma10>ma25 then begin
buy(1,1,thisclose);
sumwealth:=sumwealth-1*c*300*(1+sxf);
end
if holding=0 and ma10<ma25 then begin
buyshort(1,1,thisclose);
sumwealth:=sumwealth+1*c*300*(1-sxf);
end
zichan:sumwealth+holding*c*300-abs(holding)*c*300*sxf,noaxis;
按照自己的策略喜欢用的格式改写了一下,得不出需要的zichan数值了,请教问题出在哪里?
以下是改写后的程序
variable:sumwealth=0;
ma10:ma(c,10);
ma25:ma(c,25);
BKK:=cross(ma10,ma25);
SPP:=holding>0 and ma10<ma25;
SKK:=cross(ma25,ma10);
BPP:=holding<0 and ma10>ma25;
手数:=1;
SELL(spp,手数, thisclose);
SELLSHORT(bpp,手数,thisclose);
BUY(bkk and state=0,手数,thisclose);
BUYSHORT(Skk and state=0,手数,thisclose);
sxf:=0.01/100;//手续费0.01%
if spp then begin
sumwealth:=sumwealth+手数*c*300*(1-sxf);//卖出时减去交易额
end
if bpp then begin
sumwealth:=sumwealth-手数*c*300*(1+sxf);//买入时加上交易额
end
if bkk and state=0 then begin
sumwealth:=sumwealth-手数*c*300*(1+sxf);
end
if Skk and state=0 then begin
sumwealth:=sumwealth+手数*c*300*(1-sxf);
END
zichan:sumwealth+holding*c*300-abs(holding)*c*300*sxf,noaxis;