
Стратегия представляет собой комплексную торговую систему, объединяющую фибоначевые отклонения, отслеживание тенденций и управление рисками. Она основана на уровне 0,65 фибоначевых отклонений в качестве ключевой ценовой точки, а также использует движущуюся среднюю для подтверждения тенденций рынка, а также интегрирует динамический стоп-стоп на основе ATR.
Основная логика стратегии основана на следующих ключевых компонентах:
Это разумно разработанная среднесрочная стратегия отслеживания тенденций, которая объединяет теорию Фибоначчи, отслеживание тенденций и управление рисками для создания целостной торговой системы. Основная особенность стратегии заключается в том, что она основана на идентификации рыночных тенденций, генерирует торговые сигналы на основе использования цены, преодолевающей критический уровень, и управляет риском с помощью динамического механизма остановки убытков. Хотя есть некоторые места, где требуется оптимизация, в целом это стратегическая структура, которая имеет практическую ценность.
/*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")