平滑化された 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))
誰かが実際にいくつかのサンプルデータで計算を行うことができますか?