
Эта стратегия в сочетании с бурин-полосами и RSI использует метод двойного подтверждения для выявления потенциальных рыночных поворотных точек. Вступать в позиции сверхновой позиции, когда цена пересекает нижнюю бурин-полосу и RSI подтверждает условия перепродажи. Вступать в позицию сверхновой позиции, когда цена пересекает верхнюю бурин-полосу и RSI подтверждает условия перекупа.
Эта стратегия основана на принципе среднезначной регрессии и механизме подтверждения динамики. Бринговые полосы помогают идентифицировать предельные значения цены относительно недавней волатильности, а RSI подтверждает, действительно ли рынок находится в состоянии перекупа или перепродажи. Основные принципы включают:
В реализации кода, стратегия использует 30-дневный цикл SMA для расчета в брин-поясе оси, стандартная дифференциация равна 2.0, а также использует 14-дневный цикл RSI для подтверждения динамики. Вызвать пусковой сигнал, когда цена переходит вверх и RSI выше 70, и вызывать многоголовый сигнал, когда цена переходит вниз и RSI ниже 30. В то же время, для каждой сделки применяются фиксированные 40-точковые остановки и 40-точковые отслеживаемые остановки, чтобы обеспечить контроль риска.
Стратегия двойного подтверждения среднего возврата в брин-RSI с отслеживанием стоп-защиты представляет собой продуманный метод торговли рыночными обратными движениями. Стратегия, объединяющая волатильные сигналы в брин-поясе с подтверждением динамики RSI, предназначена для захвата высоковероятных обратных движений и фильтрации ложных сигналов. Встроенный механизм управления рисками обеспечивает важный уровень защиты путем фиксирования и отслеживания стоп-защиты.
/*backtest
start: 2024-08-11 00:00:00
end: 2025-08-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("BB & RSI Trailing Stop Strategy", overlay=true, initial_capital=10000)
// --- Inputs for Bollinger Bands, RSI, and Trade Management ---
bb_length = input.int(30, title="BB Length", minval=1)
bb_mult = input.float(2.0, title="BB StdDev", minval=0.001, maxval=50)
rsi_length = input.int(14, title="RSI Length", minval=1)
rsi_overbought = input.int(70, title="RSI Overbought Level", minval=1)
rsi_oversold = input.int(30, title="RSI Oversold Level", minval=1)
// We only need an input for the fixed stop loss now.
fixed_stop_points = input.int(40, title="Fixed Stop Loss Points", minval=1)
// --- Define Trailing Stop Value ---
// The trailing stop is hardcoded to 40 points as requested.
trailing_stop_points = 40
// --- Calculate Indicators ---
// Bollinger Bands
basis = ta.sma(close, bb_length)
dev = bb_mult * ta.stdev(close, bb_length)
upper = basis + dev
lower = basis - dev
// RSI
rsi_value = ta.rsi(close, rsi_length)
// --- Plot the Indicators on the chart ---
plot(basis, "Basis", color=color.new(color.gray, 0))
plot(upper, "Upper", color=color.new(color.red, 0))
plot(lower, "Lower", color=color.new(color.green, 0))
// --- Define Entry Conditions ---
// Short entry when price crosses upper band AND RSI is overbought
short_condition = ta.crossover(close, upper) and (rsi_value > rsi_overbought)
// Long entry when price crosses under lower band AND RSI is oversold
long_condition = ta.crossunder(close, lower) and (rsi_value < rsi_oversold)
// --- Execute Trades and Manage Exits ---
if (strategy.position_size == 0)
// Logic for SHORT trades
if (short_condition)
strategy.entry("BB/RSI Short", strategy.short)
// Logic for LONG trades
if (long_condition)
strategy.entry("BB/RSI Long", strategy.long)
// Apply the fixed stop loss and trailing stop to any open position
strategy.exit(id="Exit Order",
loss=fixed_stop_points,
trail_points=trailing_stop_points,
trail_offset=0)