甲、 两组均线交叉策略
<!--[if !supportLists]-->1、<!--[endif]-->长周期10K线 180天与170天交叉,金叉只能做多,死叉只能做空。
<!--[if !supportLists]-->2、<!--[endif]-->短周期10K线20天与19天交叉, 金叉只能做多,死叉只能做空。
<!--[if !supportLists]-->3、<!--[endif]-->长短周期方向一致时,开仓,不一致时平仓(不论谁先出现)
<!--[if !supportLists]-->4、<!--[endif]-->止损:开仓价1%止损
<!--[if !supportLists]-->5、<!--[endif]-->止盈:浮盈大于3%时,股价回撤0.5%平仓
乙、
1、短周期10K线20天与19天交叉, 金叉只能做多,死叉只能做空。
2、止损:开仓价1%止损
3、止盈:浮盈大于3%时,股价回撤0.5%平仓
1.“10K线”这是指什么,K线周期?
2.“长短周期方向一致时”这个方向一致是指长短周期都金叉之后?
3.你这个是做期货还是股票的?“股价回撤0.5%平仓”
ma180:ma(c,180);
ma170:ma(c,170);
ma20:ma(c,20);
ma19:ma(c,19);
kd:ma20<ma19 and ma180<ma170;
kk:ma20>ma19 and ma180>ma170;
pd:ma20>ma19 or ma180>ma170;
pk:ma20<ma19 or ma180<ma170;
平多:sell(holding>0 and pd,holding,market);
开空:buyshort(holding=0 and kk,1,market);
平空:sellshort(holding<0 and pk,holding,market);
开多:buy(holding=0 and kd,1,market);
zs:abs(c-ENTERPRICE)/ENTERPRICE>=0.01;
if zs then //止损
begin
sell(c<ENTERPRICE and holding>0,holding,market);
sellshort(c>ENTERPRICE and holding<0,holding,market);
end
ad:OPENPROFITPER;
if OPENPROFITPER>=3 then //3%止盈
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end
“股价回撤0.5%平仓”这个暂未处理,因为还没明确具体定义。是从什么位置回撤?
浮盈大于3%时,股价回撤0.5%平仓假设我100元买进,到大过103或者以上,那么价格回撤5毛就平仓。
不是按照最高盈利时候回撤0.5%?是按照开仓价作为基础计算的?这个需要再明确下。
从某点起,价格下跌(上涨)。达到该点价格的0.5%时 ,平仓。
上面:
if OPENPROFITPER>=3 then //3%止盈
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end
替换成下面这个
ykds:0.5/100*ENTERPRICE;//回来0.5%对应的价格点数
zdykfd:hhv(OPENPROFITPER,ENTERBARS);
zdyk:hhv(OPENPROFIT,ENTERBARS);
if zdykfd>=3 and OPENPROFIT-zdyk>=ykds then //3%止盈
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end
老师您好,我们以已经开始测试,有些数据要调整,我写了个表格在附件里。有的程序在界面上方有一个表格,参数名,缺省,最小,最大,步长,可以设置的。请您看一下,我表格里的数据能放到这里改吗?
谢谢
上传不了,有没有邮箱可以发送的?
1.可以的。这种参数的使用 需要用input函数的。举例:
INPUT:N1(180,1,300,1),N2(170,1,300,1),N3(20,1,300,1),N4(19,1,300,1);
ma180:ma(c,180);
ma170:ma(c,170);
ma20:ma(c,20);
ma19:ma(c,19);
具体函数说明如下:
INPUT:PNAME1(DFT,MIN,MAX,STEP)
PNAME 表示参数名,
DFT表示缺省值
MIN 表示最小值,MAX表示最大值
STEP 表示优化步长,除DEFAULT外都可省略
同理,止盈止损的点数一样可以这样处理。把之前代码里面的具体数值替换成参数变量就可以了。
2.周期无法通过参数调整。周期需要直接在图表上操作来切换周期。
3.止盈止损开关这种,可以这样做:
INPUT:Iszy(1,0,1,0);
借用这种的止盈的代码:
ykds:0.5/100*ENTERPRICE;//回来0.5%对应的价格点数
zdykfd:hhv(OPENPROFITPER,ENTERBARS);
zdyk:hhv(OPENPROFIT,ENTERBARS);
if zdykfd>=3 and OPENPROFIT-zdyk>=ykds
and Iszy then //3%止盈
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end
把这个Iszy 作为止盈的一个条件放进去就行了。Iszy默认是1
同理止损需要控制的地方也可以这样做。