Эта стратегия объединяет индикаторы MACD и RSI для определения направления тренда и уровня перекупленности/перепродажи для трендовой торговли.
Главная логика:
Вычислить линию MACD и линию сигнала (EMA MACD)
Дельта - это их разница, выражающая изменение динамики цен.
RSI для оценки условий перекупления/перепродажи
Пройти длинный курс, когда Delta пересекает линию нуля и RSI перекуплен (дефолт 70)
Пройти короткий курс, когда Delta пересекает ниже нулевой линии и RSI перепродан (по умолчанию 30)
MACD для направления импульса, RSI для перекупленного/проданного - комбинация фильтрует многие ложные сигналы.
Объединяет два индикатора для фильтрованных сигналов
MACD измеряет импульс, RSI измеряет перекупленность/продажи
Конфигурируемые параметры для различных рынков
Ясное обоснование стратегии торговли трендом
Ограниченная эффективность комбинированного использования одного показателя
Стойкость сборов не превышает 1%.
Не учитывает размеров позиций
Уменьшение последствий:
Проверить другие показатели, найти оптимальные комбинации
Добавьте отставание или жесткую остановку потери
Размер позиции на основе размера счета или волатильности
Проверка MACD с другими комбинациями индикаторов
Оптимизировать параметры стабильности
Профильтруйте сигналы по тренду, чтобы избежать ложных прорывов
Использование стоп-лосса для защиты прибыли
ML для оценки качества сигнала
Эта стратегия сочетает в себе MACD и RSI для определения твердого тренда. Стабильность может быть улучшена посредством оптимизации параметров, стоп-лосса, интеллектуальных фильтров и т. Д. Она обеспечивает эффективную структуру торговли трендом для дальнейших улучшений.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("MACD RSI Strategy", overlay=true) fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD // RSI length_rsi = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = rsi(price, length_rsi) // if (not na(vrsi)) if (crossover(delta, 0) and crossover(vrsi, overBought )) strategy.entry("MacdLE", strategy.long, comment="LE") if (crossunder(delta, 0) and crossunder(vrsi, overSold)) strategy.entry("MacdSE", strategy.short, comment="SE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)