Params
Numeric Length(10); //用于计算ATR和新高价的Bar数
Numeric Trigger(0.79);
//用于计算多头进场价的驱动系数
Numeric Acceleration(0.05);
//抛物线的加速系数
Numeric FirstBarMultp(5);
//用于计算在进场Bar设置止损价的系数
Vars
NumericSeries ATR;
NumericSeries StopPrice;
//跟踪止损价
NumericSeries HighValue;
//多头进场之后的盈利峰值价
NumericSeries AF;
//跟踪Acceleration
BoolSeries Condition1(False);
Numeric StopATR;
Begin
// 集合竞价和小节休息过滤
If(!CallAuctionFilter()) Return;
//初始设置
ATR=AvgTrueRange(Length);
Condition1=High>Highest(High[1],Length);
//上一根Bar创新高后且当前Bar最高价突破上一根Bar收盘价加上ATR的一定倍数多头入场
If(Condition1[1])
{
If(High>=Close[1]+ATR[1]*Trigger And Vol > 0)
{
Buy(0,Max(Open,Close[1]+ATR[1]*Trigger));
}
}
//记录盈利峰值价和跟踪止损价
StopATR = Average(TrueRange,3);
If(MarketPosition==1 And BarsSinceEntry==0)
{
StopPrice=Low-StopATR*FirstBarMultp;
AF=Acceleration;
HighValue=High;
}Else If(MarketPosition==1 And BarsSinceEntry>0)
{
If(High>HighValue) HighValue=High;
If(HighValue>HighValue[1] And AF<0.2)
{
AF=AF+Min(Acceleration,0.2-AF);
}
StopPrice=StopPrice+AF*(HighValue-StopPrice);
}
//在图标上画出跟踪止损价
PlotNumeric("StopPrice",StopPrice);
//向下突破跟踪止损价多头出场
If(MarketPosition==1 And BarsSinceEntry>0 And Low<=StopPrice[1] And Vol > 0)
{
Sell(0,Min(Open,StopPrice[1]));
}
End
请老师 帮改成 金字塔的指标