- 精华
- 0
- 在线时间
- 18 小时
- UID
- 226419
- 积分
- 28
- 帖子
- 20
- 阅读权限
- 10
- 注册时间
- 2016-1-8
- 最后登录
- 2016-4-15
- 精华
- 0
- UID
- 226419
- 积分
- 28
- 帖子
- 20
- 主题
- 8
- 阅读权限
- 10
- 注册时间
- 2016-1-8
- 最后登录
- 2016-4-15
|
以下公式为系统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 |
|