トレンドの反転を正確に捉える移動平均クロスオーバー戦略


作成日: 2024-01-22 12:14:29 最終変更日: 2024-01-22 12:14:29
コピー: 1 クリック数: 546
1
フォロー
1621
フォロワー

トレンドの反転を正確に捉える移動平均クロスオーバー戦略

概要

この策略は,黄金の交差死交差策略と呼ばれる.その主な考えは,移動平均の黄金の交差と死の交差の2つの異なる周期の2つの強力な技術指標信号を利用して,市場のトレンドの逆転を捕捉し,低買い高売りの効果を実現することである.

戦略原則

この戦略では,50周期と200周期のSMAを計算します.従来的に,50日線が上から下りて200日線を突破すると,死交差と呼ばれる,看板の信号になります.50日線が下から200日線を突破すると,金交差と呼ばれる,看板の信号になります.

この戦略の取引論理は,この2つの信号の出現に基づいてポジションを確立することです.具体的には,戦略は死交差の発生時に空白になり,金交差の発生時に多額になります.このようにして,市場トレンドの転換点の近くで利益を得ることができます.

さらに,戦略にはカスタマイズ可能な反測時間帯機能が提供されています. これは,さまざまな日付の範囲で戦略のパフォーマンスをテストし,これらの交差信号の実際の効果を検出することができます.

戦略的優位性

  1. 市場トレンドの逆転点を効果的に捉え,重要なポイントの近くでポジションを開き,利益を得ることができます.
  2. 2つの異なる周期均線の交差結合を採用し,誤信号を回避する
  3. 市場状況の異なる状況で戦略の実績を検証するためのフィードバック機能を提供
  4. 交差信号とポジションの変化を直感的に見ることができる

戦略リスク

  1. 平均線交差の信号が遅れているため,極端な状況の逆転を予測することはできません.
  2. 回測データは実盤データと異なる可能性があり,実際のパフォーマンスは取引コストと滑り点に制限される
  3. 平均線周期のような策略パラメータの選択は,結果に大きな影響を与える
  4. 基本的状況と技術的な状況に注目し,機械的な取引はできない.

リスクに合わせて平均線パラメータを調整し,他の指標のフィルター信号と組み合わせて,資金管理をよくし,実際のリスクを減らすために実地検証戦略を実行できます.

戦略最適化の方向性

この戦略は,以下のような点で最適化できます.

  1. 異なる均線周期の組み合わせをテストする
  2. 取引量や変動率などのフィルタリング指標を増加させ,一般的な道筋を避ける
  3. 経済データや基本情報と 組み合わせて フィルターにします
  4. 移動停止や時間停止のようなストップ・ストラトジーを検討する
  5. ポジションの長さの違いの評価

異なるパラメータが戦略のパフォーマンスに与える影響をテストすることで,よりよい均等なクロスラインの取引方法を見つけることができます.

要約する

この戦略は,移動平均線交差というクラシックな技術指標信号を利用して,市場の重要な転換点を捉えます.戦略の論理はシンプルで明確で,同時に便利な反省機能を提供します.我々は,トレンド追跡の構成要素として,判断を補助することができます.もちろん,現場で様々な外部要因を考慮する必要があり,単一の指標の盲目取引に依存することはできません.

ストラテジーソースコード
/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[S_R__9] - Death and Golden Cross", overlay=true)

// Specific Time Date Range For Backtest
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31, group='DATE CONFIG')
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12, group='DATE CONFIG')
startYear = input.int(title='Start Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

endDate = input.int(title='End Date', defval=31, minval=1, maxval=31, group='DATE CONFIG')
endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12, group='DATE CONFIG')
endYear = input.int(title='End Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

SPECIFIC_DATE = input.bool(title='USE SPECIFIC DATE ?', defval=false, group='DATE CONFIG')

inDateRange = SPECIFIC_DATE ? time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) : true

// Calculate 50 SMA and 200 SMA
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// Detect a Death Cross (50 SMA crossing below 200 SMA)
deathCross = ta.crossunder(sma50, sma200)
// Detect a Golden Cross (50 SMA crossing above 200 SMA)
goldenCross = ta.crossover(sma50, sma200)

// Strategy Execution
if (inDateRange)
    if (deathCross)
        strategy.entry("Death Cross long", strategy.short)

    if (goldenCross)
        strategy.entry("Golden Cross short", strategy.long)

// Plot SMAs
plot(sma50, color=color.red, title="50 SMA")
plot(sma200, color=color.blue, title="200 SMA")

// Plotting Death Cross signal
plotshape(series=deathCross and inDateRange, title="Death Cross Signal", location=location.belowbar, color=color.red, style=shape.labeldown, text="DEATH CROSS")

// Plotting Golden Cross signal
plotshape(series=goldenCross and inDateRange, title="Golden Cross Signal", location=location.abovebar, color=color.green, style=shape.labelup, text="GOLDEN CROSS")