フィボナッチリトレースメントとピボットポイント取引戦略を組み合わせた複数期間移動平均

EMA PP FIBO SL TP
作成日: 2024-12-11 15:58:20 最終変更日: 2024-12-11 15:58:20
コピー: 1 クリック数: 459
1
フォロー
1617
フォロワー

フィボナッチリトレースメントとピボットポイント取引戦略を組み合わせた複数期間移動平均

概要

この戦略は,複数の技術分析ツールを組み合わせた総合的な取引システムであり,主に双均線 ((20/50周期EMA)),フィボナッチ回調レベルおよび枢軸のサポートレジスタンス値を取引シグナルの決定に利用する. 戦略は,トレンド追跡と価格回調を組み合わせた方法を採用し,複数の確認によって取引の正確性を向上させる.

戦略原則

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

  1. 20と50周期EMAの交差を用い,全体的なトレンド方向を決定する
  2. フィボナッチ回調レベル ((23.6%,38.2%,50%,61.8%) を用いて潜在的サポートレジスタンス位を識別する
  3. 枢軸点 ((PP) とその支える抵抗点 ((S1/S2,R1/R2) を組み合わせて価格の臨界値を確認する
  4. 入場条件は同時に満たす必要があります:
    • 短期平均線は長期平均線を上方 ((多めに) または下方 ((空いて) に通過する
    • 価格が適切なフィボナッチ値より上/下にある
    • 価格が枢軸のサポートレジスタンスを満たしていることを確認する
  5. 固定ストップ (30ポイント) と収益目標 (60ポイント) を使ってリスクを管理する

戦略的優位性

  1. 複数の技術指標のクロス検証により,信号の信頼性が向上
  2. トレンドとレジスタンスとの組み合わせで,バランスのとれた入場タイミング
  3. 固定されたリスク管理パラメータにより,戦略を量化できます.
  4. ビジュアル化された取引シグナルの提示で,リアルタイムで監視できます.
  5. 短期的な波動の影響を減らすために,中長期のトレンド取引に適しています.

戦略リスク

  1. 複数の指標が信号の遅延を引き起こし,入場時刻に影響を与える可能性がある
  2. 固定ストップ・ロース・ペア・レベルは,すべての市場環境には適さない可能性があります.
  3. 横軸整理で誤信号が多すぎると考えられる
  4. 理想的な利益を得るためには,価格の大きな変動が必要である.
  5. 市場が急激に波動すると,ストップ・ロスは効果的でない可能性があります.

戦略最適化の方向性

  1. 波動率自律的な止損ブレーキを導入
  2. 補助確認としてボリュームインジケーターを追加
  3. 異なる市場状況に応じて動的に調整される平均線パラメータ
  4. 誤ったシグナルを減らすためにトレンド強度フィルターを追加する
  5. よりスマートな部分ポジション管理システム開発

要約する

この戦略は,いくつかのクラシックな技術分析ツールを統合することによって,比較的完全な取引システムを構築している.ある程度の遅れがあるものの,複数の確認機構によって取引の信頼性が向上している.最適化勧告の実施により,戦略は,実物取引でより良いパフォーマンスを期待している.実物使用の前に十分なフィードバックを行い,特定の市場の特徴に応じてパラメータを調整することが推奨されている.

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

//@version=5
strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true)

// Input for EMAs and Pivot Points
emaShortPeriod = input.int(20, title="Short EMA Period", minval=1)
emaLongPeriod = input.int(50, title="Long EMA Period", minval=1)
fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level")
fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level")
fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level")
fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level")

// Function to calculate Pivot Points and Levels
pivot(high, low, close) =>
    pp = (high + low + close) / 3
    r1 = 2 * pp - low
    s1 = 2 * pp - high
    r2 = pp + (high - low)
    s2 = pp - (high - low)
    [pp, r1, s1, r2, s2]

// Calculate Pivot Points
[pp, r1, s1, r2, s2] = pivot(high, low, close)

// Calculate 20 EMA and 50 EMA
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)

// Plot the EMAs
plot(emaShort, color=color.blue, title="20 EMA", linewidth=2)
plot(emaLong, color=color.red, title="50 EMA", linewidth=2)

// Fibonacci Levels (manually drawn between the most recent high and low)
var float fibHigh = na
var float fibLow = na

if (not na(high[1]) and high > high[1])  // Check if new high is formed
    fibHigh := high
if (not na(low[1]) and low < low[1])    // Check if new low is formed
    fibLow := low

fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1
fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2
fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3
fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4

plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%")
plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%")
plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%")

// Entry conditions (Crossovers)
longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1
shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1

// Exit conditions (Stop Loss and Take Profit)
stopLossPips = 30 * syminfo.mintick  // 30 pips Stop Loss
takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit

if (longCondition)
    strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips)
if (shortCondition)
    strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips)

// Plot Pivot Points for visual reference
plot(pp, color=color.yellow, linewidth=2, title="Pivot Point")
plot(r1, color=color.purple, linewidth=1, title="Resistance 1")
plot(s1, color=color.purple, linewidth=1, title="Support 1")
plot(r2, color=color.purple, linewidth=1, title="Resistance 2")
plot(s2, color=color.purple, linewidth=1, title="Support 2")

// Adding Buy and Sell Signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)