打印本文打印本文 关闭窗口关闭窗口

KDJ中为何有SummationFC函数?

作者:开拓者 TB 来源:cxh99.com 发布时间:2023年03月13日
  • 咨询内容:

    //------------------------------------------------------------------------
    // 简称: KDJ
    // 名称: 快速随机指数
    // 类别: 公式应用
    // 类型: 内建应用
    //------------------------------------------------------------------------
    Params
        Numeric Length(14);            
        Numeric SlowLength(3);    
        Numeric SmoothLength(3);
    Vars
        Series<Numeric> HighestValue;                
        Series<Numeric> LowestValue;        
        Series<Numeric> KValue;
        Numeric SumHLValue;
        Numeric SumCLValue;
        Numeric DValue;
    Events
        OnBar(ArrayRef<Integer> indexs)
        {
            Range[0:DataSourceSize() - 1]
            {
                HighestValue = HighestFC(High, Length);
                LowestValue = LowestFC(Low, Length); 
                SumHLValue = SummationFC(HighestValue-LowestValue,SlowLength);
                SumCLValue = SummationFC(Close - LowestValue,SlowLength);
                If(SumHLValue <> 0)
                {
                    KValue = SumCLValue/SumHLValue*100;
                }Else
                {
                    KValue = 0;
                }
                DValue = AverageFC(KValue,SmoothLength);
                PlotNumeric("K",KValue);
                PlotNumeric("D",DValue);
                PlotNumeric("J",3*KValue - 2*DValue);
                PlotNumeric("Ref1",20);
                PlotNumeric("Ref2",80);
            }
        }    
    //------------------------------------------------------------------------
    // 编译版本    GS2010.12.08
    // 版权所有    TradeBlazer Software 2003-2025
    // 更改声明    TradeBlazer Software保留对TradeBlazer平
    //            台每一版本的TradeBlazer公式修改和重写的权利
    //------------------------------------------------------------------------

     

    我理解的KDJ意思是,先求出最高值,再求出最低值,就可以计算RSV(t)=100*(C(t)-L(t))/(H(t)-L(t))。

    K(t)=(RSV(t)*SlowLength+RSV(t-1)(1-SlowLength))/SlowLength,也就是用了SMA,

    但公式里为何有求和的计算?公式如下

    SumHLValue = SummationFC(HighestValue-LowestValue,SlowLength);
    SumCLValue = SummationFC(Close - LowestValue,SlowLength);

    意思是求出最近SlowLength天的C-L,H-L,然后分别求和,再相除得到的K?不理解公式里的含义。

     

    函数 策略

     

     来源:CXH99.COM

  • TBQuant技术回复:

    TB的KDJ公式和其他软件有点不一样,但总体结果相差不大。如果您觉得其他软件的计算公式更好,可以照着TB KDJ的样子改写一个。

打印本文打印本文 关闭窗口关闭窗口