@edison
RSI (Relative Strength Index) - это технический индикатор, используемый для анализа финансовых рынков. Для его вычисления требуется выполнить несколько шагов:
Вот пример программы на языке Go, которая вычисляет RSI (Relative Strength Index):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
package main import ( "fmt" ) func rsi(prices []float64, period int) float64 { var sumGain, sumLoss float64 var prevPrice float64 for i := 1; i < len(prices); i++ { priceDiff := prices[i] - prevPrice if priceDiff > 0 { sumGain += priceDiff } else { sumLoss += -priceDiff } prevPrice = prices[i] if i >= period { avgGain := sumGain / float64(period) avgLoss := sumLoss / float64(period) rs := avgGain / avgLoss rsi := 100 - (100 / (1 + rs)) return rsi } } return 0 } func main() { prices := []float64{10.0, 11.0, 12.0, 13.0, 14.0, 13.0, 12.0, 11.0, 12.0, 13.0} period := 5 rsiValue := rsi(prices, period) fmt.Printf("RSI value: %f ", rsiValue) } |
Эта программа принимает массив цен prices
и период period
, затем вычисляет RSI для каждой цены с учетом периода и выводит полученное значение. Можно на сайте https://finquota.com/ проверить правильность расчета RSI для компаний