等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
input:n(2,1,30);
input:ss(10,1,10000,1);
input:NMIN(10,1,100,1);
input:b(0.005,0.001,2,0.001);//用于控制止损价
input:d(1,0.001,2,0.001);//用于调整买卖限制价格
收 盘 价:=close;
手 数:=ss;
期 望 数:=b;
倍 数:=d;
开仓历时:=ENTERBARS+1;
开仓时间:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;//OPENTIME(1)表示9:15
平仓时间:=TIME>=CLOSETIME(0)-NMIN*100;//{NMIN 为参数,CLOSETIME(0)-NMIN*100 表示收盘时间提前 N 分钟,N 由 NMIN 控制}
当前资产:ASSET,NOAXIS,COLORGRAY;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
variable:入场价=0,波动多止损价=0,波动空止损价=0,开多次数=0,开空次数=0,趋买市=0,趋卖市=0;
variable: returnall[100000]=0; //累计回报率
variable: return[100000]=0; //当日回报率
k:=BARPOS;//K线顺序位置
//参考指标
if k=1 then BEGIN //初始化数值
return[k]:=0;
returnall[k]:=1;
END
else BEGIN
return[k]:=(当前资产-当前资产[k-1])/当前资产[k-1]; //计算当期的回报率
returnall[k]:=returnall[k-1]*(return[k]+1); //累计回报率
累计回报率:returnall[k],COLORRED,NOAXIS;
END
//多头止损价:=b*入场价+入场价+4.9
//空头止损价:=入场价-b*入场价-4.9
//均值:=ma(c,4);
//信号指标
n 周期高点:=REF(HHV(H,n),1);//前两期中最高价,n=2
n 周期低点:=REF(LLV(L,n),1);
m:(n 周期高点+n 周期低点)/2;
开多平空:=cross(c,m-1)=1 and holding<=0;
平多开空:=cross(m,c)=1 and holding>=0;
//交易系统
if 开多平空 and holding=0 then BEGIN
开多:BUY(1,手数,marketr);//开多信号,手术为ss即一百手
end
if 开多平空 and holding<0 then BEGIN
平空:SELLSHORT(1,HOLDING(),marketr);
开多 2:BUY(1,手数,marketr);//先平再开,在同一个时点进行
end
if 平多开空 and holding=0 then BEGIN
开空:BUYSHORT(1,手数,marketr); //开空信号
end
if 平多开空 and holding>0 then BEGIN
平多:SELL(1,HOLDING,marketr);
开空 2:BUYSHORT(1,手数,marketr);
end
收盘平多:sell(平仓时间 and holding>0, 0, thisclose);
收盘平空:sellshort(平仓时间 and holding<0,0,thisclose);
{多头突破失败情况:突破入场后,行情反转。止损的同时我们反手开空,但前提是时间在中午11:30 之后,且多头进场在至少 4 根 K 之前。瞬间止损我们不允许反转,因为这往往是市场
的膝跳反射}
//止损条件
10 单位平均波幅:=ref(MA(high-LOW,10),1);//前十日最值价差均值在10-20之间
前期收盘价:=REF(c,1);
波动多止损价:=MIN(前期收盘价-10 单位平均波幅,前期收盘价-12);//看多反跌
波动空止损价:=Max(前期收盘价+10 单位平均波幅,前期收盘价+12);//看空反而上涨
IF HOLDING>0 AND TIME<150000 AND C<=波动多止损价 THEN BEGIN
多头止损:SELL(1,HOLDING,MARKET);
END
IF HOLDING<0 AND TIME<150000 AND C>=波动空止损价 THEN BEGIN
空头止损:BUYSHORT(1,HOLDING,MARKET);
//波动空止损价:=MIN(ENTERPRICE+0.15*10 单位平均波幅,ENTERPRICE+3);//多翻空止损价为开仓价加 15%的 10 单位平均波幅和 3 个大点的较小值。
//开空次数:=1;
END
//加仓条件 |
|