老师,请问你一下,以下为开平仓条件,我想设置如果是亏损单的话,则平仓后反向开仓,并设5点止损和5点止赢,而且这个平仓条件不能作为其他单子的平仓条件,只是为了减少回撤使用,该怎么设置
if c>UPPER and macd1>ref(macd1,1) and holding=0 and bjd=0 then buy(holding=0,ss,marketr);
if c<enterprice-5
and holding>0 then
sell(1,holding,marketr);
if c<LOWER and macd1<ref(macd1,1) a and holding=0 and bjk=0 then
buyshort(holding=0,ss,marketr);
if c>enterprice+5
and holding<0 then sellshort(1,holding,marketr);
variable:bj=0;
if c>enterprice+5 and holding<0 and bj=0 then begin
sellshort(1,holding,marketr);
buy(1,1,marketr);
bj:=1;
end
if c<enterprice-5 and holding>0 and bj=0 then begin
sell(1,holding,marketr);
buyshort(1,1,marketr);
bj:=1;
end
if bj=1 and holding>0 and c>enterprice+5 then begin
sell(1,0,marketr);
bj:=0;
end
if bj=1 and holding>0 and c<enterprice-5 then begin
sell(1,0,marketr);
bj:=0;
end
if bj=1 and holding<0 and c<enterprice-5 then begin
sellshort(1,0,marketr);
bj:=0;
end
if bj=1 and holding<0 and c>enterprice+5 then begin
sellshort(1,0,marketr);
bj:=0;
end
测了一下,还是对盈利的单子有影响,倒是对亏损的单子没反应,麻烦老师再帮我看看
以下是引用宁静致远1在2017-3-17 14:20:39的发言:
测了一下,还是对盈利的单子有影响,倒是对亏损的单子没反应,麻烦老师再帮我看看
发出你的截图,让我看到“对盈利有影响对亏损没有”
截图不懂得发,您帮我看一下,下面这些代码有没有什么问题
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
MACD := 2*(DIFF-DEA), COLORSTICK;
abb:=(timetot0(dynainfo(207))>=time0-2) or not(islastbar);
if DEA>0 and macd>0 and macd>ref(macd,1) and abb then buy(holding=0,20,marketr);
if macd<0 and abb and holding>0 then sell(1,0,marketr);
if DEA<0 and macd<0 and macd<ref(macd,1) and abb then buyshort(holding=0,20,marketr);
if macd>0 and abb and holding<0 then sellshort(1,0,marketr);
variable:bj=0;
if c>enterprice+5 and holding<0 and bj=0 then begin
sellshort(1,holding,marketr);
buy(1,1,marketr);
bj:=1;
end
if c<enterprice-5 and holding>0 and bj=0 then begin
sell(1,holding,marketr);
buyshort(1,1,marketr);
bj:=1;
end
if bj=1 and holding>0 and c>enterprice+5 then begin
sell(1,0,marketr);
bj:=0;
end
if bj=1 and holding>0 and c<enterprice-5 then begin
sell(1,0,marketr);
bj:=0;
end
if bj=1 and holding<0 and c<enterprice-5 then begin
sellshort(1,0,marketr);
bj:=0;
end
if bj=1 and holding<0 and c>enterprice+5 then begin
sellshort(1,0,marketr);
bj:=0;
end
如果你用了我的代码然后出现了上述问题,那么你要把错误的地方用实际的情况来解释说明,你光说“有影响,没反映”是解决不了问题的
就是会出现开仓盈利5个点就平仓了,亏损没有达到5个点的就不会反向开仓的情况
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
MACD := 2*(DIFF-DEA), COLORSTICK;
variable:bj=0;
abb:=(timetot0(dynainfo(207))>=time0-2) or not(islastbar);
if DEA>0 and macd>0 and macd>ref(macd,1) and abb then buy(holding=0,20,marketr);
if macd<0 and abb and holding>0 then begin
sell(1,0,marketr);
if numprofit(1)<0 and bj=0 and holding=0 then begin
buyshort(holding=0,1,marketr);
bj:=1;
end
end
if DEA<0 and macd<0 and macd<ref(macd,1) and abb then buyshort(holding=0,20,marketr);
if macd>0 and abb and holding<0 then begin
sellshort(1,0,marketr);
if numprofit(1)<0 and bj=0 and holding=0 then begin
buy(holding=0,1,market);
bj:=1;
end
end
if bj=1 and holding>0 and c>enterprice+5 then begin
sell(1,0,marketr);
bj:=0;
end
if bj=1 and holding>0 and c<enterprice-5 then begin
sell(1,0,marketr);
bj:=0;
end
if bj=1 and holding<0 and c<enterprice-5 then begin
sellshort(1,0,marketr);
bj:=0;
end
if bj=1 and holding<0 and c>enterprice+5 then begin
sellshort(1,0,marketr);
bj:=0;
end