English
preview
取引戦略の開発:トリプルサイン平均回帰法

取引戦略の開発:トリプルサイン平均回帰法

MetaTrader 5トレーディング |
29 2
Daniel Opoku
Daniel Opoku

はじめに

MACD(移動平均収束発散法)MFI(マネーフローインデックス)ストキャスティクスオーサムオシレーター(AO)といった従来のテクニカル指標は、長年にわたり、市場のエントリーおよびエグジットポイントを特定しようとするトレーダーやアナリストにとって重要な指標となってきました。それぞれ構造は異なりますが、これらの指標はいずれも独自の数理的手法に基づいており、価格データを意味のある形で可視化することで、トレーダーが市場の動きやモメンタムを読み取る手助けをします。

本記事では、これらの従来ツールを一歩進めた新たな取引戦略の開発について考察します。 紹介するのは、カスタム設計された「Triple Sine Oscillator (TSO)」インジケーターをエントリー条件の基盤とする平均回帰戦略です。 その実現のために、スケーリングされた価格データを主要入力として、三角関数である正弦の三乗関数に基づくオシレーターを構築します。 目的は、三角関数の周期的な性質を活用して、価格変動における潜在的な平均回帰水準を特定することです。


数学的基礎:正弦の三乗関数

Triple Sine Oscillatorの中核を成すのは、正弦の三乗関数です。これは、数学的には次のように表されます。

sinecubefxn

この関数は、基本的な正弦波を高次変換したものであり、振動特性を保持しながらも、ゼロライン付近ではより強い曲率を持つという特徴があります。標準的な正弦関数と同様に−1から+1の間を振動しますが、極大値付近ではより滑らかな遷移を示し、ゼロ付近ではより急峻な変化を示します。これらの特性により、この関数は平均回帰型シグナルの設計に理想的な構造となります。すなわち、モメンタムの微妙な変化を捉えつつ、買われ過ぎや売られ過ぎを示す売買シグナル構築の有力な手法となります。

正弦の三乗関数は、価格変動を平滑化しながらも方向転換への感度を維持する強力なメカニズムとして機能します。スケーリングされた価格データに適用することで、買われ過ぎおよび売られ過ぎの領域を明らかにするインジケーターを生成します。これらの条件は、平均回帰戦略において不可欠な要素です。

正弦波サイクルの可視化

ここで、正弦の三乗関数の性質を視覚的に理解することが重要です。取引フレームワークへの応用方法を明確にするために、関数を–2πから2πの範囲でプロットします。 

SCplot

図1:正弦の三乗関数のプロット

図1は、正弦の三乗関数の構造を示しています。得られる波形は、周期的かつ対称的な構造を明確に表しています。この区間内で、関数は完全な振動サイクルを描き、2つの極大値2つの極小値を示します。各半周期には、1つの正の極値と1つの負の極値が存在します。すなわち、負の入力領域(−2πから0)では正負の極値が交互に現れ、正の入力領域(0から2π)でも同様のパターンが対称的に繰り返されます。 

この周期対称性は、強気と弱気のモメンタムの均衡を示しており、平均回帰分析において極めて重要な性質です。関数が極大値と極小値の間を滑らかに遷移する様子を観察することで、トレーダーは転換点を価格の過熱(エグゾースション)や反転の可能性が高いゾーンとして解釈できます。これが、トリプルサイン平均回帰戦略における信頼性の高いエントリーおよびエグジットルール構築の基盤となります。 

正弦の三乗関数を描画するためのMQL5コード構造の検討

Triple Sine Oscillatorを開発する前に、正弦の三乗関数をプロットするための基本的なMQL5スクリプト構造を理解することが重要です。このプロセスを通じて、MetaTrader 5環境内でグラフィカルプロットがどのように構築および表示されるのかを把握できます。

グラフィックスライブラリのインポート

スクリプトは、視覚描画に必要な機能を提供するグラフィックスライブラリのインポートから始まります。

#include <Graphics/Graphic.mqh>

string g_name = "SineCubePlot";

ここでは、プロットに必要なグラフィカル関数およびクラスへアクセスするためにGraphic.mqhファイルをインクルードします。変数g_nameは「SineCubePlot」として定義され、正弦の三乗関数のプロットを表示するグラフィカルウィンドウの名称として使用されます。

グラフィックオブジェクトとウィンドウの作成

次のステップでは、CGraphicクラスのインスタンスを作成し、プロット用ウィンドウを初期化します。

   // Create graphic object
   CGraphic graphic;
   
   // Create graphic window
   if(!graphic.Create(0, g_name, 0, 30, 30, 1000, 600))
   {
      Print("Error creating graphic!");
      return;
   }

このセクションではグラフィックオブジェクト「graphic」を宣言しています。その後、Create()メソッドを呼び出し、位置やサイズ(30, 30, 1000, 600)といったパラメータを指定してグラフィカルウィンドウを初期化します。ウィンドウの生成に失敗した場合は、「Error creating graphic!」というエラーメッセージが出力され、プログラムは安全に終了します。

正弦の三乗プロットのチャート設定

チャートの外観およびレイアウトを定義することも重要です。この処理はSetupChart()関数によっておこなわれます。この関数では、背景色、軸の表示範囲、軸ラベル、フォントサイズ、そしてグリッドの表示設定などを構成し、最終的なプロットが明瞭で視覚的にわかりやすいようにします。

//+------------------------------------------------------------------+
//| Set up the chart properties                                      |
//+------------------------------------------------------------------+
void SetupChart(CGraphic &graphic)
{
   // Set background color
   graphic.BackgroundColor(clrWhite);
         
   // Configure X axis
   graphic.XAxis().Min(-2*M_PI);
   graphic.XAxis().Max(2*M_PI);
   graphic.XAxis().Name("x");
   
   // Configure Y axis
   graphic.YAxis().Min(-1.2);
   graphic.YAxis().Max(1.2);
   graphic.YAxis().Name("sin(x)³");
   
   // Add grid
   graphic.XAxis().Color(clrGray);
   graphic.YAxis().Color(clrGray);
   
   // Increase font sizes
   graphic.XAxis().ValuesSize(14);
   graphic.YAxis().ValuesSize(14);
   graphic.XAxis().NameSize(20);
   graphic.YAxis().NameSize(20);
   
   // Add title
   graphic.CurvePlotAll();
   graphic.Update();
}

SetupChart()関数は、プロットを開始する前にチャート環境を初期化します。

  • 背景色は、クリーンで専門的な印象を与えるために白に設定されます。
  • X軸は−2πから+2πの範囲に設定され、正弦波の2周期分を表します。一方、Y軸は−1.2から+1.2の範囲に設定され、関数本来の振幅よりやや広く取ることで視覚的な余裕を確保します。
  • 軸ラベルが設定され、横軸には「x」、縦軸には「sin(x)³」が割り当てられます。
  • プロット曲線を邪魔しない範囲で可読性を高めるため、灰色のグリッド線が追加されます。
  • 最後に、軸名および数値のフォントサイズが拡大され、視認性が向上します。

これらすべてのパラメータを設定した後、graphic.Update()を実行してチャートを更新し、新しい設定を反映させます。

正弦の三乗関数の生成とプロット

チャートのレイアウト準備が完了した後、次のステップでは正弦の三乗関数のデータポイントを生成し、PlotSinCube()関数を用いてそれらを表示します。

//+------------------------------------------------------------------+
//| Generate and plot sin(x)^3 data                                  |
//+------------------------------------------------------------------+
void PlotSinCube(CGraphic &graphic)
{
   int points = 1000;
   double x[], y[];
   ArrayResize(x, points);
   ArrayResize(y, points);
   
   // Generate data points
   for(int i = 0; i < points; i++)
   {
      x[i] = -2*M_PI + (4*M_PI)*i/(points-1);
      y[i] = MathPow(MathSin(x[i]), 3);
   }
  
   // Get the curve object and set line properties
   CCurve* curve = graphic.CurveAdd(x, y, CURVE_LINES, "sin(x)³");
   if(curve != NULL)
   {
      curve.LinesStyle(STYLE_SOLID);
      curve.LinesWidth(3);
      curve.Color(ColorToARGB(clrBlue, 255));
   }   
   graphic.CurvePlotAll();
}

この関数は、以下の手順によって正弦の三乗関数を構築します。

  • −2πから+2πの範囲内に、等間隔で配置された1,000個のデータポイントを定義します。
  • 各y値を正弦の三乗(sin³x)として計算し、対応するx値とともに保存します。
  • CurveAdd()メソッドを使用して、線幅3ピクセルの実線(青)で波形をプロットし、視認性を高めます。
  • CurvePlotAll()を実行してチャートを更新し、最終的な曲線を描画します。

全体の統合

SetupChart()とPlotSinCube()を組み合わせることで、MQL5スクリプトは数学関数の設定と可視化を効率的に実行できます。チャート設定とデータ生成を分離することで、コードの可読性とモジュール性が維持されます。


Triple Sine Oscillator (TSO)インジケーター

正弦の三乗関数の挙動を確認したところで、次にTriple Sine Oscillator (TSO)の構築に進みます。TSOは、正弦の三乗関数の数学的原理を市場価格データに適用したテクニカル指標です。

TSOの目的は、生の価格変動を−1から+1の範囲で振動する有界なオシレーターへと変換することにあります。これにより、平均回帰の機会を特定するのに適した指標となります。ただし、正弦の三乗関数は入力値が−6.284から+6.284(おおよそ−2πから+2π)程度の範囲で適切に機能するため、生の価格データは関数に適用する前に適切にスケーリングする必要があります。

そのため、終値を以下のように正規化入力変数へと変換します。

ScaledPriceInput

ここで

  • MA = 価格の移動平均(中心傾向を表す)
  • Std = 価格の標準偏差(ボラティリティを測定)
  • k = 感度係数(振動の度合いを制御するスカラー定数)

この変換により、価格変動は標準化された無次元形式で表現され、正弦の三乗関数の振動範囲に適合します。この計算は、現在価格が移動平均から何標準偏差離れているかを測定する点で非常に有効です。たとえば+2という値は、価格が平均より2標準偏差上方にあることを示し、買われ過ぎの可能性を示唆します。 

感度係数kによって、トレーダーはインジケーターの応答性を調整できます。kの値を高くすると短期的な価格変動への感度が増し、低くするとノイズが平滑化され、より広いトレンド検出に適した動きになります。

このスケーリングされた価格入力に正弦の三乗関数を適用することで、TSO = sin³(Scaled_Price)が得られます。これは−1から+1の範囲に収まる周期的オシレーターであり、買われ過ぎや売られ過ぎゾーンの検出や、市場における価格反転ポイントのシグナル提示が可能となります。

TSOインジケーターのコード構造

Triple Sine Oscillator (TSO)が実際の取引環境でどのように機能するかを示す前に、その動作を支えるコード構造を理解することが重要です。TSOインジケーターは、正弦の三乗関数を用いて市場価格データを振動シグナルへ変換する、シンプルかつ強力なフレームワークに基づいて構築されています。その構造は、以下の主要な段階に要約できます。

初期化セクション

初期化セクションでは、TSOインジケーターの基盤構造および視覚レイアウトを定義します。これには、インジケーター名、表示モード、カラースキーム、そしてシグナル解釈を補助するための事前定義レベルの設定が含まれます。

#property description "Triple-Sine Oscillator — (sin(x))^3"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1

//--- plot settings
#property indicator_label1  "Triple-Sine Oscillator"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrYellowGreen
#property indicator_width1  2

//--- indicator levels
#property indicator_level1   0.7
#property indicator_level2  -0.7
#property indicator_level3   0
#property indicator_levelcolor clrGray

この構成では、次のようになります。

  • インジケーターはその数学的基盤を反映するように「Triple-Sine Oscillator — (sin(x))³」とラベル付けされます。
  • メインの価格チャートとは独立した別のインジケーターウィンドウに表示されます。
  • 計算されたTSO値を格納および描画するために1つのプロットバッファのみが使用されます。
  • プロットされたラインはYellowGreen色で、線幅は2ピクセルに設定され、視認性が高められています。
  • 参考レベルとして+0.7、−0.7、0が灰色で追加されており、買われ過ぎ、売られ過ぎ、中立(平均回帰)ゾーンを視覚的に示します。

入力パラメータ

インジケーターは、応答性と平滑化の挙動を決定する2つの主要入力を受け取ります。

//--- input parameters
input int mPeriod = 20;      // Period for SMA and StdDev
input double Ksense = 0.5;   // Sensitivity multiplier

  • MA期間(mPeriod):単純移動平均(SMA)および標準偏差(StdDev)を計算するための参照期間です。デフォルトは20本のバー(ローソク足)です。
  • 感度係数(Ksense):価格偏差に対してインジケーターがどの程度反応するかを制御します。値が大きいほど短期変動に敏感になり、値が小さいほど出力が平滑化されます。デフォルトは0.5です。

これらのパラメータによって、トレーダーは市場のボラティリティや好みのシグナル頻度に応じてインジケーターを調整できます。

トリプルサイン関数の定義

TSOの中心には、TripleSine関数があります。この関数は、正規化された価格偏差を滑らかな振動波形に数学的に変換します。

//+------------------------------------------------------------------+
//| TripleSine function                                              |
//+------------------------------------------------------------------+
double TripleSine(double x)
  {
   return(MathPow(MathSin(x), 3));
  }

コア計算ロジック

メインの計算ループ内で、インジケーターは各バーのスケーリング済み価格を算出し、それをTripleSine関数で変換します。

   int limit =rates_total- MathMax(mPeriod, prev_calculated - 1);

   for(int i = limit; i>=0; i--)
     {
      if(sd[i] == 0) { TripleSineBuffer[i] = 0; continue; }

      double scaled = Ksense * (price[i] - ma[i]) / sd[i];
      TripleSineBuffer[i] = TripleSine(scaled);
     }

ここで、移動平均(MA)と標準偏差(SD)は指定期間内で動的に計算され、価格変動を正規化します。 

正規化された価格は正弦の三乗関数に渡され、 −1から+1の範囲に収まる振動信号へと変換されます。

最終的に計算されたTSO値はTripleSineBufferに格納され、連続した線としてプロットされます。このグラフィカル出力により、市場モメンタムの周期的挙動が視覚化され、買われ過ぎと売られ過ぎ、平均回帰ゾーンを把握することができます。

TSOインジケーターのデモンストレーション

次に、MetaTrader 5プラットフォーム上で新しく開発したTSOをテストします。この段階では、インジケーターの性能や表示挙動、実際の市場データに対する応答性を検証します。

TSOデモ

図2:Triple Sine Oscillator

デモンストレーションでは、感度係数(k)が価格変動への反応に与える影響が顕著であることが観察されました。

感度値を0.5から2.3に上げると、オシレーターは市場の変動に対してより敏感になりました。この感度の向上により、TSOラインはわずかな価格変化にも鋭く反応するようになり、迅速なシグナルが求められる短期取引やボラティリティの高い取引環境に適した設定となります。

逆に、感度値を0.1に下げると、TSOは価格変動に対して反応が鈍くなりました。オシレーターはより滑らかになり、小さな市場ノイズを除去し、より広範なトレンドを強調するようになります。この設定は、トレーダーが頻繁な反転ではなく主要な市場サイクルを捉えようとする長期分析において好まれることが多いです。

感度係数(k)と移動平均期間(mPeriod)の両方を最適化することにより、TSOは様々な金融商品に対して効果的に調整可能となります。これにより、値動きの速い通貨ペアやコモディティから、動きが緩やかなトレンド重視の株式まで、幅広い市場に適用できます。

この柔軟性により、TSOは異なる市場のボラティリティ特性や取引特性に応じてその挙動を合わせることができる、汎用性の高い分析ツールとなります。


TSO取引戦略:平均回帰法

TSOインジケーターが完成したところで、これを基にして完全な平均回帰取引戦略を構築できます。戦略の詳細に入る前に、金融市場における平均回帰の基本概念を理解しておくことが重要です。

平均回帰とは、価格やその他の金融変数が時間とともにその歴史的平均(mean)に戻ろうとする傾向がある、という考え方に基づきます。簡単に言うと、資産価格が長期平均から大きく逸脱した場合(高すぎたり低すぎたりした場合)、最終的には平均値に戻る可能性が高いと考えられます。

この概念は、市場には自然な均衡が存在し、極端な価格変動は短期的な売買圧力の不均衡によって生じる一時的な偏差であると想定します。こうした圧力が落ち着くと、価格はしばしば平均値に近づく方向に正規化されます。

ただし、平均回帰戦略は強いトレンド相場ではパフォーマンスが低下しやすい点に注意が必要です。トレンドが強い場合、価格は長期間平均値から離れ続けることがあり、早すぎる反転シグナルや誤ったシグナルが発生するリスクがあります。そのため、平均回帰戦略の有効性は、レンジ相場や振動相場を正確に特定できるかどうかに大きく依存します。

以下のセクションでは、TSOを市場状況に組み込み、エントリーおよびエグジットルールを定義した完全な平均回帰取引フレームワークを構築します。

取引ロジックと条件

1. 売りの条件

オシレーターが価格モメンタムが均衡ゾーンを過剰に上回ったことを示した場合に、売り(ショート)ポジションを建てます。この条件は以下のとおりです。

前回のTSO< 0.7かつ現在のTSO> 0.7

この条件は、市場が買われ過ぎの可能性を示し、価格が平均値に向かって下落することを示唆します。

2. 買いの条件

オシレーターが平均値から下方に逸脱した場合、すなわち売られ過ぎの可能性を検知した場合に、買い(ロング)ポジションを建てます。条件は以下のとおりです。

前回のTSO > − 0.7かつ現在のTSO < − 0.7 

このクロスオーバーは、売り圧力が弱まっている可能性を示し、上昇反発の確率が高まったことを示唆します。

3. エグジット条件

すべての保有ポジションは、利益確定(Take Profit, TP)または損切り(Stop Loss, SL)のいずれかの条件に達した時点で決済されます。これにより、利益の確保と下方リスクの管理がおこなわれます。

4. 複数エントリールール

戦略は、持続的な平均回帰の動きを活用するため、アクティブなポジション方向への複数エントリーをサポートします。

  • 買いポジションがアクティブな場合、売りポジションは開かれません。
  • 初回の買いポジションを保持中に買い条件が再度成立した場合のみ、追加の買いが可能です。
  • 売りポジションでも同様で、既存の売りポジションがアクティブで売り条件が再発した場合にのみ新規売りが可能です。

過剰取引を防ぎ、次のエントリー間に十分な市場変動を確保するため、システムは、新しいシグナルを確認する前に最低10本のバー間隔を設けます。

さらに、方向ごとの最大エントリー数は5回に制限されます。この制約により、利益獲得の可能性を確保しつつ、ボラティリティの高い期間における過剰なポジション積み上げを防ぎます。

TSOエキスパートアドバイザー(EA)のコード構造

OnTick()関数内で最初におこなわれる操作は、新しいバーが形成されたかどうかを判定することです。これはカスタム関数IsNewBar()を用いておこなわれます。

この条件文により、インジケーターの更新やシグナル判定などのすべての計算は、毎ティックではなく、確定バーごとに1回だけ実行されます。この方法により、計算負荷が大幅に軽減され、同一バー内での重複取引発生を防ぐことができます。

    if(!IsNewBar()) return;
    
    // Calculate TSO values
    CalculateTSO();
    
    // Check entry conditions
    CheckEntryConditions();
新しいバーが確認されると、EAはCalculateTSO()関数を呼び出します。 

この関数は、現在の価格データに基づいて最新のTriple Sine Oscillator (TSO)値を計算し、内部的に以下の処理をおこないます。

  • 価格の移動平均(MA)と標準偏差(Std)を更新する
  • 感度係数(k)を用いて価格をスケーリングする
  • 正弦の三乗関数を適用し、TSO値を生成する

計算されたオシレーター値(前回値と現在値)は、シグナル評価フェーズで使用するためのバッファに格納されます。

TSOの最新値を計算した後、EAはCheckEntryConditions()関数を用いて取引ロジックの評価に進みます。

CheckEntryConditions()関数は、Triple Sine Mean Reversion EAの意思決定の中核を担い、TSOインジケーターの値に基づいて売買シグナルを検証し、ポジションエントリーを管理します。この関数は、ポジション追跡、取引方向の制御、シグナル確認を統合することで、すべての取引がシステムの論理およびリスクパラメータに従うように設計されています。

//+------------------------------------------------------------------+
//| Check entry conditions                                           |
//+------------------------------------------------------------------+
void CheckEntryConditions()
{
    // Count current positions
    CountPositions();
    
    // Check if we can open new positions
    if(buyCount + sellCount >= MaxEntries)
    {
        Print("Maximum entries reached: ", MaxEntries);
        return;
    }
    
    // Check Buy condition: PrevTSO > -0.7 && CurTSO < -0.7
    if(prevTSO > -TSO_Threshold && curTSO < -TSO_Threshold)
    {
        Print("Buy condition met");
        if(CanOpenBuy())
        {
            OpenBuyPosition();
        }
    }
    
    // Check Sell condition: PrevTSO < 0.7 && CurTSO > 0.7
    if(prevTSO < TSO_Threshold && curTSO > TSO_Threshold)
    {
        Print("Sell condition met");
        if(CanOpenSell())
        {
            OpenSellPosition();
        }
    }
}

以下に関数の詳細を示します。

関数の冒頭で、EAは現在市場に存在するアクティブな買いポジションと売りポジションを数えます。この情報はbuyCountとsellCount変数に格納され、後でポジション上限の管理や取引方向の一貫性を保つために使用されます。

新しくエントリーする前に、EAは総ポジション数が事前に定義された最大値を超えていないことを確認します。

この条件により、戦略で定められた最大5ポジションを超えることがなく、過剰なリスクエクスポージャーを防ぎます。上限に達した場合、いずれかのポジションが決済されるまで新規エントリーはおこなわれません。

次に、EAは買いシグナル条件を評価します。これは、前回のTSO値が−0.7を上回り、かつ現在のTSO値が−0.7を下回った場合に発生します。

この条件は、市場が売られ過ぎの状態にある可能性を示唆します。

新規買い注文を実行する前に、EAはヘルパー関数CanOpenBuy()を呼び出し、以下を確認します。

  • 既存の売りポジションが存在しないこと(一方向取引を維持するため)
  • 前回エントリーから最低10本のバー間隔が経過していること

これらの条件が満たされると、EAはOpenBuyPosition()を通じて新しい買いポジションを建てます。

同様に、売り条件は前回のTSO値が+0.7未満で、現在のTSO値が+0.7を上回った場合にチェックされます。

これは買われ過ぎの可能性を示し、価格が平均値に向かって下落することを示唆します。CanOpenSell()関数は、既存の買いポジションが存在しないことと、最低バー間隔の要件が満たされていることを確認してから新規売りポジションを開きます。

取引フィルタリングと制御


CountPositions()、CanOpenBuy()、CanOpenSell()を組み合わせることで、システムは次の安全策を実施します。

  • 取引方向の一貫性:同時にアクティブになるのは買いか売りのいずれか一方のみ
  • ポジション管理:同時に保持できるポジションは最大5つ
  • タイミング規律:新規ポジションを検討する前に、最低10本のバーが経過している必要がある

TSO EAのデモンストレーション

コード構造とEA内部ロジックを確認したところで、次に実際の市場環境でシステムがどのように取引を実行するかを示します。

EAが稼働すると、市場データをリアルタイムで継続的に監視し、新しいバーの開始時にエントリー条件を評価します。有効なシグナルが検出されると、TSOのクロスオーバーに基づき、前述のルールに従って自動的に買いまたは売り注文が実行されます。

TSO EAデモ

図3:TSO EAデモ

図3は、実際の市場シナリオにおけるTSO EAの注文実行例を示しています。各買いと売りの実行は、オシレーターの閾値クロスオーバーと正確に一致しています。 

また、同じ方向での複数エントリーも観察され、EAが同一条件の再発時に既存ポジションへ追加できることを示しています(ただし、10本のバー間隔および最大エントリー制限は遵守されます)。

この自動実行プロセスにより、TSO EAは数学的なシグナル検出を正確な市場アクションに変換し、取引管理における一貫性、速度、規律を確保します。


結論

本記事では、数学的モデリングとテクニカル分析を統合した新しい取引手法を開発することに成功しました。正弦の三乗関数から始め、Triple Sine Oscillator (TSO)を構築しました。TSOは、市場の周期的挙動を捉え、平均回帰の機会を特定するために設計されたユニークなインジケーターです。さらに、この概念を発展させて、完全な平均回帰戦略を作成し、その構造、コードロジック、リアルタイムの取引実行プロセスまで詳細に説明しました。

TSOの数学的基盤により、買われ過ぎおよび売られ過ぎの状況を効果的に検出でき、レンジ相場における適切なエントリーシグナルを提供します。複数エントリー機能を組み込むことで、トレーダーはポジションを「スケールイン」し、強い平均回帰局面で潜在的な利益を最大化できます。しかし、この機能は同時に追加リスクをもたらすため、利益を増やせる一方で、市場状況が予期せず変化した場合には損失が累積するリスクも伴います。

本記事を通じて、数学関数をどのように新しいオシレーターに変換し、さらに構造化された平均回帰取引戦略に発展させるかを示しました。トリプルサイン平均回帰法は、数学的設計における創造性が、現実の取引に応用可能な革新的なツールへとつながることを示しています。

次回の記事では、TSOをトレンドフォロー系インジケーターと組み合わせた場合のパフォーマンスを評価し、さまざまな市場状況における堅牢性や適応性を検証することで、強みや制限、最適化の可能性を明らかにします。

ファイル名 詳細
SineCube.mq5 -2πから+2πの範囲で数学的正弦関数をプロットするファイル。プロット後はテンプレートを更新してプロットを削除する必要があります。
TripleSineOscillator.mq5 チャートウィンドウ上でインジケーターを生成するファイル
TSO_EA.mq5 リアルタイムで取引を実行するEAファイル

MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/20220

添付されたファイル |
SineCube.mq5 (5.61 KB)
TSO_EA.mq5 (9.64 KB)
最後のコメント | ディスカッションに移動 (2)
Paul Afolabi
Paul Afolabi | 15 11月 2025 において 17:56
これをテスト用に入手できますか?
Juvenille Emperor Limited
Eleni Anna Branou | 15 11月 2025 において 18:44
Paul Afolabi #:
テスト用にこれをいただけますか?
最初の記事の中にあります。
MQL5取引ツール(第10回):視覚的なレベルとパフォーマンス指標を備えた戦略追跡システムの構築 MQL5取引ツール(第10回):視覚的なレベルとパフォーマンス指標を備えた戦略追跡システムの構築
移動平均線のクロスオーバーシグナルを検知し、長期移動平均線でフィルタリングした上で、利益確定(TP)や損切り(SL)をポイント単位で設定して取引をシミュレーションまたは実行し、結果をモニタリングするMQL5戦略トラッカーシステムを開発します。
オンチャートUIを使用したリスクベースの取引執行EA(第2回):インタラクティブ性とロジックの追加 オンチャートUIを使用したリスクベースの取引執行EA(第2回):インタラクティブ性とロジックの追加
チャート上のコントロールパネルを備えたインタラクティブなMQL5エキスパートアドバイザー(EA)を構築する方法を学びます。リスクベースのロットサイズを計算し、チャート上から直接取引をおこなう方法を理解します。
エラー 146 (「トレードコンテキスト ビジー」) と、その対処方法 エラー 146 (「トレードコンテキスト ビジー」) と、その対処方法
この記事では、MT4において複数のEAの衝突をさける方法を扱います。ターミナルの操作、MQL4の基本的な使い方がわかる人にとって、役に立つでしょう。
MQL5での取引戦略の自動化(第39回):信頼区間とダッシュボードを備えた統計的平均回帰 MQL5での取引戦略の自動化(第39回):信頼区間とダッシュボードを備えた統計的平均回帰
統計的平均回帰取引用のMQL5エキスパートアドバイザー(EA)を開発します。指定期間における平均、分散、歪度、尖度、ジャック=ベラ統計量などのモーメントを算出し、非正規分布を特定するとともに、適応的な閾値を用いた信頼区間に基づいて売買シグナルを生成します。