请教关于达到预定盈利之后启动跟踪止盈,例如当浮盈利大于多头预定盈利值后以持仓最高价回落跌破(最高价-开仓价)*20%时平仓,空头平仓同理,遇到问题是代码不执行,请问老师那里出问题了,漏写哪一个步骤。
//多空跟踪止盈模块代码组
If(BarsSinceEntry==0)
{
Highzg=High;
Lowzd=Low;
If(MarketPosition<>0)
{
Highzg=max(Highzg,High);
Lowzd=Min(Lowzd,Low);
}
}
//多头跟踪止盈二级启动
If(MarketPosition==1&&BarsSinceEntry>1)
{
Highzg=Highzg;
If(Highzg[1]>EntryPrice+myS)
{
If(Low<=Highzg[1]-0.2*(Highzg[1]-EntryPrice));
{
Sell(0,min(Open,Highzg[1]-0.2*(Highzg[1]-EntryPrice)));
Commentary("多头跟踪止盈");
a=1;
}
}
}
//空头跟踪止盈二级启动
If(MarketPosition==-1&&BarsSinceEntry>1)
{
Lowzd=Lowzd;
If(Lowzd[1]<EntryPrice-myB)
{
If(High>=0.2*(EntryPrice-Lowzd[1])+Lowzd[1])
{
BuyToCover(0,max(Open,0.2*(EntryPrice-Lowzd[1])+Lowzd[1]));
Commentary("空头跟踪止盈");
b=1;
}
}
}
第一段这么改下:
If(MarketPosition<>0 And BarsSinceEntry==0)
{
Highzg=High;
Lowzd=Low;
}
Else If(MarketPosition<>0 And BarsSinceEntry>0)
{
Highzg=max(Highzg,High);
Lowzd=Min(Lowzd,Low);
}
非常感谢蔡总解答,多次在我困惑时热心解惑犹如之路明灯。我找到原因原来写代码不够细心在myb和mys重复计算了Entrypice。