ParafracおよびParafrac V2オシレーターを使用した取引戦略の開発:シングルエントリーパフォーマンスインサイト
はじめに
テクニカル分析は、既存ツールの改良によって常に進化を続けています。Parafracオシレーターとその後継であるV2モデルは、その代表例です。どちらもParabolic SAR (PSAR)と現在価格のギャップに基づく概念から派生しています。両者の核心的な違いは標準化手法にあり、オリジナルのParafracオシレーターはPSARと価格のギャップをフラクタルレンジで正規化するのに対し、Parafrac V2はATR (Average True Range)を用いて標準化します。この違いによって両インジケーターは異なるトレンド構造やレベルを示すようになり、固有の取引機会を提示するため、詳細な検証に値します。
本記事では、ParafracとParafrac V2の両オシレーターに対して複数の取引戦略を構築し、そのテストをおこなうことを目的としています。両モデルのパフォーマンスを比較することで、市場状況に応じたそれぞれの強みと弱みについて有用な知見を得ることができます。
戦略の定義
本記事では、両オシレーターを3つの異なる戦略フレームワークに適用し、その挙動を検証します。各戦略は特定の市場構造やシグナル特性を捉えるよう設計されています。
戦略1:ゼロラインクロス+ヒストグラム確認
- 買いシグナル:オシレーターがゼロラインを上抜け、最初の2本のヒストグラムのいずれかが、設定した正の閾値を上抜けた場合
- 売りシグナル:オシレーターがゼロラインを下抜け、最初の2本のヒストグラムのいずれかが、設定した負の閾値を下抜けた場合
戦略2:ヒストグラムモメンタムシフト
- 売りシグナル:3本のヒストグラムすべてがゼロより上にあり、かつ減少している場合
- 買いシグナル:3本のヒストグラムすべてがゼロより下にあり、かつ増加している場合
戦略3:ヒストグラムとローソク足の組合せ
- 買いシグナル:3本のヒストグラムすべてがゼロより上で増加しており、かつ2本前に確定したローソク足が陰線である場合
- 売りシグナル:3本のヒストグラムすべてがゼロより下で減少しており、かつ2本前に確定したローソク足が陽線である場合
これら3つの戦略を体系的に適用することで、ParafracオシレーターとParafrac V2オシレーターのパフォーマンスを定量的に比較します。本分析は、特定の戦略アプローチに対してどちらのインジケーターがより適しているか、またどのように総合的な取引プランへ統合すべきかについて、トレーダーに実践的な知見を提供します。
バックテストパラメータ
結果を検討する前に、本検証で使用したテスト条件を明確にしておく必要があります。すべての戦略はGBP/USDを対象とし、時間足はH1(1時間足)で統一しました。バックテスト期間は2021年1月1日から2024年12月31日までとし、多様な市場環境を十分に含む堅牢なデータセットを確保しています。
入力パラメータ
//--- Indicator Type enum enum IndicatorType { TypParafrac=0, TypParafracV2=1 }; // Input parameters for trading input IndicatorType UseIndicator = TypParafrac; // Select Parafrac or V2 model input double LotSize = 0.01; // Lot size input int StopLossPoints = 700; // Stop loss in points input double RiskRewardRatio = 2.0; // Risk/Reward ratio input double pstep = 0.02; input double pMax = 0.2; input int AtrPeriod = 7; //ATRperiod for V2 input bool UseStrategy1 = true; // Enable Strategy 1 input double threshold4Strat1 =1.5; //threshold for strat 1 input bool UseStrategy2 = false; // Enable Strategy 2 input bool UseStrategy3 = false; // Enable Strategy 3
enum部では、IndicatorTypeというカスタム列挙型を定義しています。これにより、次の2つのインジケーターモードを選択できます。
- TypParafrac = 0: オリジナルのParafracオシレーター
- TypParafracV2 = 1: ATRを基盤としたParafrac V2オシレーター
EAの挙動は、以下の設定項目によって制御されます。
- オシレーターの選択:使用するオシレーターを選択します。 デフォルトはTypParafracです。
- ロットサイズ:すべての注文で使用する固定ロット数を指定します。本記事では全テストで0.01ロットを使用しました。
- ストップロス距離:ストップロスをポイント単位で設定します(pipsではありません)。必要に応じてユーザーがpipsへ手動換算する必要があります。
- テイクプロフィット:リスクリワード比(RRR)を用いてテイクプロフィットを設定します。
- インジケーターパラメータ:PSARおよびATRの各種パラメータを設定します。 ATRはParafrac V2オシレーター使用時のみ有効です。
- 戦略1の閾値:戦略1でのみ使用される閾値を設定します。
- 戦略の有効化:3つの戦略(1、2、3)を個別に有効化または無効化できます。EAは常に同時に1つの取引しか実行しません。すべての戦略を有効にしていても、発生した最初の有効シグナルのみが取引をトリガーします。
if( !TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) ){ MessageBox("Enable AutoTrading"); return (0); } // Create indicator handle indicatorHandle = (UseIndicator==TypParafrac)? iCustom(_Symbol, _Period, "ParaFracOscillator", pstep, pMax ): iCustom(_Symbol, _Period, "ParaFracV2_Oscillator", pstep, pMax, AtrPeriod ); if(indicatorHandle == INVALID_HANDLE) { Print("Error creating indicator handle"); return(INIT_FAILED); }
初期化関数では、EAが次の項目を確認できるようになっています。
- 自動取引権限チェック:プラットフォーム側でAutoTradingが有効かどうかを確認します。 無効の場合は[Enable AutoTrading]というポップアップメッセージを表示し、EAの初期化処理を即座に終了します(以降の処理は実行しません)。
- インジケーターの読み込み:ユーザーが選択した設定に応じて、Parafracオシレーターまたは Parafrac V2オシレーターを読み込みます。 システムにインジケーターが存在しない場合は、名称をクリックすることでダウンロードページへ移動し、そのままインストールできます。
- ハンドル管理:インジケーターバッファへアクセスするためのハンドルを保持します。 インジケーターの読み込みや初期化に失敗した場合、EAは例外を発生させず安全に終了します。
void OnDeinit(const int reason) { // Release indicator handle if(indicatorHandle != INVALID_HANDLE) IndicatorRelease(indicatorHandle); }
EAの初期化解除処理では、iCustom()で生成したParafrac(またはV2)カスタムインジケーターがメモリから適切に解放されるよう処理をおこないます。
結果と考察
以降のセクションでは、コード実装の詳細とバックテスト結果の考察について説明します。
戦略の検証はGBPUSDのH1時間足を対象に、初期証拠金1000ドル、期間2021年1月から2024年12月までの3年間で実施しました。パフォーマンス評価には以下の主要指標を使用しています。
- 総純利益:初期証拠金に対する総損益
- 利益率:総利益と総損失の比率
- 総取引数:実行された全取引の数
- ドローダウン率:資産ピークからの最大下落率
- 勝率およびRRR:勝率およびリスクリワード比に基づく評価
- 連敗・連勝数:連続した損失または勝利の回数
戦略1:実装とテスト
最初の戦略は、前述の売買ルールに基づいて実装しました。ParafracオシレーターとParafrac V2モデルの両方について、この戦略フレームワーク下でテストをおこないました。
// Strategy 1: Zero line crossover with strong momentum if(UseStrategy1 && !Check4TradesOpen(POSITION_TYPE_BUY) ) { // Buy condition: Cross up zero and any of first 2 histograms above threshold if( (prevValue <= 0 && currentValue > 0 || prevValue2 <= 0 && prevValue > 0) && currentValue > threshold4Strat1 ) { ExecuteBuy(); } } if(UseStrategy1 && !Check4TradesOpen(POSITION_TYPE_SELL)) { // Sell condition: Cross down zero and any of first 2 histograms below -threshold if( (prevValue >= 0 && currentValue < 0 || prevValue2 >= 0 && prevValue < 0 ) && currentValue < -threshold4Strat1 ) { ExecuteSell(); } }
このフェーズでは、戦略を最適化するために、ストップロス、RRR、閾値の3つの主要パラメータを使用しました。 目的は、戦略1のフレームワーク内で、各インジケーターに対して最もパフォーマンスと堅牢性を最大化できるパラメータセットを特定することです。 最適化プロセスの後、各インジケーターにおける最良パフォーマンスのパラメータセットを選定しました。
Parafracオシレーターの結果
図1は、戦略1におけるParafracオシレーターのパフォーマンスを示しています。

図1:戦略1におけるParafracオシレーターの結果
分析
- 総純利益:74.15ドル(初期証拠金の+7.4%)。穏やかな成長を示し、戦略は利益を出しているものの規模は限定的です。
- プロフィットファクター:1.18。利益は損失をわずかに上回る程度で、余裕は大きくありません。
- 総取引数:133。取引回数は多く機会は多いものの、ノイズやだましシグナルへの露出も増加します。
- ドローダウン率:5.23%。中程度のリスクで比較的良好な資産保護が実現されています。
- 勝率とRRR:勝率37.59%、RRR 2。勝率は低いものの、RRRが高いためシステムは利益を維持できています。
- 連敗/連勝数:連敗7回、連勝2回。長期連敗が発生しやすく、トレーダー心理に影響する可能性があります。
Parafrac V2オシレーターの結果
図2は、戦略1におけるParafrac V2オシレーターのパフォーマンスを示しています。

図2:戦略1におけるParafrac V2オシレーターの結果
分析
- 総純利益:120.06ドル(初期証拠金の+12.0%)。オリジナルParafracよりも成長率が高く、より強力な利益が見込めます。
- プロフィットファクター:1.53。利益に対する損失の割合が良好で、収益性が高いことを示します。
- 総取引数:52。取引回数は少ないものの、より選択的で質の高い取引機会となっています。
- ドローダウン率:6.37%。 オリジナルよりやや高いものの、許容範囲内です。
- 勝率とRRR:勝率51.92%、RRR 1.5。勝率とRRRのバランスが良く、安定したパフォーマンスを示します。
- 連敗/連勝数:連敗6回、連勝4回。オリジナルより一貫性が高く、長期連敗も少なくなっています。
比較分析
戦略1では、Parafrac V2がほとんどの指標でオリジナルを上回りました。総純利益が高く、プロフィットファクターも改善され、取引分布もよりバランスの取れたものになっています。V2はドローダウンがやや高いものの、勝率の向上と取引頻度の低下により、よりクリーンで質の高いシグナルを提供しています。
オリジナルParafracは利益を出せるものの、低勝率を高RRRで補う形であり、連敗が続くとトレーダーの心理的負荷が高まる可能性があります。
シグナルフィルタリングに関する重要な観察
シミュレーションで得られた重要な知見として、両オシレーターは確認閾値に非常に敏感であることがわかりました。閾値を低く設定すると、低品質の取引が過剰に発生し、取引コストやだましによってマイナスの結果となります。閾値を高めることで取引数は大幅に減少し、パフォーマンスも著しく改善されました。これは、このインジケーター設定の本質的な価値がトレンド方向の特定ではなく、ブレイク時のモメンタムの強さを定量化することにあることを示しています。閾値は重要なフィルターとして機能し、有意なモメンタムのみが取引をトリガーすることで、標準的なPSARクロスオーバーシステムにはない独自の優位性を提供します。戦略2:実装とテスト
2番目の戦略も、前述の取引ルールに従って実装しました。ゼロラインを基準としたヒストグラムのモメンタム変化に注目する手法です。ParafracオシレーターとParafrac V2モデルの両方について、この戦略フレームワーク下でテストをおこないました。
// Strategy 2: Momentum reversal if(UseStrategy2 && !Check4TradesOpen(POSITION_TYPE_BUY)) { // Buy condition: 3 histograms increasing below zero if(currentValue < 0 && prevValue < 0 && prevValue2 < 0 && currentValue > prevValue && prevValue > prevValue2) { ExecuteBuy(); } } if(UseStrategy2 && !Check4TradesOpen(POSITION_TYPE_SELL)) { // Sell condition: 3 histograms decreasing above zero if(currentValue > 0 && prevValue > 0 && prevValue2 > 0 && currentValue < prevValue && prevValue < prevValue2) { ExecuteSell(); } }
戦略1とは異なり、戦略2では閾値フィルターは使用せず、最適化はストップロスとRRRの2項目のみに焦点を当てました 。 最適化フェーズ終了後、各インジケーターにおける最良パフォーマンスのパラメータセットを選定しました。
Parafracオシレーターの結果
図3は、戦略2におけるParafracオシレーターのパフォーマンスを示しています。

図3:戦略2におけるParafracオシレーターの結果
分析
- 総純利益:94.80ドル(初期証拠金の+9.4%)。利益は出ているものの、取引数の多さに対してリターンは控えめです。
- プロフィットファクター:1.02。利益と損失がほぼ均衡しており、ほとんど余裕のない状況です。
- 総取引数:1,323。極めて高い取引回数であり、過剰取引や取引コストの増加にさらされます。
- ドローダウン率:12.61%。戦略1に比べリスクは深くなっています。
- 勝率とRRR:勝率41.04%、RRR 1.5。控えめな勝率でも、わずかに有利なRRRが利益維持に寄与しています。
- 連敗/連勝数:連敗7回、連勝5回。長期連敗の傾向がある一方、中程度の連勝も可能です。
Parafrac V2オシレーターの結果
図4は、戦略2におけるParafrac V2オシレーターのパフォーマンスを示しています。

図4:戦略2におけるParafrac V2オシレーターの結果
分析
- 総純利益:123.06ドル(初期証拠金の+12.3%)。オリジナルより絶対利益で上回っています。
- プロフィットファクター:1.03。オリジナルよりわずかに高く、トントンに近い効率ですが、わずかに改善が見られます。
- 総取引数:1,266。オリジナルよりやや少ない取引数でありながら、依然として高頻度です。
- ドローダウン率:13.7%。オリジナルよりやや高く、リスク露出は増加しています。
- 勝率とRRR:勝率51.26%、RRR 1.0。勝率の向上により、RRRの低さを補い、より安定した勝利結果が得られています。
- 連敗/連勝数:連敗5回、連勝8回。オリジナルに比べ、長期連敗は少なく、連勝のまとまりが強化されています。
比較分析
戦略2においては、Parafrac V2が全体的により優れた効果を示しました。総純利益が高く、勝率も向上し、連敗回数も減少しています。ドローダウンはやや大きいものの、長期連勝や信頼性の高い結果によって相殺されています。
一方、オリジナルParafracオシレーターは依然として利益を出せますが、取引数が過剰でプロフィットファクターが1.0付近にとどまるなど効率は低くなります。取引量に依存するため、V2モデルに比べ信頼性は劣ります。
まとめると、戦略2においてはParafrac V2がよりバランスの取れたパフォーマンスを発揮するのに対し、オリジナルParafracは過剰取引や連敗の影響で信頼性が低い結果となります。
戦略3:実装とテスト
3番目の戦略も、前述のルールに基づいて実装しました。ヒストグラムの動きとローソク足の確認シグナルを組み合わせる手法です。具体的には、3つのヒストグラムが同一方向に揃った際に、直近確定ローソク足が確認シグナルを示した場合にポジションを建てます。 ParafracオシレーターおよびParafrac V2モデルの両方で、この戦略をテストしました。
// Strategy 3: Momentum continuation with confirmation if(UseStrategy3 && !Check4TradesOpen(POSITION_TYPE_BUY)) { // Buy condition: 3 histograms increasing above zero AND bearish candle if(currentValue > 0 && prevValue > 0 && prevValue2 > 0 && currentValue > prevValue && prevValue > prevValue2 && priceData[0].close < priceData[0].open) { ExecuteBuy(); } } if(UseStrategy3 && !Check4TradesOpen(POSITION_TYPE_SELL)) { // Sell condition: 3 histograms decreasing below zero AND bullish candle if(currentValue < 0 && prevValue < 0 && prevValue2 < 0 && currentValue < prevValue && prevValue < prevValue2 && priceData[0].close > priceData[0].open) { ExecuteSell(); } } }
最適化プロセスでは、 ストップロスとRRRの2項目に焦点を当てました。 最適化の結果をもとに、両インジケーターで最も良好なパフォーマンスを示す設定が選定されました。
Parafracオシレーターの結果
図5は、戦略3におけるParafracオシレーターのパフォーマンスを示しています。 
図5:戦略3におけるParafracオシレーターの結果
分析
- 総純利益:187.81ドル(初期証拠金の+18.8%)。強い収益性を示し、このインジケーターで観測された全戦略の中で最も高い利益です。
- プロフィットファクター:3.9。利益が損失のほぼ4倍に達しており、非常に効率的な取引がおこなわれています。
- 総取引数:26。非常に選択的なシステムで、取引機会は少ないもののシグナル品質は高くなります。
- ドローダウン率:3%。リスク露出が非常に低く、安定的で資本保護に優れています。
- 勝率とRRR:勝率73.08%、RRR 1.5。高い勝率と有利なRRRの組み合わせにより、安定した取引成果が得られています。
- 連敗/連勝数:連敗2回、連勝7回。短い連敗と長期連勝により、心理的にも有利な取引環境です。
Parafrac V2オシレーターの結果
図6は、戦略3におけるParafrac V2オシレーターのパフォーマンスを示しています。

図6:戦略3におけるParafrac V2オシレーターの結果
分析
- 総純利益:42.14ドル(初期証拠金の+4.2%)。利益は出ているものの、オリジナルParafracに比べてはるかに低い結果です。
- プロフィットファクター:1.03。利益が損失をわずかに上回る程度で、取引の優位性は限定的です。
- 総取引数:247。オリジナルに比べ非常に高頻度の取引で、ノイズが多く選択性が低下しています。
- ドローダウン率:16.69%。リスクが大きく、資本が高いボラティリティにさらされています。
- 勝率とRRR:勝率41.7%、RRR 1.5。勝率が低いため、RRRが合理的でも収益性は抑えられています。
- 連敗/連勝数:連敗9回、連勝4回。長期連敗が発生しやすく、資産減少リスクや心理的負荷が増加します。
比較分析
戦略3では、オリジナルParafracオシレーターがV2モデルに対して明確に優位であることが示されました。取引数が少なく、ドローダウンが低く、勝率が高く、プロフィットファクターも強力であるため、効率性と収益性の両面でオリジナルが勝っています。
一方、V2オシレーターはこの戦略では苦戦しました。取引数の増加、プロフィットファクターの低下、深いドローダウンにより、シグナル品質のフィルタリング能力が低いことが示されました。それでも純利益はプラスですが、効率性や安定性ではオリジナルに及びません。
したがって、戦略3ではオリジナルParafracオシレーターの方が有効であり、高い収益と安定性の両方を提供します。
戦略2と3に関する重要な観察
このシミュレーションにより、シグナルフィルターの重要性が改めて示されました。戦略2は確認フィルターがないためにノイズが過剰となり、低品質な取引が数千回発生しました。一方、戦略3ではプライスアクション(ローソク足フィルター)を組み込むことで、オリジナルParafracのノイズを大幅に減らし、パフォーマンスを劇的に改善することに成功しました。しかし、Parafrac V2では、このプライスアクションフィルターだけでは本戦略における固有のノイズを抑えきれず、依然として取引数が多い結果となっています。このことから、V2モデルにおいて戦略3を実用化するには、最低モメンタム閾値やトレンド強度フィルターなど、追加 のフィルターが必要であることが示唆されます。結論
本記事では、オリジナルParafracオシレーターおよびそのV2モデルに対して3つの取引戦略を適用し、それぞれの強みと弱点について洞察を提供しました。
- 戦略1(ゼロラインクロス+ヒストグラム確認)では、ストップロス、RRR、閾値の最適化により、両オシレーターとも利益を上げることができました。V2モデルは総純利益と勝率でオリジナルを上回りましたが、両モデルとも取引過多を抑えるために閾値を高めることで大幅な改善が見られました。
- 戦略2(ヒストグラムモメンタムシフト) 閾値なしで運用した結果、両オシレーターとも過剰な取引回数となりました。V2オシレーターは勝率を維持しましたが、総利益は両モデルともわずかで、プロフィットファクターもほぼトントンでした。この結果から、フィルタリングされていない戦略は市場ノイズに弱いことが明らかになりました。
- 戦略3(ヒストグラムとローソク足の組合せ)では、ローソク足による確認フィルターを導入した結果、オリジナルParafracオシレーターはV2モデルを大きく上回りました。総純利益、プロフィットファクター、勝率が大幅に向上し、ドローダウンも低く安定性が高い結果となりました。一方、V2モデルは取引数が多く、長期連敗が発生しやすく、効率性が低下しました。
総合すると、シグナルフィルタリングや実行ルールはオシレーターの有効性を決定する上で非常に重要であることが示されました。V2モデルは戦略1では優れたパフォーマンスを発揮し、戦略2でもやや優位でしたが、戦略3ではオリジナルParafracが圧倒的に有効であり、ローソク足を用いた確認の重要性が確認されました。つまり、どちらか一方が「常に優れている」というわけではなく、取引戦略に応じて適したモデルを選択することが重要です。
次回の記事では、3つの戦略すべてに閾値の微調整やプライスアクションフィルターを導入し、パフォーマンスの一貫性や収益性をさらに向上できるかを検証します。
MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/19439
警告: これらの資料についてのすべての権利はMetaQuotes Ltd.が保有しています。これらの資料の全部または一部の複製や再プリントは禁じられています。
この記事はサイトのユーザーによって執筆されたものであり、著者の個人的な見解を反映しています。MetaQuotes Ltdは、提示された情報の正確性や、記載されているソリューション、戦略、または推奨事項の使用によって生じたいかなる結果についても責任を負いません。
MQL5でのAI搭載取引システムの構築(第2回):ChatGPT統合型アプリケーションのUI開発
ボラティリティベースのブレイクアウトシステムの開発
Market Sentimentインジケーターの自動化
MQL5でのデータベースの簡素化(第2回):メタプログラミングを使用してエンティティを作成する
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索