
この戦略は,フィボナッチ・リターン,トレンド・トラッキング,リスク・マネジメントを組み合わせた総合的な取引システムである.これは,主要に0.65フィボナッチ・リターンレベルを重要な価格基準点として使用し,移動平均と組み合わせて市場トレンドを確認し,ATRベースのダイナミックストップ・ストップ・メカニズムを統合している.この戦略は15分周期で動作し,現在の市場トレンドに適合する高確率の取引機会を捕捉することを目的としている.
戦略の中核となるロジックは、次の主要な要素に基づいています。
これは,合理的に設計された中期トレンド追跡戦略であり,フィボナッチ理論,トレンド追跡,リスク管理を組み合わせて,完全な取引システムを構築している.この戦略の主な特徴は,市場トレンドを認識した上で,価格突破の重要なレベルを利用して取引信号を生成し,ダイナミックなストップ・ストップ・メカニズムによってリスクを管理することである.いくつかの最適化が必要な場所があるが,全体として実用的な戦略の枠組みである.
/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-25 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Refined Fibonacci Strategy - Enhanced Risk Management", overlay=true)
// Input parameters
fibonacci_lookback = input.int(38, minval=2, title="Fibonacci Lookback Period")
atr_multiplier = input.float(1.8, title="ATR Multiplier for Stop Loss and Take Profit")
sma_length = input.int(181, title="SMA Length")
// 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_65 = high_level - ((high_level - low_level) * 0.65)
// Trend Filter using SMA
sma = ta.sma(close, sma_length)
in_uptrend = close > sma
in_downtrend = close < sma
// ATR for Risk Management
atr = ta.atr(12)
long_stop_loss = close - (atr * atr_multiplier)
long_take_profit = close + (atr * atr_multiplier)
short_stop_loss = close + (atr * atr_multiplier)
short_take_profit = close - (atr * atr_multiplier)
// Entry Conditions
buy_signal = close > fib_level_0_65 and close[1] <= fib_level_0_65 and in_uptrend
sell_signal = close < fib_level_0_65 and close[1] >= fib_level_0_65 and in_downtrend
// Execute Trades
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Exit Conditions
if (strategy.position_size > 0)
strategy.exit("Exit Long", "Buy", stop=long_stop_loss, limit=long_take_profit)
if (strategy.position_size < 0)
strategy.exit("Exit Short", "Sell", stop=short_stop_loss, limit=short_take_profit)
// Plotting
plot(fib_level_0_65, color=color.blue, title="Fibonacci 0.65 Level")
plot(sma, color=color.orange, title="SMA")