FinancialChart for WinForms
RSI
分析機能 > インジケータ > RSI

FinancialChart の RSI(相対力指数)インジケータは、株価の動きの速さと大きさを測定するモメンタムオシレータです。資産の終値の上向きの動きを取引期間中の下向きの動きと比較して、株の強さまたは弱さを判断します。値は 0 〜 100 の間で変動します。プラスの変化が強い株の方が、マイナスの変化が強い株より RSI が高くなります。

最新の評価益の大きさを最新の評価損と比較する際に RSI を応用することで、資産の買われ過ぎ/売られ過ぎの状況を判断できます。株は、RSI が 70 を超えると買われ過ぎ、30 を下回ると売られ過ぎと見なされます。

また、FinancialChart では、実行時に GetValues() メソッドを使用して、計算された RSI 値を取得できます。これにより、アプリケーションでアラートを作成したり、動的データを使用する際にログを取ることができます。

コードスニペットは、クラス DataService を使用します。コードを確認するには、ATR を参照してください。さらに、このサンプルは RSI クラスのインスタンスを作成して、RSI を使用します。

Dim rsi As New RSI() With
{
    .Name = "RSI"
}

Dim dataService__1 = DataService.GetService()
Dim data = dataService__1.GetSymbolData("box")

FinancialChart1.BeginUpdate()
FinancialChart1.BindingX = "date"
FinancialChart1.Binding = "close"
FinancialChart1.Series.Add(New FinancialSeries())
FinancialChart1.ChartType = C1.Chart.Finance.FinancialChartType.Line
FinancialChart1.DataSource = data
FinancialChart1.Rendered += Function(s, a)
                                financialChart2.AxisX.Min = FinancialChart1.AxisX.ActualMin
                                financialChart2.AxisX.Max = FinancialChart1.AxisX.ActualMax

                            End Function
FinancialChart1.EndUpdate()

financialChart2.BeginUpdate()
financialChart2.ChartType = C1.Chart.Finance.FinancialChartType.Line
financialChart2.BindingX = "date"
financialChart2.Binding = "high,low,close"
financialChart2.Series.Add(rsi)
financialChart2.Legend.Position = C1.Chart.Position.Bottom
financialChart2.DataSource = data
financialChart2.EndUpdate()
period.Value = rsi.Period
RSI rsi = new RSI() { Name = "RSI" };

var dataService = DataService.GetService();
var data = dataService.GetSymbolData("box");

financialChart1.BeginUpdate();
financialChart1.BindingX = "date";
financialChart1.Binding = "close";
financialChart1.Series.Add(new FinancialSeries());
financialChart1.ChartType = C1.Chart.Finance.FinancialChartType.Line;
financialChart1.DataSource = data;
financialChart1.Rendered += (s, a) =>
{
    financialChart2.AxisX.Min = financialChart1.AxisX.ActualMin;
    financialChart2.AxisX.Max = financialChart1.AxisX.ActualMax;
};
financialChart1.EndUpdate();

financialChart2.BeginUpdate();
financialChart2.ChartType = C1.Chart.Finance.FinancialChartType.Line;
financialChart2.BindingX = "date";
financialChart2.Binding = "high,low,close";
financialChart2.Series.Add(rsi);
financialChart2.Legend.Position = C1.Chart.Position.Bottom;
financialChart2.DataSource = data;
financialChart2.EndUpdate();
period.Value = rsi.Period;