老师好,因为开仓用的是走完1根K线(软件设置),
这个移动止损能否改成触发止损?(不用走完1根K线)
//移动止损部分************************
//求出持仓以来的最高价或最低价,通过与当前价做比较,判断资金回落的幅度
hh:=hhv(h,enterbars+1);
ll:=llv(l,enterbars+1);
if c<hh-2*mindiff and holding>0 then sell(1,holding,marketr);
if c>ll+2*mindiff and holding<0 then sellshort(1,holding,marketr);
这个不可以,你可以把策略调成固定间隔的模式,来实现止损满足条件立即触发。把其他的开平仓条件,用ref,变相实现开仓是走完一根K线的模式。
CONKD:(C>O OR (C=O AND C>REF(C,1)))AND (MA1>MA2) AND (MA2>MA3) ; //开多条件
CONKK:(C<O OR (C=O AND C<=REF(C,1)))AND (MA1<MA2) AND (MA2<MA3) ; //开空条件
请改一下
CONKD:REF((C>O OR (C=O AND C>REF(C,1))) AND (MA1>MA2) AND (MA2>MA3),1); //开多条件
CONKK:REF((C<O OR (C=O AND C<=REF(C,1))) AND (MA1<MA2) AND (MA2<MA3),1); //开空条件
INPUT:A(1,1,100,1),B(5,1,1000,1),D(30,1,1000,1),SS(1,1,100,1);//均线参数,下单手数 都在这里调整参数即可
MA1:MA(CLOSE,A);
MA2:MA(CLOSE,B);
MA3:MA(CLOSE,D);
CONKD:REF(C>O OR (C=O AND C>REF(C,1)))AND (MA1>MA2) AND (MA2>MA3) ; //开多条件
CONKK:REF(C<O OR (C=O AND C<=REF(C,1)))AND (MA1<MA2) AND (MA2<MA3) ; //开空条件
//移动止损部分************************
//求出持仓以来的最高价或最低价,通过与当前价做比较,判断资金回落的幅度
hh:=hhv(h,enterbars+1);
ll:=llv(l,enterbars+1);
if c<hh-2*mindiff and holding>0 then sell(1,holding,marketr);
if c>ll+2*mindiff and holding<0 then sellshort(1,holding,marketr);
IF CONKD THEN
BUY(1,SS,MARKET);
IF CONKK THEN
BUYSHORT(1,SS,MARKET);
是你自己代码写错了啊,缺少了个参数,看下4楼的回帖。

此主题相关图片如下:11.png
