请教老师,我想编一个移动止盈策略,开多后下跌5跳止损,上涨的时候超过5跳回调后止盈,超过8跳以后从最高点回调2跳止盈,程序如下,不过在WH8里可能正常移动止盈,但是在MQ里就不好用呢,求帮助
是我MULTSIG后面参数设置的问题么?
setting
MULTSIG:0,0,0,0,2,0;
Params
Numeric FastLength(5);
Numeric SlowLength(20);
Vars
NumericSeries AvgValue1;
NumericSeries AvgValue2;
Begin
AvgValue1 = AverageFC(Close, FastLength);
AvgValue2 = AverageFC(Close, SlowLength);
PlotNumeric("MA1",AvgValue1);
PlotNumeric("MA2",AvgValue2);
If(MarketPosition <>1 && crossup(AvgValue1 , AvgValue2))
{
Buy(1,Open);
}
if( (BKPRICE-Close>=5*MINPRICE1) || (BKHIGH>(BKPrice+5*MINPRICE1)&&Close<=(BKPrice+5*MINPRICE1)) || (BKHIGH>(BKPrice+8*MINPRICE1)&&Close<=(BKHIGH-2*MINPRICE1)))
{
Sell(1,Close);
}
End
老师您粘贴的交易记录和我遇到的问题是一样的,以下是WH8相同的公式,移动止盈的思路是一样的 ,WH8跑和MQ跑结果不一样,我用MQ跑和您的记录一样
MA1:MA(C,5);
MA2:MA(C,20);
X:=MA(C,5);
Y:=MA(C,20);
CROSSUP(X,Y),BK(1);
(BKPRICE-CLOSE>=5*MINPRICE1) || (BKHIGH>(BKPRICE+5*MINPRICE1)&&CLOSE<=(BKPRICE+5*MINPRICE1)) || (BKHIGH>(BKPRICE+8*MINPRICE1)&&CLOSE<=(BKHIGH-2*MINPRICE1)),SP(1);
MULTSIG(0,0,2,0);
发现您反馈的现象了,这里我们后续后优化一下BKHIGH函数在回测时的计算的
BHHIGH函数在盘中是可以正常返回值的,暂时您可以实际运行测试,感谢您的反馈
是的,回测中BKHIGH函数的问题,下次升级会解决
暂时需要在模组中实际运行测试