資源の読み込みに... 荷物...

戦略をフォローする月間移動平均フィルタートレンドと歴史的な高い突破

作者: リン・ハーンチャオチャン開催日:2024年12月13日 10:25:18
タグ:ATHSMAマルチ

img

概要

この戦略は,歴史的な高突破率と月間移動平均フィルターに基づくトレンドフォローシステムである.これは,前回の歴史的な高値を超える価格ブレイクをモニタリングすることによって買い信号を生成し,月間タイムフレームで8期間のシンプル・ムービング・平均値 (8 SMA) を販売フィルターとして使用して偽のブレイクリスクを軽減する.戦略デザインは"トレンド継続"の市場特性に準拠し,特に強い上昇市場における主要なトレンドを把握するのに適している.

戦略の原則

基本的な論理は2つの重要な要素で構成されています.

  1. 購入シグナル: 最新の閉値が前回の過去最高値 (現在のバー値を除く) を突破したときに生成される.この条件は,明確な上昇傾向でのみエントリーを保証する.
  2. セール・シグナル:月額閉盘価格が8期間のシンプル・ムービング・平均値を下回ったときに発生する.この条件は,時宜のストップ・ロスを助け,トレンド逆転によるより大きな損失を防ぐ. 戦略には,同じ状態の繰り返し信号を避けるための信号状態追跡メカニズムも含まれ,戦略の安定性を向上させる.

戦略 の 利点

  1. 強いトレンドキャプチャ: 高いブレイク記録を検出することで,強力な上昇傾向を効果的にキャプチャします.
  2. 堅牢なリスク管理: 偽のブレイクを効果的にスクリーニングするためのフィルターとして月間移動平均を組み込む.
  3. 高い信号安定性: 信号状態を追跡するためにlastSignal変数を使用し,信号の再現を防ぐ.
  4. 良い可視化: 歴史的な高線,移動平均線,購入/販売マーカーを含む明確なグラフィックインターフェースを提供します.
  5. 高い適応性: 異なる時間枠と機器に適用できます.

戦略リスク

  1. 遅延リスク: 過去の高突破信号は,本質的に少し遅れているため,最適なエントリーポイントを欠いている可能性があります.
  2. 偽のブレイクリスク:月間移動平均のフィルタリングにもかかわらず,偽のブレイクはまだ変動する市場で発生する可能性があります.
  3. 引き下げリスク: 戦略は,トレンドの逆転点において大きな引き下げを経験する可能性があります.
  4. ポジション管理リスク: 戦略にはポジションサイズ化メカニズムがないため,資金管理の追加規則が必要である.

戦略の最適化方向

  1. 音量確認:信号の信頼性を向上させるために,音量指標をブレイクアウト確認条件として追加します.
  2. ストップ・ロスの強化: トレイリング・ストップや波動性に基づくストップなどの,より柔軟なストップ・ロスのルールを設計する.
  3. ポジション管理: 市場の変動とトレンド強度に基づいてポジションサイズを動的に調整する.
  4. シグナルフィルタリング: ADX などのトレンド強度指標を追加して弱いシグナルをさらにフィルタリングします.
  5. タイムフィルタリング: 不適切な期間中に取引を避けるため,タイムペリオドフィルタを追加します.

概要

この戦略は,明確な論理を持つ戦略を踏まえて,よく設計されたトレンドである.歴史的な高いブレイクアウトと月間移動平均を組み合わせることで,効果的なトレンドキャプチャと合理的なリスク制御の両方を達成する.遅滞と誤ったブレイクアウトの固有のリスクがある一方で,提案された最適化方向はさらなるパフォーマンス改善の可能性を提供している.この戦略は,明確なトレンドを持つ市場に特に適しており,中長期投資のための重要な参照ツールとして機能することができる.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy Signal on Close Greater Than Previous All-Time High Strategy", overlay=true)

// Initialize the previous all-time high
var float prevAllTimeHigh = na

// Update the all-time high, excluding the current bar's high (use previous bar's high)
if (na(prevAllTimeHigh) or high[1] > prevAllTimeHigh)
    prevAllTimeHigh := high[1]

// Monthly closing price and 8 SMA on monthly time frame
monthlyClose = request.security(syminfo.tickerid, "M", close)
monthlySMA = ta.sma(monthlyClose, 8)

// Variables to track the last signal type
var int lastSignal = 0 // 0 = None, 1 = Buy, 2 = Sell

// Debugging output to check the all-time high and conditions
plot(prevAllTimeHigh, color=color.blue, linewidth=1, title="Previous All-Time High")
plot(monthlySMA, color=color.green, linewidth=1, title="8 SMA (Monthly)")

// Buy signal: when the latest close is greater than the previous all-time high
buySignal = close > prevAllTimeHigh and lastSignal != 1

// Sell signal: when the monthly close is below the 8 SMA
sellSignal = monthlyClose < monthlySMA and lastSignal != 2

// Update the last signal type after triggering a signal
if (buySignal)
    lastSignal := 1
if (sellSignal)
    lastSignal := 2

// Execute the strategy orders
if (buySignal)
    strategy.entry("Buy", strategy.long)

if (sellSignal)
    strategy.close("Buy")

// Optional: Plot buy and sell signals on the chart for visual reference
plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)


関連性

もっと