下面的命令显示
类型1 错误Abs函数调用时的参数数目与声明时不符合(太多的调用参数)104133clm235879QQE_pro用户
Params
//此处添加参数
Numeric RSIPeriod(20);
Vars
//此处添加变量
Series<Numeric> NetChgAvg( 0 );
Series<Numeric> TotChgAvg( 0 );
Numeric SF( 0 );
Numeric Change( 0 );
Numeric ChgRatio( 0 );
Series<Numeric> RSIvalue;
Series<Numeric> Rsima;
Series<Numeric> trr;
Series<Numeric> TrLevelSlow;
Events
OnBar(ArrayRef<Integer> indexes)
{
Numeric SF = 6;
Numeric QQE=4.236;
Numeric WildersPeriod = RSIPeriod * 2 -1;
if (CurrentBar < WildersPeriod )
Return;
//-------------传统RSI强弱指标
Numeric length1=RSIPeriod;
If(CurrentBar <= length1 - 1)
{
NetChgAvg = ( Close - Close[length1 ] ) / length1 ;
TotChgAvg = Average( Abs( Close - Close[1 ], length1 );
}
Else
{
SF1 = 1/length1;
Change = Close - Close[1 ];
NetChgAvg = NetChgAvg[1 ] + SF1 * ( Change - NetChgAvg[2 ] ) / SF1;
TotChgAvg = TotChgAvg[1 ] + SF1 * ( Abs( Change ) - TotChgAvg[1 ] ) / SF1;
}
if(TotChgAvg <> 0 )
{
ChgRatio = NetChgAvg / TotChgAvg;
}
else
{
ChgRatio = 0 ;
}
RSIvalue = 50 * ( ChgRatio + 1 );
//-------------计算QQE指标
Numeric MyRsi = RSIvalue;
Rsima = Average(MyRsi,sf);
Numeric AtrRS = abs(Rsima[1 ] - Rsima);
Numeric MaAtrRs = Average(atrrs, WildersPeriod);
Numeric dar =Average(MaAtrRs,WildersPeriod) * QQE;
Numeric trr=TrLevelSlow[1 ];
Numeric dv = trr;
if( RsIMA[0]<trr)
{
trr = RsIMA[0 ] + dar;
if(RsIMA[1 ]<dv)
{
if(trr>dv)
trr=dv;
}
}
else if (RsIMA[0]>trr)
{
trr = RsIMA[0 ] - dar;
if(RsIMA[1 ]>dv)
{
if(trr<dv)
trr=dv;
}
}
TrLevelSlow=trr;
bool bb=CrossOver(rsiMA,trLevelSlow);
bool ss=CrossUnder(rsiMA,trLevelSlow);
Numeric atr=AvgTrueRange(20);
if(bb)
PlotString("A","A",low-atr,red);
if(ss)
PlotString("V","V",high+atr,White);
}
TotChgAvg = Average( Abs( Close - Close[1 ], length1 );
少了一个下括号
小括号没配对
兄弟,2022年开始的还在问这种.....
谢谢,我2022年开始后亏了不少就没用了
oh对不起
👍