//开多
IF kdtj THEN
BEGIN
sellshort(holding<0,holding, THISCLOSE);//T检查是否有空单,若有,市价平掉已有空单 THISCLOSE MARKET MARKETR
buy(holding=0,1,THISCLOSE);
END
//开空
kktj:= H1<ref(H1,60) AND H3<REF(H3,60) AND close<ref(H1,60) {and gg2};
IF kktj THEN
BEGIN
SELL(holding<0,holding,THISCLOSE);
BUYSHORT(holding=0,1,THISCLOSE);
END
在一个周期内只开多或者开空一次,然后等待下次信号。在这上面有办法加上解决嘛?今天又亏了啊,请多指教 谢谢
variable:n=0;
variable:m=0;
IF kdtj and n=0 THEN
BEGIN
sellshort(holding<0,holding, THISCLOSE);//T检查是否有空单,若有,市价平掉已有空单 THISCLOSE MARKET MARKETR
buy(holding=0,1,THISCLOSE);
n:=1;
END
//开空
kktj:= H1<ref(H1,60) AND H3<REF(H3,60) AND close<ref(H1,60) {and gg2};
IF kktj and m=0 THEN
BEGIN
SELL(holding<0,holding,THISCLOSE);
BUYSHORT(holding=0,1,THISCLOSE);
m:=1;
END
IF kdtj and n=1 THEN
BEGIN
sellshort(holding<0,holding, THISCLOSE);//T检查是否有空单,若有,市价平掉已有空单 THISCLOSE MARKET MARKETR
buy(enterbars>0 and holding=0,1,THISCLOSE);
END
//开空
kktj:= H1<ref(H1,60) AND H3<REF(H3,60) AND close<ref(H1,60) {and gg2};
IF kktj and m=1 THEN
BEGIN
SELL(holding<0,holding,THISCLOSE);
BUYSHORT(enterbars>0 and holding=0,1,THISCLOSE);
END
加了点东西,你看看成不成
你好老师,刚才的加上去看了一下,只有两次开仓,理论上应该还有多次的今天。是不是开关没有在过了一个周期之后回复到能再开仓的条件,再执行到第二个周期的操作啊。麻烦你在帮忙看看好吗?
老师,这个执行的过程是怎样的?能告诉我吗?谢谢
我的理解是:在开仓条件满足的情况下,先用n=0的开仓,当再次满足的时候,因为n不等于零了就不开了,是这样的嘛?
第一次开仓n=0,后续开仓n=1,但是增加了一个enterbars的判断条件,
这样写不能直接在判断条件里面加enterbars,所以要写个全局变量来控制第一次开仓和后续开仓