Parafrac V2オシレーター:パラボリックSARとATRの統合
概要
テクニカル指標の数が増えることで、トレーダーはチャートの混雑や分析の過負荷に直面することが少なくありません。本記事では、パラボリックSAR (Stop and Reverse)とATRを統合して設計された、新しいテクニカル分析ツールであるParafrac V2オシレーターを紹介します。本オシレーターは、従来のParafracオシレーターに存在した重要な制約を解消しています。従来モデルでは、パラボリックSARとフラクタル指標を組み合わせていましたが、単一バーの極端な価格スパイクによって、異常かつ誤解を招くシグナルが生成されることがありました。
Parafrac V2では、フラクタルの代わりにATRを採用することで、市場のボラティリティを正確に測定し、トレンドの動態や潜在的な反転ゾーン、強気と弱気のダイバージェンスをより堅牢かつ滑らかに特定できるようになっています。本記事では、複合指標の理論的背景を説明するとともに、フラクタルからATRへの手法変更の妥当性を説明し、トレーダーがこの新しいオシレーターを用いて独自の取引シグナルを開発や調整するためのフレームワークを提示します。
はじめに
テクニカル分析の領域では、信頼できる単一のシグナルを求めるあまり、複数の指標を同時に用いてシグナルを確認する市場参加者が少なくありません。しかし、この方法は確認精度の向上を目指す一方で、インターフェースの混雑や解釈の複雑化を招きがちです。より洗練された解決策としては、複数の分析手法を一つの統合オシレーターにまとめることが挙げられます。このような複合指標は、構成要素間の相乗効果を活かすことで、より精緻で信頼性の高いシグナルを提供できる可能性があります。
オリジナルのParafracオシレーターは、パラボリックSARのトレンド追従能力とフラクタル指標のボラティリティ検出機能を組み合わせた初期の試みでした。しかし、多くの実証的観察により、単発の高ボラティリティバーによってシグナルが歪むことが判明しました。このノイズを軽減するため、オシレーターの出力には-10から+10の範囲制限が設けられていました。本記事では、この基盤をさらに発展させ、フラクタル指標をATRに置き換えるという根本的な改良を提案します。本記事では、この置き換えの理論的根拠を検討するとともに、オシレーターのシグナル生成特性に与える影響を分析し、Parafrac V2オシレーターを紹介します。コンポーネント指標の検討
パラボリックSARの仕組みについては、オリジナルのParafracオシレーターを紹介した記事で詳細に解説されています。そのため、本セクションでは今回の改訂版で新たに導入された主要コンポーネントであるATR指標に焦点を当てます。
- ATR (Average True Range)
ATRはJ. Welles Wilder Jr.によって開発された、市場のボラティリティを定量化するための重要なテクニカル分析ツールです。ATRは、指定期間内の真のレンジから算出され、価格変動の度合いを絶対値として示します。 ATRは方向性を予測するオシレーターとは異なり、非方向性指標です。その主な役割は価格の変動度を測定することであり、高いATR値は大きな価格変動と高ボラティリティの期間を示し、低いATR値はボラティリティが低く比較的落ち着いた価格変動を示します。
ATRは多くの取引プラットフォームから簡単に利用可能です。インジケーターリストを開き、[オシレーター]カテゴリに移動して、表示されるオプションからATRを選択してください(図1参照)。

図1:ATRの選択
ATRは主に1つの入力パラメーターを持っています(図2参照)。ATR期間です。この数値は、True Rangeの移動平均を算出するために使用するバーやローソク足の本数を決定します。期間値が低い場合(例:7)は、最近のボラティリティ変化に敏感になり、応答性は高くなるもののノイズが増える可能性があります。期間値が高い場合(例:21)は、より滑らかで平均化されたボラティリティを示し、市場の変化に対して緩やかに反応します。
ATR期間の選択は、Parafrac V2オシレーターをキャリブレーションする上で重要なステップです。なぜなら、パラボリックSARの位置を正規化する際のボラティリティ基準値に直接影響するからです。ほとんどのプラットフォームにおけるデフォルト期間は14で、分析の出発点として一般的かつ堅牢な設定です。

図2:ATR入力パラメータ
実務においてATRは、市場のボラティリティを測定するだけでなく、適切なストップロスやテイクプロフィットの設定にも活用されます。価格の方向性は示さないものの、変動の大きさを把握できるため、リスク管理や戦略の調整に非常に有用なツールです。
Parafrac V2オシレーターの文脈では、ATRは従来のように単なるボラティリティ指標としてストップロスの距離設定に用いられるわけではありません。むしろ、オリジナルモデルでフラクタル指標が果たしていた役割に類似しており、現在の価格レンジを動的に測定する役割を持ちます。フラクタルが特定のピボットポイントを示すのに対して、ATRは平均レンジの滑らかで連続的な読み値を提供します。
これにより、異常な価格スパイクによるノイズが抑制され、オシレーター計算のためのより安定した信頼性の高い基準値を提供できるという大きな利点があります。この平滑化の仕組みは、オリジナルのParafrac設計で問題となったシグナルの歪みを直接解決するものです。
Parafrac V2オシレーターの設計
オリジナルのParafracオシレーターは、フラクタル指標を用いて最新の重要な高値および安値のピボット間の距離を測定し、動的な価格レンジを算出していました。このレンジはパラボリックSARの値と組み合わせられ、中心軸の周りで変動するオシレーターとして生成されていました。
Parafrac V2における方法論上の進化は、この「レンジ」の定義の再構築にあります。フラクタルによって特定される個別のピボットポイントは、突然無効になったり、レンジ値に急激なジャンプを生じさせる可能性があります。V2オシレーターでは、これに代えてATRから導出されるボラティリティ正規化されたレンジを使用しています。この置き換えにより、オシレーターの構築方法は根本的に変化しています。
- 数学的概念
Parafrac V2オシレーターの数式は、強気(上昇トレンド)と弱気(下降トレンド)の条件で個別に定義されます。
上昇トレンドの場合

下降トレンドの場合

ここで、ATR ≠ 0であり、パラボリックSARはローソク足の始値または終値に対応します。
ATRによる正規化をおこなうことで、複数の市場銘柄間で一貫性のあるオシレーター値を算出することが可能になります。
観察事項
1. クロスマーケット正規化
Parafrac V2オシレーターは正規化されているため、異なる銘柄間でも比較可能な値を示します(図3参照)。たとえば、ゴールド/USDで±5の値を記録した場合、GBP/JPYなどの通貨ペアでも同様のレベルが反映されます。これにより、トレーダーは資産クラスを超えて適用可能な戦略を設計する柔軟性を得られます。

図3:Parafrac V2オシレーター
一般的に、Parafrac V2オシレーターの値は±5の範囲内に収まる傾向があります。この範囲を超えた場合、過度に拡大した状態にある可能性を示唆しており、反転の可能性が高まることを示しています。
2. ATR設定の影響
- 短いATR期間(例:20)はボラティリティへの反応が速く、ヒストグラムの変動が頻繁になります。
- 長いATR期間(例:100)はヒストグラムを平滑化し、短期的なノイズを除去します。
この柔軟性により、Parafrac V2は短期スキャルパーから長期トレンドトレーダーまで幅広く活用可能です。
3. パラボリックSARギャップの影響
価格とパラボリックSARの距離(PSARギャップ)もオシレーターに影響します。
- ATR > PSARギャップの場合、オシレーターのヒストグラムは減少する
- ATR < PSARギャップの場合、オシレーターのヒストグラムは増加する
ATRとPSARギャップの関係は、市場の勢いを把握する手がかりとなります。
4. 正規化レンジ
ほとんどの観察では、オシレーターは±5の範囲で変動します。オリジナルParafracオシレーターが極値として±10を用いたのに対し、V2では参照レベルを±7に設定し、より精緻化しています。デフォルトのATR設定では価格がこの範囲を超えることは稀ですが、ユーザーは戦略に応じて閾値を調整可能です。

図4:オリジナルと新しいV2の比較
図4では、下段にオリジナルParafracオシレーター、上段に改良版Parafrac V2オシレーターを示しています。両者の形状の違いは分析結果の差を際立たせており、市場トレンドやダイバージェンス、過伸展期の検出におけるそれぞれの特性を示しています。
5. シグナルの明確化とスパイクの削減
Parafrac V2で顕著な改善点の一つは、従来バージョンで頻発していた突然のスパイクの削減です。この平滑化により、連続シグナルの解釈が容易になり、取引判断の精度が向上します。

図5:オリジナルとV2オシレーターでのスパイクの比較
図5では、下段に±10閾値を適用していないオリジナルParafracオシレーター、上段に改良版Parafrac V2オシレーターを示しています。明らかな違いとして、オリジナルは急激な価格変動により大きなシグナルスパイクを生じるのに対し、V2は滑らかな応答を示し、異常値の影響が排除されています。これはATRを用いた改良がノイズを効果的にフィルタリングし、より安定で信頼性の高いシグナルをトレーダーに提供していることを示しています。
想定される分析用途
Parafrac V2オシレーターは、テクニカル分析における汎用性を重視して設計されています。主な用途は以下の通りです。
- トレンドの識別:オシレーターの値がゼロラインの閾値を持続的に上回る場合、強い強気トレンドの確認に利用できます。一方、持続的にマイナス値を示す場合は、弱気トレンドの確認に役立ちます。
トレンドの勢いは、ユーザーが選択した時間軸に応じて閾値を設定することで定義できます。たとえば、USD/JPYのH4チャートを分析する場合、方向性が急激に変化し、最初の2つのヒストグラムのいずれかが+2.5を上抜けた場合は買いシグナル、–2.5を下抜けた場合は売りシグナルとして解釈できます。この方法により、ユーザーはトレンドの識別に用いる閾値を柔軟に設定可能です。

図6:トレンドの識別
- ダイバージェンス分析:Parafrac V2オシレーターの重要な応用の一つは、オシレーターと価格の間に生じるダイバージェンスの検出です。たとえば、証券の価格が新高値を更新している一方で、Parafrac V2がより低い高値を形成した場合(弱気ダイバージェンス)、強気の勢いが減退しており、トレンドの反転可能性を示唆します。

図7:価格とオシレーター間のダイバージェンス
- 買われ過ぎ/売られ過ぎの判断:主要機能ではありませんが、オシレーターが±7の上限付近で極端な値を示す場合、平均回帰が起こりやすい過伸展市場状態を示すことがあります。特に価格の動きと組み合わせることで有効です。 ユーザーは分析対象の銘柄特性に応じて、買われ過ぎおよび売られ過ぎの閾値を設定可能です。

図8:買われ過ぎ状態
このオシレーターを基にした独自ルールの開発が推奨されます。たとえば、オシレーターが過小評価領域から特定の閾値を上抜けた場合にロングポジションを取る、逆に過熱領域から下抜けた場合にショートポジションを取る、といったルールが考えられます。これらの閾値の精密なキャリブレーションや、取引量やトレンド整合性などの追加フィルターの組み込みは、対象資産に対して厳密なバックテストにより最適化する必要があります。
コード構造
MetaTrader 4およびMetaTrader 5の両バージョンでParafrac V2オシレーターを開発しましたが、以下の議論では、説明の便宜上、MetaTrader 5の構造を用いたコードの一部を例示として取り上げます。
// Input parameters input double pstep = 0.02; input double pMax = 0.2; input int AtrPeriod = 7;
入力パラメータにより、トレーダーは自身の好みに応じて指標の設定をカスタマイズできます。これにより、Parafrac V2オシレーターをさまざまな取引戦略や市場状況に柔軟に適応させることが可能です。
// Set indicator buffers SetIndexBuffer(0, UpBuffer, INDICATOR_DATA); SetIndexBuffer(1, DownBuffer, INDICATOR_DATA); // Set empty values PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0.0); PlotIndexSetDouble(1, PLOT_EMPTY_VALUE, 0.0); // Initialize buffers ArrayInitialize(UpBuffer, 0.0); ArrayInitialize(DownBuffer, 0.0); // Create indicator handles sarHandle = iSAR(_Symbol, _Period, pstep, pMax); if(sarHandle == INVALID_HANDLE) { Print("Error creating SAR handle"); return(INIT_FAILED); } atrHandle = iATR(_Symbol, _Period, AtrPeriod); if(atrHandle == INVALID_HANDLE) { Print("Error creating ATR handle"); return(INIT_FAILED); }
このコードの部分では以下をおこなっています。
- インジケーターバッファの設定
- 空の値の設定
- バッファの初期化
- インジケーターハンドルの作成
この処理により、Parafrac V2オシレーターのデータ格納用バッファを準備し、初期化した上で、MetaTrader 5内蔵のパラボリックSARおよびATR指標へのリンク(ハンドル)を作成します。これらのハンドルは後続の計算で使用され、オシレーターの値を生成するために活用されます。
for(int i = pStart; i < rates_total; i++) { // Skip if data is not valid if(sarArray[i] == EMPTY_VALUE || atrArray[i] == EMPTY_VALUE || atrArray[i] == 0) { UpBuffer[i] = 0; DownBuffer[i] = 0; continue; } // Determine trend and compute histogram value if(close[i] > sarArray[i]) // Uptrend condition { double diff = (high[i] - sarArray[i]) / atrArray[i]; UpBuffer[i] = diff; DownBuffer[i] = 0; } else if(close[i] < sarArray[i]) // Downtrend condition { double diff = (low[i]-sarArray[i]) / atrArray[i]; DownBuffer[i] = diff; // Negative value for downtrend UpBuffer[i] = 0; } else // If Close equals SAR, no value is plotted { UpBuffer[i] = 0; DownBuffer[i] = 0; } }
このループでは、終値とパラボリックSARを比較することで、オシレーターのバッファを埋めています。価格がSARからどれだけ離れているかをATR(市場のボラティリティ)で正規化して計算します。その結果は以下の通りです。
- UpBuffer:上昇トレンド時の正のオシレーター値
- DownBuffer:下降トレンド時の負のオシレーター値
- 0の値:SARと価格が重なっている場合やデータが無効な場合にはシグナルなし
結論
Parafrac V2オシレーターは、複合指標の概念に基づく論理的かつ理論的に整合性のある進化版です。フラクタル指標をATRに置き換えることで、前バージョンで問題となっていたノイズやスパイクへの過剰反応に直接対応しています。 ATRを組み込むことにより、オシレーターにはボラティリティ調整の仕組みが内蔵され、より堅牢で滑らか、かつ市場状況の変化に応じたコンテキストに敏感なシグナルを生成できるようになっています。
本記事では、この方法論的な変更の理論的根拠を解説し、その応用の枠組みを提示しました。今後の研究では、Parafrac V2オシレーターの性能特性(感度、精度、収益性など)を、オリジナルのParafracオシレーターおよび他の一般的なテクニカル指標と、さまざまな資産クラスや市場環境で定量的に比較するための厳密な実証テストが予定されています。Parafrac V2は、トレーダーに分析プロセスの簡略化を提供するとともに、生成されるシグナルの質を向上させる高度なツールです。
MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/19354
警告: これらの資料についてのすべての権利はMetaQuotes Ltd.が保有しています。これらの資料の全部または一部の複製や再プリントは禁じられています。
この記事はサイトのユーザーによって執筆されたものであり、著者の個人的な見解を反映しています。MetaQuotes Ltdは、提示された情報の正確性や、記載されているソリューション、戦略、または推奨事項の使用によって生じたいかなる結果についても責任を負いません。
MQL5入門(第21回):ハーモニックパターン検出の自動化
カスタム口座パフォーマンス行列インジケーターの開発
MQL5でのAI搭載取引システムの構築(第1回):AI API向けJSON処理の実装
MQL5におけるパイプライン
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
マニュアルトレードで 再エントリーする際には、このヒストグラムを見れば、ある程度わかりやすいかもしれませんが、元のパラボリックサーのトレンド変化と比較すると、トレンドの変化は目新しいものではないので、薄商いの相場では不利になります。
トレンドのボラティリティが弱まったときに、ヒストグラムをグレーにする方が良いと思います。コードの編集を添付します。