RSI的c#计算,同花顺

同花顺的RSI是移动平滑计算,折腾我半天了。为了算当前值,一定要把前面的值记下来。真麻烦  

        ///LC := REF(CLOSE,1);
        /// 当日上涨平均数 = 前一日涨幅平均数*5/6 + 当日涨幅/6 (若某日下跌时,则当日涨幅记为0)
        /// RSI$1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100; 

public static double CalculateRSI(List<StockData> stockDataList, int period = 6)
        {
            if (stockDataList == null || stockDataList.Count < period)
                throw new ArgumentException("Not enough data points to calculate RSI.");
 
            int 前面的时间段 = period - 1;
            StockData 今天的 = stockDataList[stockDataList.Count - 1];
            StockData 前一天的 = stockDataList[stockDataList.Count - 2];
            double 今天的涨 = Math.Round(Math.Max(0, 今天的.Close - 今天的.Pre_Close), 2);
            double 今天的滑动涨 = 今天的.SMAMAX=(前一天的.SMAMAX * 前面的时间段 + 今天的涨)/ period;

            double 今天的幅度 = Math.Round(Math.Abs(今天的.Close - 今天的.Pre_Close), 2);//不管涨跌
            double 今天的滑动幅度 = 今天的.SMAABS=(前一天的.SMAABS * 前面的时间段 + 今天的幅度) / period;
            // 计算 RSI
            double rsi =100*今天的滑动涨/ 今天的滑动幅度;
            return rsi;
        }

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值