3

平滑化された RSI を取得するのに問題があります。下の写真は freestockcharts.com からのものです。計算はこのコードを使用します。

public static double CalculateRsi(IEnumerable<double> closePrices)
{
    var prices = closePrices as double[] ?? closePrices.ToArray();

    double sumGain = 0;
    double sumLoss = 0;
    for (int i = 1; i < prices.Length; i++)
    {
        var difference = prices[i] - prices[i - 1];
        if (difference >= 0)
        {
            sumGain += difference;
        }
        else
        {
            sumLoss -= difference;
        }
    }

    if (sumGain == 0) return 0;
    if (Math.Abs(sumLoss) < Tolerance) return 100;

    var relativeStrength = sumGain / sumLoss;

    return 100.0 - (100.0 / (1 + relativeStrength));
}

https://stackoverflow.com/questions/...th-index-using-some-programming-language-js-c

これは、平滑化なしの純粋な RSI のようです。平滑化された RSI はどのように計算されますか? これら 2 つのサイトの定義に合わせて変更しようとしましたが、出力は正しくありませんでした。かろうじて滑らかになりました。

(リンクを投稿するのに十分な担当者がいません)

tc2000 -> Indicators -> RSI_and_Wilder_s_RSI (Wilder's smoothing = Previous MA value + (1/n periods * (Close - Previous MA)))

priceactionlab -> wilders-cutlers-and-harris-relative-strength-index (RS = EMA(Gain(n), n)/EMA(Loss(n), n))

誰かが実際にいくつかのサンプルデータで計算を行うことができますか?

ワイルダーのRSI対RSI ここに画像の説明を入力

4

2 に答える 2