将金字塔系统原版闪灵系统,仅更改开平仓条件为BOLL指标后,回测和加载图表均无任何信号,改成双均线指标也是无信号[PEL] 复制代码 INPUT:N1(9,1,100,1),SS(1,1,100);
VARIABLE:该笔盈亏:=0;模拟持仓:=0,模拟开仓价:=0,模拟平仓价:=0,真实系统下单开关:=0;
LC := REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;//RSI指标默认N1为9
9日收盘价指数平均:REF(EMA(CLOSE,9),1);
19日最高价收盘价平均:REF(EMA(HIGH,19),1);
20日高点:=REF(HHV(H,20),1);
20日低点:=REF(LLV(L,20),1);
手数:=SS;
//交易条件
MID : MA(CLOSE,100);//中轨
UPPER:MID + STD(CLOSE,100);//上轨
LOWER:MID - STD(CLOSE,100);//下轨
开多条件:=C>UPPER;
开空条件:=C<LOWER;
平多条件:=C<MID;
平空条件:=C>MID;
//交易系统
//模拟交易模块
IF 开多条件 AND 模拟持仓=0 THEN BEGIN
模拟开仓价:=CLOSE;//记录开仓价
模拟持仓:=1;//模拟持仓为1
END
IF 平多条件 AND 模拟持仓=1 THEN BEGIN
模拟平仓价:=CLOSE;//记录平仓价
该笔盈亏:=模拟平仓价-模拟开仓价;//在模拟交易模块中我们只需计算上一笔交易是赚还是亏,在这里我只计算盈亏最后的点数
模拟持仓:=0;//将全局变量*模拟持仓*初始化为0
IF 该笔盈亏>0 THEN BEGIN
真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。
模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
END
IF 该笔盈亏<=0 THEN BEGIN
真实系统下单开关:=1;//1代表模拟交易上一笔是亏钱的。
模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟平仓价*初始化为0
END
END
IF 开空条件 AND 模拟持仓=0 THEN BEGIN
模拟开仓价:=CLOSE;//记录开仓价
模拟持仓:=-1;//模拟持仓为-1
END
IF 平空条件 AND 模拟持仓=-1 THEN BEGIN
模拟平仓价:=CLOSE;//记录平仓价
该笔盈亏:=模拟开仓价-模拟平仓价;//在模拟交易模块中我们只需计算上一笔交易是赚还是亏,在这里我只计算盈亏最后的点数
模拟持仓:=0;//将全局变量*模拟持仓*初始化为0
IF 该笔盈亏>0 THEN BEGIN
真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。
模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
END
IF 该笔盈亏<=0 THEN BEGIN
真实系统下单开关:=1;//1代表模拟交易上一笔是亏钱的。
模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
END
END
//真实下单模块
平空:SELLSHORT(平空条件 AND HOLDING<0,手数,MARKET);
平多:SELL(平多条件 AND HOLDING>0,手数,MARKET);
开多:BUY(开多条件 AND 真实系统下单开关=1 AND HOLDING=0,手数,MARKET);
开空:BUYSHORT(开空条件 AND 真实系统下单开关=1 AND HOLDING=0,手数,MARKET);
|