是希望我写回测主程序吗?
开平条件为平均线 MA20与MA60
请就这一句话扩展为正常的交易车略
ma1:ma(c,20);
ma2:ma(c,60);
KD:=ma1>ma2; //开多条件
PD:= ma1<ma2; //平多条件
KK:= ma1<ma2; //开空条件
PK:= ma1>ma2; //平空条件
variable:模拟资金=1000000; //设模拟资金100万元
variable:模拟做空开平仓次数=0 ; //记录开平仓次数用
variable:模拟做多开平仓次数=0 ; //记录开平仓次数用
向前回测数量:=2000; //向前回测2000根K柱
手续费:=1; //买进卖出各计一个点的手续费
//-----------------------------------------------------------------------
//回测主程
if barpos=datacount-向前回测数量 then begin
模拟资金=1000000;
模拟做空开平仓次数=0 ;
模拟做多开平仓次数=0 ;
end
if kd and holding=0 then begin
buy(1,1,market);
模拟做多开平仓次数:=模拟做多开平仓次数+1;
模拟资金:=模拟资金-手续费*multiplier;
end
if kk and holding=0 then begin
buyshort(1,1,market);
模拟做空开平仓次数:=模拟做空开平仓次数+1;
模拟资金:=模拟资金-手续费*multiplier;
end
if pd and holding>0 then begin
sell(1,1,market);
模拟做多开平仓次数:=模拟做多开平仓次数+1;
模拟资金:=模拟资金-手续费*multiplier;
end
if pk and holding<0 then begin
sellshort(1,1,market);
模拟做空开平仓次数:=模拟做空开平仓次数+1;
模拟资金:=模拟资金-手续费*multiplier;
end
//-----------------------------------------------------------------------
//到当时行情时,强制平仓离开时得出下面模拟结果
做空开平仓次数:模拟做空开平仓次数 ; //记录开平仓次数
做多开平仓次数:模拟做多开平仓次数 ; //记录开平仓次数
剩余资金: 模拟资金; //模拟资金(减少手续费的资金)
从左往右数第2000根k线开始初始变量,这样就符合你要往前测2000根k线的要求
有没有用你删掉,然后k线图上显示2000多根k线就明白了,会把2000根k线以外的数据算进去