MACDとスーパートレンドに基づく二重検証トレンドフォロー取引戦略

MACD ATR SMA
作成日: 2024-12-11 17:16:05 最終変更日: 2024-12-11 17:16:05
コピー: 0 クリック数: 369
1
フォロー
1617
フォロワー

MACDとスーパートレンドに基づく二重検証トレンドフォロー取引戦略

概要

この戦略は,MACD指標とSupertrend指標を組み合わせた二重検証のトレンド追跡システムである.戦略は,MACD線とシグナル線の交差点を比較し,同時にSupertrend指標のトレンド方向を組み合わせて入場時間を決定し,リスクを管理するために固定パーセントのストップとストップのレベルを設定している.この二重検証の仕組みは,取引信号の信頼性を高め,偽の信号の干渉を効果的に軽減する.

戦略原則

戦略の中核となるロジックは、次の主要な要素に基づいています。

  1. スーパートレンド指標:20サイクルATRと2倍因子によるトレンドラインの計算を使用して,現在の市場トレンドの方向を判断する.
  2. MACD指標:クラシック12/26/9パラメータ設定を使用して,快線と慢線の交差によって取引信号を生成する.
  3. 入場条件:MACD快線がスローラインを上向きに横切る場合 ((買取信号) と,スーパートレンドの方向が上昇傾向 ((direction==1)) である場合にのみ,買取操作をトリガーします.
  4. リスク管理: 資金の安全性を保護し,利益をロックするために,取引ごとに0.5%のストップ・ローズと99.99%のストップ・ストップレベルを設定します.

戦略的優位性

  1. 双重検証メカニズム:トレンド追跡指標 ((Supertrend) と動態指標 ((MACD) の優位性を組み合わせることで,取引シグナルの正確性が著しく向上する.
  2. 適応性強:スーパートレンド指標はATR計算に基づいており,市場の波動性に応じてパラメータを自動的に調整し,異なる市場環境に対応します.
  3. リスク管理: パーセンテージ・ストップ・ロスの戦略により,単一取引のリスクは管理できます.
  4. ロジック・クリアな実行:入場・出場条件が明確で,主観的な判断による干渉を避ける.
  5. 操作が簡単: 戦略の論理は直感的で,実際の操作と監視が容易である.

戦略リスク

  1. トレンド依存性: 波動的な市場では頻繁に偽信号が発生し,取引コストが増加する可能性があります.
  2. 遅滞のリスク:MACDとSupertrendは,遅滞の指標であり,市場の急速な変化に十分に反応しない可能性があります.
  3. 固定ストップリスク: 固定パーセンテージストップは,異なる市場環境下での波動的特性にうまく適応しない可能性があります.
  4. パラメータ感性: 戦略効果は複数のパラメータの設定に制限され,市場の変化に対応するために継続的に最適化する必要があります.

戦略最適化の方向性

  1. ダイナミックストップの最適化: 固定ストップをATRベースのダイナミックストップに変更し,市場の波動に適した最適化が推奨される.
  2. 市場環境フィルターを追加する:波動率指標 (VIXなど) を追加して,波動が大きいときに戦略パラメータを調整したり,取引を一時停止したりする.
  3. 量価格関係導入:交付量指標を信号確認システムに組み込み,信号信頼性を向上させる.
  4. 最適化パラメータ自適化:市場の状況に基づくパラメータ自適化メカニズムを開発し,戦略の適応性を向上させる.
  5. ポジション管理の改善:ダイナミックなポジション管理メカニズムを導入し,市場の変動と口座の純資産の動向に応じて取引規模を調整する.

要約する

この戦略は,MACDとSupertrend指標の優位性を組み合わせて,比較的信頼性の高いトレンド追跡取引システムを構築している. 精度46%と収益率46%は,戦略が一定の収益性を示している. 戦略の安定性と適応性は,推奨された最適化方向,特にダイナミックストップと市場環境フィルターの導入によってさらに向上すると見込まれている.

ストラテジーソースコード
/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('MANTHAN BHRAMASTRA', overlay=true)

// Supertrend function
f_supertrend(_period, _multiplier) =>
    atr = ta.sma(ta.tr, _period)
    upTrend = hl2 - _multiplier * atr
    downTrend = hl2 + _multiplier * atr
    var float _supertrend = na
    var int _trendDirection = na
    _supertrend := na(_supertrend[1]) ? hl2 : close[1] > _supertrend[1] ? math.max(upTrend, _supertrend[1]) : math.min(downTrend, _supertrend[1])
    _trendDirection := close > _supertrend ? 1 : -1
    [_supertrend, _trendDirection]

// Supertrend Settings
factor = input(2, title='Supertrend Factor')
atrLength = input(20, title='Supertrend ATR Length')

// Calculate Supertrend
[supertrendValue, direction] = f_supertrend(atrLength, factor)


// MACD Settings
fastLength = input(12, title='MACD Fast Length')
slowLength = input(26, title='MACD Slow Length')
signalSmoothing = input(9, title='MACD Signal Smoothing')

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// Generate Buy signals
buySignal = ta.crossover(macdLine, signalLine) and direction == 1

// Plot Buy signals

// Calculate stop loss and take profit levels (0.25% of the current price)
longStopLoss = close * 0.9950
longTakeProfit = close * 1.9999

// Execute Buy orders with Target and Stop Loss
if buySignal
    strategy.entry('Buy', strategy.long)
    strategy.exit('Sell', 'Buy', stop=longStopLoss, limit=longTakeProfit)