
Стратегия представляет собой систему отслеживания трендов, основанную на перекрестных сигналах MACD и RSI, и анализирует рыночные колебания в сочетании с бринговыми полосами. Основная цель стратегии заключается в том, чтобы улавливать переломные моменты в тренде с помощью сочетания зоны перекупа MACD с зоной перекупа RSI, а также использовать бринги для подтверждения диапазона колебаний цены, что обеспечивает более устойчивый торговый сигнал.
Стратегия использует три механизма фильтрации по техническим показателям:
Входные условия требуют MACD-форекс и RSI в низких пределах (< 50), что указывает на то, что рынок может начать отскок из зоны перепродажи. Условия выхода требуют MACD и RSI на высоком уровне ((> 50), что указывает на ослабление подъемной энергии и возможное начало обратного курса.
Стратегия, используя комбинацию MACD, RSI и Brin Belt, создает относительно полную торговую систему для отслеживания тенденций. Стратегия имеет хорошую теоретическую основу и практическую осуществимость, но все еще требует оптимизации параметров и улучшения управления рисками в соответствии с конкретными рыночными характеристиками. С помощью предлагаемой направленности оптимизации стратегия может получить лучшую стабильность и рентабельность.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD, RSI, Bollinger Bands Strategy", overlay=true)
// Input parameters for MACD
fastLength = input.int(12, title="MACD Fast Length")
slowLength = input.int(26, title="MACD Slow Length")
signalLength = input.int(9, title="MACD Signal Length")
// Input parameters for RSI
rsiLength = input.int(14, title="RSI Length")
// Input parameters for Bollinger Bands
bbLength = input.int(20, title="Bollinger Band Length")
bbMult = input.float(2.0, title="Bollinger Band Multiplier")
// MACD calculation
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
macdCrossUp = ta.crossover(macdLine, signalLine)
macdCrossDown = ta.crossunder(macdLine, signalLine)
// RSI calculation
rsi = ta.rsi(close, rsiLength)
// Bollinger Bands calculation
bbBasis = ta.sma(close, bbLength)
bbUpper = bbBasis + bbMult * ta.stdev(close, bbLength)
bbLower = bbBasis - bbMult * ta.stdev(close, bbLength)
// Plot Bollinger Bands
plot(bbBasis, color=color.blue, title="Bollinger Band Basis")
plot(bbUpper, color=color.green, title="Upper Bollinger Band")
plot(bbLower, color=color.red, title="Lower Bollinger Band")
// Entry condition: MACD crosses signal line from below and RSI < 50
enterLong = macdCrossUp and rsi < 50
// Exit condition: MACD crosses signal line from above and close touches the Bollinger Band middle line
exitLong = macdCrossDown and rsi> 50
// Strategy logic
if (enterLong and strategy.position_size == 0)
strategy.entry("Buy", strategy.long)
if (exitLong and strategy.position_size > 0)
strategy.close("Buy")