为什么KValue是Series<Numeric> DValue是Numeric 两者的数据类型不一样 感谢!

hi,下图是个KDJ指标  请问:

1)为什么KValue是Series<Numeric>  ,  DValue是Numeric  ,两者的数据类型不一样 。

2)请问下面代码 DValue能否也改成Series<Numeric>数据类型呢 (详见下图红色mark)

//------------------------------------------------------------------------

// 简称: kdj1

// 名称: kdj_me1

Params

   Numeric Length(9);    // 也有用14的 即(9,3,3) 或  (14,3,3)  

   Numeric SlowLength(3);    

   Numeric SmoothLength(3);

Vars

Series<Numeric> HighestValue;

Series<Numeric> LowestValue;


Series<Numeric> KValue;

Numeric DValue;  //为什么KValue是Series<Numeric>    DValue是Numeric  两者的数据类型不一样

Numeric SumHLValue;

Numeric SumCLValue;


Events

OnBar(ArrayRef<Integer> indexs)

{

Range[0:DataSourceSize() - 1]

{

HighestValue = HighestFC(High, length);

LowestValue = LowestFC(Low, Length);

SumHLValue = SummationFC(HighestValue - LowestValue,slowLength); //过去3根K线的即SlowLength(3) 上轨-下轨的差加起来  H-L  所以是SumHLValue

SumCLValue = SummationFC(Close - LowestValue,SlowLength);   //过去3根K线的即SlowLength(3) 收盘价-下轨的差加起来  C-L  所以是SumCLValue

If(SumHLValue <> 0)

{

KValue = SumCLValue/SumHLValue*100;

}Else

{

KValue = 0;

}

DValue = AverageFC(KValue,SmoothLength);  //  SmoothLength(3)

PlotNumeric("K",KValue);

PlotNumeric("D",DValue);

PlotNumeric("J",3*KValue - 2*DValue);

PlotNumeric("Ref1",20);   //超卖  跌太多可能反弹

PlotNumeric("Ref2",80);   //超买  涨 太多可能反弹

}

}  

Series<Numeric> KValue;

Numeric DValue;

一个是序列变量,一个是普通变量

序列能继承之前的值

至于为什么,看写的人

可能帮你写的人没有强迫症,能跑就行

但你把这个作为一个指标的时候,Series<Numeric> 和 Numeric  这两种类型 都可以

如果你这是策略的一部分,策略其他部分需要回溯引用 K 、D、J的值,就要用Series<Numeric>  类型。具体数据类型的应用场景可以看 零基础学量化 课程

https://video.tbquant.net/