
Эта стратегия является интеллектуальной торговой системой, основанной на нескольких технических показателях, объединяющих три основных технических показателя: Bollinger Bands, Stochastic Oscillator и Average True Rate (ATR), для выявления потенциальных торговых возможностей путем комплексного анализа волатильности, динамики и тенденций рынка. Стратегия использует динамическую установку стоп-стоп и прибыльных целей, которая позволяет автоматически корректировать торговые параметры в зависимости от рыночных колебаний.
Основная логика стратегии основана на механизме тройной проверки:
Для создания торгового сигнала необходимо выполнение следующих условий: Условия покупки:
Условия продажи:
Стратегия создает целостную торговую систему с помощью комбинации применения бурин-полосок, случайных показателей и ATR. Преимущества стратегии заключаются в перекрестной проверке нескольких показателей и динамическом управлении рисками, но при этом также необходимо обратить внимание на вопросы оптимизации параметров и адаптации к рыночной среде. Благодаря постоянной оптимизации и совершенствованию стратегия может обеспечить стабильную прибыль в реальных сделках.
/*backtest
start: 2025-02-13 00:00:00
end: 2025-02-19 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Bollinger Bands + Stochastic Oscillator + ATR Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Bollinger Bands Parameters
bb_length = 20
bb_mult = 2.0
basis = ta.sma(close, bb_length)
dev = bb_mult * ta.stdev(close, bb_length)
upper_bb = basis + dev
lower_bb = basis - dev
// Stochastic Oscillator Parameters
stoch_length = 14
k_smooth = 3
d_smooth = 3
stoch_k = ta.sma(ta.stoch(close, high, low, stoch_length), k_smooth)
stoch_d = ta.sma(stoch_k, d_smooth)
// ATR Parameters
atr_length = 14
atr_mult = 1.5
atr = ta.atr(atr_length)
// ATR Threshold based on ATR Moving Average
atr_ma = ta.sma(atr, atr_length)
atr_threshold = atr_ma * atr_mult
// Plot Bollinger Bands
plot(basis, color=color.blue, title="BB Basis")
p1 = plot(upper_bb, color=color.red, title="Upper BB")
p2 = plot(lower_bb, color=color.green, title="Lower BB")
fill(p1, p2, color=color.rgb(173, 216, 230, 90), title="BB Fill")
// Plot Stochastic Oscillator
hline(80, "Overbought", color=color.orange)
hline(20, "Oversold", color=color.orange)
plot(stoch_k, color=color.purple, title="%K")
plot(stoch_d, color=color.orange, title="%D")
// Plot ATR and ATR Threshold for Visualization
hline(0, "ATR Zero Line", color=color.gray, linestyle=hline.style_dotted)
plot(atr, title="ATR", color=color.blue)
plot(atr_threshold, title="ATR Threshold", color=color.gray, style=plot.style_stepline)
// Buy Condition:
// - Price closes below the lower Bollinger Band
// - Stochastic %K crosses above %D in oversold region
// - ATR is above the ATR threshold
buyCondition = close < lower_bb and ta.crossover(stoch_k, stoch_d) and stoch_k < 20 and atr > atr_threshold
// Sell Condition:
// - Price closes above the upper Bollinger Band
// - Stochastic %K crosses below %D in overbought region
// - ATR is above the ATR threshold
sellCondition = close > upper_bb and ta.crossunder(stoch_k, stoch_d) and stoch_k > 80 and atr > atr_threshold
// Plot Buy/Sell Signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Execute Trades
if (buyCondition)
strategy.entry("Long", strategy.long)
if (sellCondition)
strategy.close("Long")
// Optional: Add Stop Loss and Take Profit
// Stop Loss at ATR-based distance
stop_level = close - atr_mult * atr
take_level = close + atr_mult * atr
if (buyCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", stop=stop_level, limit=take_level)