[C#] 簡單計算 RSI 相對強弱指數

2023-10-20

最近再研究 BTC 的一些指數,有一個東西叫做 RSI (相對強弱指數 是一種技術分析指標,用於即時價格波動的速度和幅度。) 

因為需要這指數判斷一些東西,後來上網查一下,似乎不是很困難,所以筆記一下

給之後有需要用到的人..

這網址有給出很清楚的公式 : https://www.oanda.com/bvi-ft/lab-education/technical_analysis/what_is_rsi/

中間我也參考了 ChatGPT 來做參考..

這邊就直接給程式碼吧,這邊我有查一下通常都是使用收盤價格來當作該數據的依據,不過你怎麼定義那數字就看你自己的使用場景

var btcPrices = new List<decimal> { 51437m, 51858m, 52263m, 51783.6m, 52117.5m, 51646m, 52134.2m, 51901.3m, 51782.4m, 49716.0m, 49941.3m, 48277.3m, 47758.2m, 47127.5m, }; //反轉&#65292;因為我是用最新價格往前紀錄 //如果你順序是從舊到新則不用反轉 btcPrices.Reverse(); var priceChanges = new List<decimal>(); for (int i = 1; i < btcPrices.Count; i++) { var change = btcPrices[i] - btcPrices[i - 1]; priceChanges.Add(change); } var upChanges = new List<decimal>(); var downChanges = new List<decimal>(); foreach (var change in priceChanges) { if (change >= 0) upChanges.Add(change); else downChanges.Add(Math.Abs(change)); } //計算平均上漲還是下跌 var avgUp = upChanges.Sum() / upChanges.Count(); var avgDown = downChanges.Sum() / downChanges.Count(); //計算 RSI var rs = avgUp / avgDown; var rsi = 100 - (100 / (1 + rs)); Console.WriteLine("RSI: " + rsi); //RSI: 67.34935743120623632571185177


大概就是紀錄到這裡,透過 RSI 指數

本文章純技術分享,不構成投資建議


當麻許的碎念筆記 2014 | Donma Hsu Design.