开拓者期货期权程序化系统交易论坛

标题: 求助:关于系统RSI指标含义 [打印本页]

作者: pb830806clone    时间: 2016-3-18 11:13:42     标题: 求助:关于系统RSI指标含义

以下公式为系统RSI公式,最后RSIValue = 50 * ( ChgRatio + 1 );在网上各种关于RSI的定义都有,但主要是RSI=100×RS/(1+RS) 或者,RSI=100-100÷(1+RS),其中 RS=14天内收市价上涨数之和的平均值/14天内收市价下跌数之和的平均值,这与公式中的定义并不相同,所以我很难理解RSIValue = 50 * ( ChgRatio + 1 );的含义,各位高手能否给予指点啊?
Params
        Numeric Length(14) ;
        Numeric OverSold(30) ;
        Numeric OverBought(70) ;
Vars
        NumericSeries NetChgAvg( 0 );
        NumericSeries TotChgAvg( 0 );
        Numeric SF( 0 );
        Numeric Change( 0 );       
        Numeric ChgRatio( 0 ) ;
        Numeric RSIValue;
Begin       
        If(CurrentBar <= Length - 1)
        {
                NetChgAvg = ( Close - Close[Length] ) / Length ;
                TotChgAvg = Average( Abs( Close - Close[1] ), Length ) ;
        }Else
        {
                SF = 1/Length;
                Change = Close - Close[1] ;
                NetChgAvg = NetChgAvg[1] + SF * ( Change - NetChgAvg[1] ) ;
                TotChgAvg = TotChgAvg[1] + SF * ( Abs( Change ) - TotChgAvg[1] ) ;       
        }
       
        If( TotChgAvg <> 0 )
        {
                ChgRatio = NetChgAvg / TotChgAvg;
        }else
        {
                ChgRatio = 0 ;
        }       
        RSIValue = 50 * ( ChgRatio + 1 );       
        PlotNumeric("RSI",RSIValue);
        PlotNumeric("超买",OverBought);
        PlotNumeric("超卖",OverSold);
End
作者: 小米    时间: 2016-3-18 13:41:08

chgRatio是一个比值,出来的结果是很小的一个值 。
加1再乘50也是为了得到与原超买 超卖坐标一致的结果。。
在百度百科里看到的计算方式也是比值最后要乘以100的计算方式。。
应该不难理解
作者: pb830806clone    时间: 2016-3-19 11:48:11

明白了,RSIValue = 50 * ( ChgRatio + 1 )=50+50*ChgRatio;50相当于中线,而ChgRatio肯定大于-1小于1,所以50*ChgRatio必将大于-50小于50,这样最终的结果就位于0-100之间,以50为中位线上下波动




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2