Эта стратегия является трендовой после бычьей стратегии, которая использует индикатор RSI для определения тренда и индикатор MACD для входа на рынок.
Стратегия в основном опирается на индикатор RSI для определения направления тренда. Когда RSI пересекает установленную длинную линию (по умолчанию 21), считается, что рынок может перейти в восходящий тренд. В это время, если MACD уже находится в нисходящем тренде, можно судить, что он находится в точке перехода, что является хорошей возможностью для длинного хода.
Кроме того, стратегия также вводит линию EMA (по умолчанию 200 периодов) в качестве фильтра тренда. Только тогда, когда цена выше линии EMA, будет рассматриваться длинная торговля. Это может эффективно фильтровать поддельные перевороты, когда тенденция неясна или снижается.
На стороне стоп-лосса стратегия также устанавливает регулярную линию стоп-лосса и линию экстренного стоп-лосса. Когда RSI пересекается ниже регулярной линии стоп-лосса (по умолчанию 86), закрыть позицию; если цена резко падает и RSI пересекается ниже линии экстренного стоп-лосса (по умолчанию 73), закрыть позицию безоговорочно, чтобы контролировать максимальную потерю.
В целом, эта стратегия является относительно традиционной тенденцией, следующей за бычьей стратегией. Она идентифицирует точки переворота с помощью RSI, фильтрует ошибочные оценки с помощью MACD, определяет основные тенденции с помощью EMA и контролирует риски с помощью стоп-лосса. Стратегия довольно проста и интуитивно понятна и имеет некоторое преимущество в оценке переворотов рынка, что делает ее хорошей отправной точкой для стратегии торговли альго. Но все еще есть большое пространство для дальнейших улучшений путем оптимизации сигналов входа, судей тренда и механизмов стоп-лосса.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dravitch //@version=4 strategy("RSI - BULL RUN (Improved)", overlay=true) // Input UseEmergency = input(true, "Use Emergency Exit?") RSIlong = input(21, "RSI Long Cross") RSIcloseLong = input(86, "RSI Close Long Position") EmergencycloseLong = input(73, "RSI Emergency Close Long Position") UseEMAFilter = input(true, "Use EMA Trend Filter") EMAlength = input(200, "EMA Length for Trend Filter") // Utiliser 200 pour SMMA // RSI rsiValue = rsi(close, 14) // MACD [macdLine, signalLine, _] = macd(close, 12, 26, 9) // EMA Trend Filter emaTrend = sma(close, EMAlength) // Utiliser sma pour la SMMA (Simple Moving Average) // Conditions pour les trades longs trendUp = close > emaTrend trendDown = close < emaTrend longCondition = crossover(rsiValue, RSIlong) and trendDown or crossunder(macdLine, signalLine) and crossover(rsiValue, RSIlong) longCloseCondition = crossunder(rsiValue, RSIcloseLong) and trendUp emergencyLongCondition = crossunder(rsiValue, EmergencycloseLong) // Plots plot(rsiValue, color=color.white, linewidth=2, title="RSI") // Strategy if (longCondition) strategy.entry("Long", strategy.long, alert_message='RSI Long Cross: LONG') if (longCloseCondition) strategy.close("Long", alert_message='RSI Close Long Position') if (emergencyLongCondition and UseEmergency) strategy.close("Long", alert_message='RSI Emergency Close Long') // Plot EMA Trend Filter in a separate pane plot(emaTrend, color=color.rgb(163, 0, 122), title="EMA Trend Filter", linewidth=2, style=plot.style_line, transp=0) hline(0, "Zero Line", color=color.gray)