iWPR 関数
この関数は、任意に設定したパラメータのWPR (ウィリアムズ パーセント レンジ) の値を計算して、その値を取得します。WPRはオシレータ系のインジケータに分類されます。
WPR
WPR (Williams’ Percent Range [ウィリアムズ パーセント レンジ]) は、価格の現在の位置が過剰買い状態や過剰売り状態にあるかどうかを示すオシレーター系の指標です。
一定期間の最高値と最安値に基づいて計算され、-100から 0の範囲で値を示します。WPRが-80以下になると過剰売り状態を意味し、価格が反転する可能性が高まります。逆に、WPRが-20以上になると過剰買い状態を意味し、価格の下落の可能性が高まります。
WPRはトレンド転換や逆張りのエントリーポイントを特定するために使用されます。ただし、単独で使用するのではなく、他のテクニカル分析ツールと組み合わせることが一般的です。
MT4でチャート上にWPRをプロットする時はナビゲーター中のインディケータ → 「オシレーター」 → 「Williams’ Percent Range」インジケータを使用します。
(WPRの計算式)
WPRの計算方法は、以下のとおりです。
WPR = (N期間の最高値 - 現在の終値) ÷ (N期間の最高値 - N期間の最安値) ✕ -100
N:期間。通常、日足チャートで14期間、4時間足で10期間、1時間足で7期間が使われます。
(WPRの使い方)
WPRは、次のように使われます。
①過剰買いと過剰売りのレベルの設定
WPRは通常、-80から-100の範囲を過剰売り領域とし、-20から0の範囲を過剰買い領域として設定します。これらのレベルは一般的な設定ですが、トレーダーは自身の戦略や市場の特性に合わせて調整することもできます。
②過剰買い・過剰売りのシグナル
WPRが過剰買い領域から-20を下回ると、過剰買いシグナルとみなされます。これは買われすぎた状態からの反転の可能性を示唆しています。逆に、WPRが過剰売り領域から-80を上回ると、過剰売りシグナルと見なされます。これは売られすぎた状態からの反転の可能性を示唆しています。
③反転ポイントの確認
WPRが過剰買いまたは過剰売り領域に到達した後、トレーダーは他のテクニカル指標や価格パターンと組み合わせて反転ポイントを確認します。たとえば、トレンドラインやサポート・レジスタンスレベル、他のオシレーター指標などを検討することが有益です。
④ダイバージェンス (ずれ) の確認
WPRの値と価格との間にダイバージェンスが生じる場合、それは市場の逆転シグナルとなる可能性があります。価格が上昇しているのに対してWPRが下降している場合、または価格が下落しているのに対してWPRが上昇している場合に注意が必要です。
注意点として、WPRは単独ではなく他のテクニカル指標や価格パターンと組み合わせて使用することが重要です。また、過剰買いや過剰売りの状態が持続する場合もあるため、他の要素との確認が必要です。トレードを行う前に、十分なバックテストやデモトレードを行い、WPRを含む指標の使い方を習得することをおすすめします。
データ型と構成・戻り値
double iWPR(①, ②, ③, ④);
戻り値は、任意に設定したパラメータのWPRの値を計算して、その値を返します。
引数 [4]
iWPR関数は 4個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 計算対象の通貨ペア名。 「NULL」は選択チャートの通貨ペア名が選択されます。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。 「0」は現在チャートの時間軸が選択されます。 |
③ | period | int | - | - | WPRの計算期間。WPRを計算するバーの数を数値で設定します。 |
④ | shift | int | - | - | WPRの値を算出するバーの位置。 現在のバーから指定した時間軸のバー数だけ過去へシフトします。たとえば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。 |
使用例
iWPR関数によるWPR値の計算
iWPR関数を使って、現在のWPR値を算出します。条件は、時間軸に日足チャートを使用して、期間は14日間とします。
コード
// iWPR関数によるWPR値の計算
#property strict
void OnInit() {
int period = 14; // WPRの計算期間
double WPR = iWPR(NULL, 0, period, 0);
Print("WPR値:", WPR);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)