この戦略は"ゴールデンクロスデスクロス戦略"と呼ばれています.その核心の考え方は,異なるタイムフレームの2つの移動平均値のゴールデンクロスとデスクロスによって生成される強力な信号を活用して,市場のトレンド逆転を捉え,低価格/高価格で利益を得ることです.
この戦略では,50期および200期単動平均線 (SMA) を計算します.伝統的に,50日SMAが200日SMAを下回ると,それは下落見通しを示す"死クロス"と呼ばれ,50日SMAが200日SMAを下回ると,それは上昇傾向を示す"黄金クロス"です.
取引の論理は,単にこれらの信号に基づいてポジションを取ること - 死のクロスでショート,黄金のクロスでロング.これは,市場のトレンドが逆転するときに,転換点の周りに利益を得ることを可能にします.
さらに,この戦略はバックテストのためのカスタマイズ可能な日付範囲を提供します. そのため,私たちは異なる期間におけるこれらのクロスオーバー信号の実際の有効性を調べることができます.
リスクに対処するために パラメータを最適化し フィルターを追加し リスクを管理し 戦略を紙に書き替えて リスクを最小限に抑えます
この戦略を最適化する主な方法は以下の通りです.
パラメーターの影響を調べることで よりよい移動平均のクロスオーバーシステムを 発見できます
この戦略は,市場における重要な転換点を把握するために,移動平均のクラシックな技術指標を活用する. シンプルな論理と便利なバックテスト機能により,より広範なシステムの一部としてトレンドを追跡するのに役立ちます. しかし,現実世界の取引は,盲目的に信号に依存するのではなく,さまざまな外部要因を考慮する必要があります.
/*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")