FinancialChart for WinForms
Williams %R
分析機能 > インジケータ > Williams %R

FinancialChart のWilliams %R (ウィリアムズ %R)インジケータは、現在の資産価格を過去の一定の期間中の最高値と比較するモメンタムインジケータです。通常、比較対象の過去の期間は 14 期間です。このインジケータは、0 〜 -100 の間で変動します。これは、短期ストキャスティクスの逆になります。Williams %Rが過去の期間の最高値と比較した株の終値のレベルを表示するのに対して、ストキャスティクスは最安値と比較した株の終値のレベルを表示します。どちらのインジケータも同じ線を示しますが、スケーリングが異なります。Williams %R を買われ過ぎ/売られ過ぎのレベルの判定に応用すると、買いと売りのシグナルを提供したり、モメンタムを確認することができます。

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

次のコードスニペットは、WilliamsR クラスのインスタンスを作成して、このインジケータを使用します。

Dim wr As New WilliamsR() With
{
    .Name = "WilliamsR"
}

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(wr)
financialChart2.Legend.Position = C1.Chart.Position.Bottom
financialChart2.DataSource = data
financialChart2.EndUpdate()
period.Value = wr.Period
WilliamsR wr = new WilliamsR() { Name = "WilliamsR" };

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(wr);
financialChart2.Legend.Position = C1.Chart.Position.Bottom;
financialChart2.DataSource = data;
financialChart2.EndUpdate();
period.Value = wr.Period;