这是DMI指标代码,帮我看看是什么问题
//------------------------------------------------------------------------
// 简称: DMI
// 名称: 方向移动指标
// 类别: 公式应用
// 类型: 内建应用
// 来源:ai.kanpan789.com
//------------------------------------------------------------------------
Params
Numeric Length(14); // DMI计算周期
Vars
Series<Numeric> PlusDM; // +DM值
Series<Numeric> MinusDM; // -DM值
Series<Numeric> TR; // True Range
Series<Numeric> SmoothedPlusDM; // 平滑后的+DM
Series<Numeric> SmoothedMinusDM; // 平滑后的-DM
Series<Numeric> SmoothedTR; // 平滑后的True Range
Series<Numeric> PlusDI; // +DI值
Series<Numeric> MinusDI; // -DI值
Series<Numeric> DX; // DX值
Series<Numeric> ADX; // ADX值
Events
OnReady()
{
SetBackBarMaxCount(Length);
}
OnBar(ArrayRef<Integer> indexs)
{
// 计算True Range (TR)
TR = Max(Max(High - Low, Abs(High - Close[1])), Abs(Low - Close[1]));
// 计算+DM和-DM
PlusDM = IIF((High - High[1]) > (Low[1] - Low), Max(High - High[1], 0), 0);
MinusDM = IIF((Low[1] - Low) > (High - High[1]), Max(Low[1] - Low, 0), 0);
// 平滑+DM、-DM和TR
If(CurrentBar == 0)
{
SmoothedPlusDM = PlusDM;
SmoothedMinusDM = MinusDM;
SmoothedTR = TR;
}
Else
{
SmoothedPlusDM = (SmoothedPlusDM[1] * (Length - 1) + PlusDM) / Length;
SmoothedMinusDM = (SmoothedMinusDM[1] * (Length - 1) + MinusDM) / Length;
SmoothedTR = (SmoothedTR[1] * (Length - 1) + TR) / Length;
}
// 计算+DI和-DI
PlusDI = 100 * SmoothedPlusDM / SmoothedTR;
MinusDI = 100 * SmoothedMinusDM / SmoothedTR;
// 计算DX
DX = 100 * Abs(PlusDI - MinusDI) / (PlusDI + MinusDI);
// 计算ADX
If(CurrentBar < Length)
{
ADX = InvalidNumeric;
}
Else If(CurrentBar == Length)
{
ADX = AverageFC(DX, Length);
}
Else
{
ADX = (ADX[1] * (Length - 1) + DX) / Length;
}
// 绘制指标
PlotNumeric("+DI", PlusDI);
PlotNumeric("-DI", MinusDI);
PlotNumeric("ADX", ADX);
}
//------------------------------------------------------------------------
// 编译版本 GS2014.10.25
// 来源:ai.kanpan789.com
// 更改声明 TradeBlazer Software保留对TradeBlazer平台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
是不是要设置成副图呢?