
Эта стратегия сочетает в себе инструменты технического анализа, такие как движущаяся средняя (MA), относительно сильный индекс (RSI) и средняя реальная волна (ATR), чтобы поймать трендовые возможности на рынке. Стратегия определяет направление тенденции с помощью перекрестков двойных равновесных линий и использует индикатор RSI для фильтрации динамики торговых сигналов, используя ATR в качестве основы для сдерживания убытков, чтобы контролировать риск.
В основе этой стратегии лежит использование пересечения движущихся средних двух различных циклов (быстрой и медленной линий) для определения рыночных тенденций. Когда быстрая линия пересекает медленную линию, указывающую на повышение, стратегия будет генерировать многосигналы; наоборот, когда быстрая линия пересекает медленную линию, указывающую на снижение, стратегия будет генерировать пустые сигналы.
Чтобы повысить надежность торговых сигналов, в стратегии внедрены показатели RSI в качестве фильтра динамики. Открытие позиции допускается только тогда, когда RSI выше определенного порога (например, 50), а открытие позиции допускается только тогда, когда RSI ниже этого порога. Это позволяет избежать торговли в криптовалютном рынке или при недостаточной динамике, повышая качество сигнала.
Кроме того, стратегия использует ATR в качестве основы для остановки, динамически корректируя свои остановки в зависимости от колебаний цен в течение последнего периода времени, чтобы адаптироваться к различным состояниям рынка. Такой адаптивный способ остановки позволяет быстро останавливать и контролировать отступление при неопределенности тренда; предоставляет больше возможностей для получения прибыли при сильной тенденции и повышает стратегическую прибыль.
Эта стратегия лучше контролирует риски, используя органическое сочетание трендового отслеживания и динамического фильтра, одновременно захватывая рыночные трендовые возможности. Логика стратегии ясна, ее легко реализовать и оптимизировать. Однако в практическом применении все еще необходимо обращать внимание на риски и параметры риска в условиях рыночных колебаний и гибко адаптировать и оптимизировать стратегию в соответствии с рыночными особенностями и собственными потребностями.
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend-Following Strategy with MACD and RSI Filter", overlay=true)
// Input variables
fastLength = input(12, title="Fast MA Length")
slowLength = input(26, title="Slow MA Length")
signalLength = input(9, title="Signal Line Length")
stopLossPct = input(1.0, title="Stop Loss %") / 100
rsiLength = input(14, title="RSI Length")
rsiThreshold = input(50, title="RSI Threshold")
// Moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)
// MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
// RSI
rsi = ta.rsi(close, rsiLength)
// Entry conditions with RSI filter
bullishSignal = ta.crossover(macdLine, signalLine) and rsi > rsiThreshold
bearishSignal = ta.crossunder(macdLine, signalLine) and rsi < rsiThreshold
// Calculate stop loss levels
longStopLoss = ta.highest(close, 10)[1] * (1 - stopLossPct)
shortStopLoss = ta.lowest(close, 10)[1] * (1 + stopLossPct)
// Execute trades
strategy.entry("Long", strategy.long, when=bullishSignal)
strategy.entry("Short", strategy.short, when=bearishSignal)
strategy.exit("Exit Long", "Long", stop=longStopLoss)
strategy.exit("Exit Short", "Short", stop=shortStopLoss)
// Plotting signals
plotshape(bullishSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Bullish Signal")
plotshape(bearishSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Bearish Signal")
// Plot MACD
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
// Plot RSI
hline(rsiThreshold, "RSI Threshold", color=color.gray)
plot(rsi, color=color.purple, title="RSI")