- 精华
- 11
- 在线时间
- 3540 小时
- UID
- 1
- 积分
- 25132
- 帖子
- 6291
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-4-22
- 精华
- 11
- UID
- 1
- 积分
- 25132
- 帖子
- 6291
- 主题
- 149
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-4-22
|
只是两条参数不一样的RSI。
1、先新建一个用户函数,假设命名为RSI,返回值为数值型,代码如下:
- Params
- Numeric Length1(14) ;
- Vars
- NumericSeries NetChgAvg( 0 );
- NumericSeries TotChgAvg( 0 );
- Numeric Change( 0 );
- Numeric SF( 0 );
- Numeric ChgRatio( 0 ) ;
- Numeric RSIValue;
- Begin
- SF = 1/Length;
- If(CurrentBar < Length)
- {
- RSIValue = InvalidNumeric;
- }Else
- {
- If(CurrentBar == Length)
- {
- NetChgAvg = ( Close - Close[Length] ) / Length ;
- TotChgAvg = AverageFC( Abs( Close - Close[1] ), Length ) ;
- }
-
- If(CurrentBar>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 ) ;
- }
- return RSIValue;
- End
复制代码
2、再新建一个技术指标,假设命名为MyRSI,代码如下:
- Params
- Numeric Length1(7) ;
- Numeric Length2(14) ;
- Numeric OverSold(30) ;
- Numeric OverBought(70) ;
- Vars
- Numeric RSI1;
- Numeric RSI2;
- Begin
- RSI1 = RSI(Length1);
- RSI2 = RSI(Length2);
- PlotNumeric("RSI1",RSI1);
- PlotNumeric("RSI2",RSI2);
- PlotNumeric("超买",OverBought);
- PlotNumeric("超卖",OverSold);
- End
复制代码 |
|