フィボナッチ 0.7 レベルに基づくトレンドブレイクアウト定量取引戦略

SL TP
作成日: 2024-12-27 15:51:13 最終変更日: 2024-12-27 15:51:13
コピー: 4 クリック数: 532
1
フォロー
1617
フォロワー

フィボナッチ 0.7 レベルに基づくトレンドブレイクアウト定量取引戦略

概要

この戦略は、フィボナッチ 0.7 リトレースメント レベルに基づいたトレンド ブレイクアウト取引システムです。指定された参照期間の最高価格と最低価格を計算してフィボナッチ 0.7 レベルを決定し、価格がそのレベルを突破したときに取引シグナルを生成します。この戦略では、リスクを管理するために固定割合の利益確定と損失ストップを使用し、デフォルトでは、単一の取引金額として総口座金額の 5% を使用します。

戦略原則

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

  1. フィボナッチ レベルを動的に計算します。指定されたルックバック期間 (デフォルトでは 20 期間) 中、最高価格と最低価格が継続的に追跡され、0.7 フィボナッチ リトレースメント ポジションが計算されます。
  2. ブレイクアウト シグナルの確認: 終値が下から 0.7 レベルを突破するとロング シグナルが生成され、上から突破するとショート シグナルが生成されます。
  3. リスク管理: システムは対称的な利益確定条件と損切り条件を設定します。デフォルトの利益確定条件は 1.8%、損切り条件は 1.2% です。この設定は、正の期待値の概念を体現しています。
  4. ポジション管理: 口座総額の一定割合を開設額として使用することで、資金を動的に管理し、リスク管理を安定させることができます。

戦略的優位性

  1. テクニカル指標の科学的な選択: フィボナッチ リトレースメントは市場で広く認知されているテクニカル分析ツールであり、0.7 レベルは通常、強力なサポートまたはレジスタンスを表します。
  2. 明確なシグナル ロジック: 価格のブレイクスルーを取引トリガーとして使用すると、複雑なシグナルの組み合わせによって発生する可能性のある遅延を回避できます。
  3. 合理的なリスク・リターン比率: 利益確定比率と損切り比率の設定は、プラスの期待値を反映し、長期にわたる安定した利益につながります。
  4. 柔軟な資金管理: ポジションは口座比率に基づいて開かれ、口座サイズの変更に応じて取引量が自動的に調整されます。

戦略リスク

  1. 市場環境への依存: 不安定な市場では誤ったブレイクアウト シグナルが頻繁に発生し、取引コストが増加する可能性があります。
  2. パラメータの感度: ルックバック期間、利益確定比率、ストップロス比率などのパラメータの選択は、戦略のパフォーマンスに大きな影響を与えます。
  3. スリッページの影響: 取引量が少ない市場では、スリッページのリスクが大きくなる可能性があります。
  4. 技術的な制限: 単一のテクニカル指標では、市場の多次元情報を完全に把握できない可能性があります。

戦略最適化の方向性

  1. シグナル フィルタリング: 取引量やボラティリティなどの補助指標を導入して、誤ったブレイクスルー シグナルを除外できます。
  2. 動的パラメータ: 市場のボラティリティに基づいて、ルックバック期間、利益確定比率、ストップロス比率を動的に調整することを検討します。
  3. 時間フィルタリング: ボラティリティの高い期間を回避するために、取引時間ウィンドウの制限を増やします。
  4. マルチサイクル検証: 信号の信頼性を向上させるために、複数の期間の確認メカニズムを追加します。

要約する

この戦略は古典的なフィボナッチ理論に基づいており、トレンドブレイクアウトとリスク管理の中核要素を組み合わせています。一定の制限はあるものの、合理的なパラメータ最適化と信号フィルタリングにより、さまざまな市場環境で安定したパフォーマンスを維持することが期待されます。戦略を成功させるには、トレーダーが市場特性を深く理解し、実際の状況に基づいて適切な調整と最適化を行う必要があります。

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

//@version=5
strategy("Fibonacci 0.7 Strategy - 60% Win Rate", overlay=true)

// Input parameters
fibonacci_lookback = input.int(20, minval=1, title="Fibonacci Lookback Period")
take_profit_percent = input.float(1.8, title="Take Profit (%)")
stop_loss_percent = input.float(1.2, title="Stop Loss (%)")

// Calculating Fibonacci levels
var float high_level = na
var float low_level = na
if (ta.change(ta.highest(high, fibonacci_lookback)))
    high_level := ta.highest(high, fibonacci_lookback)
if (ta.change(ta.lowest(low, fibonacci_lookback)))
    low_level := ta.lowest(low, fibonacci_lookback)

fib_level_0_7 = high_level - ((high_level - low_level) * 0.7)

// Entry Conditions
buy_signal = close > fib_level_0_7 and close[1] <= fib_level_0_7
sell_signal = close < fib_level_0_7 and close[1] >= fib_level_0_7

// Risk management
long_take_profit = strategy.position_avg_price * (1 + take_profit_percent / 100)
long_stop_loss = strategy.position_avg_price * (1 - stop_loss_percent / 100)
short_take_profit = strategy.position_avg_price * (1 - take_profit_percent / 100)
short_stop_loss = strategy.position_avg_price * (1 + stop_loss_percent / 100)

// Execute trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Take Profit and Stop Loss
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=long_stop_loss, limit=long_take_profit)
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=short_stop_loss, limit=short_take_profit)

// Plot Fibonacci Level
plot(fib_level_0_7, color=color.blue, title="Fibonacci 0.7 Level")