老师帮我写一个这样的公式:多单:MA5上穿MA60买开仓,在开仓哪根K线跟前面5根的最低价止损,止盈价=开仓价+(开仓价-止损价)。
空单:MA5下穿MA60买开仓,在开仓哪根K线跟前面5根的最高价止损,止盈价=开仓价-(止损价-开仓价)。
您的思路中含有取开仓位置前面5根的最低价,要用到信号记录函数,需要在程序化软件wh8中实现
wh6是看盘软件,不支持这类程序化思路的函数,您了解下
给您编写适用于wh8的模型?
参考:
MA5:MA(C,5);
MA60:MA(C,60);
LL1:=REF(LLV(L,5),BARSBK+1);
OO1:=REF(O,BARSBK);
HH1:=OO1+(OO1-LL1);
LL2:=REF(HHV(H,5),BARSSK+1);
OO2:=REF(O,BARSSK);
HH2:=OO2-(LL2-OO2);
CROSS(MA5,MA60),BK;
CROSSDOWN(MA5,MA60),SK;
C<LL1||C>HH1,SP;
C>LL2||C<HH2,BP;
AUTOFILTER;
是的,需要在wh8中使用
模型中含有BARSBK信号记录函数,属于程序化的思路,wh6看盘软件不支持这类函数的
老师我有个问题您给我的哪个公式里面这条OO1:=REF(O,BARSBK);,括号里的O是开盘价是吧。按照我一楼是要求应该要开仓价才对啊。
还有就是可不可以改一下,止损止盈的时候不是收盘价大于或小于哪个点位才执行,而是价格触发了哪个点位就执行。
这样改下:
MA5:MA(C,5);
MA60:MA(C,60);
LL1:=REF(LLV(L,5),BARSBK+1);
HH1:=BKPRICE+(BKPRICE-LL1);
LL2:=REF(HHV(H,5),BARSSK+1);
HH2:=SKPRICE-(LL2-SKPRICE);
CROSS(MA5,MA60),BK;
CROSSDOWN(MA5,MA60),SK;
C<LL1||C>HH1,SP;
C>LL2||C<HH2,BP;
CHECKSIG(BP,'A',0,'C',0,0);//出信号立即下单,不复核
CHECKSIG(SP,'A',0,'C',0,0);//出信号立即下单,不复核
AUTOFILTER;
MA60:MA(C,60);
LL1:=REF(LLV(L,5),BARSBK+1);
HH1:=BKPRICE+(BKPRICE-LL1);
LL2:=REF(HHV(H,5),BARSSK+1);
HH2:=SKPRICE-(LL2-SKPRICE);
CROSS(MA5,MA60),BK;
CROSSDOWN(MA5,MA60),SK;
C<LL1||C>HH1,SP;
C>LL2||C<HH2,BP;
CHECKSIG(BP,'A',0,'C',0,0);//出信号立即下单,不复核
CHECKSIG(SP,'A',0,'C',0,0);//出信号立即下单,不复核
AUTOFILTER;