写了一个内部函数。编译时一直提示变量声明Change这句缺少分号。明明有分号了啊。是不是变量声明的格式不对。有范例么
Defs
Numeric Rsi_Formula(Numeric Price, Numeric Length)
{
Series<Numeric> Change ; // 价格变化值
Numeric AvgU; // 平均上涨幅度
Numeric AvgD; // 平均下跌幅度
Numeric RS; // 相对强度RS
Numeric RSI_Value(0); // RSI计算结果*/
// =========== 开始计算 ===========
// 计算当前Bar与上一个Bar的价格变化
Change = Price - Price[1];
// 计算平均上涨幅度和平均下跌幅度(使用Wilders平滑方法)
AvgU = XAverage(Max(Change, 0), Length);
AvgD = XAverage(Max(-Change, 0), Length);
// 计算相对强度RS,并避免除以0的错误
If(AvgD != 0)
{
RS = AvgU / AvgD;
RSI_Value = 100 - (100 / (1 + RS));
}
Else
{
// 当AvgD为0时,如果AvgU>0则RSI为100,否则为50(表示无变化)
If(AvgU > 0)
{
RSI_Value = 100;
}
Else
{
RSI_Value = 50;
}
}
Return RSI_Value;
}
defs定义临时函数内只能定义临时变量,不能定义其他比如series类型的变量
把这个变量定义拿到vars域下