Эта стратегия использует индикатор MACD для определения тренда индикатора RSI, генерируя торговые сигналы.
Стратегия основана на двух основных показателях:
РСИ Вычисляет регулярный 14-периодный RSI.
MACD показателя RSI Вычисляет значения MACD на RSI, с по умолчанию быстрым MA 12, медленным MA 26, сигнальной линией 9.
Когда MACD RSI пересекается вверх, быстро и медленно MAs золотой крест, он определяет восходящий тренд и идет долго.
Когда MACD пересекается вниз, быстро и медленно MAs мертвый перекресток, он определяет нисходящий тренд и идет короткий.
Экспоненциальные скользящие средние MACD помогают определить долгосрочную тенденцию самого RSI, что приводит к более точным сигналам.
Риски могут быть уменьшены:
Стратегия может быть улучшена из:
Испытание комбинаций параметров RSI и MACD
Добавление вторичного подтверждения при сигналах MACD
Например, паттерны свечей, объем, полосы Боллинджера и т.д.
Оптимизация остановок для остановок после
Добавление правил повторного въезда
Восстановление позиций после остановки, если тенденция продолжается
Корректировка размеров позиций по изменчивости
Малый размер при высокой волатильности, больший размер при низкой волатильности
Эта стратегия сочетает в себе индикаторы RSI и MACD для проверки друг друга для более точного и стабильного обнаружения тренда. Но параметры нуждаются в оптимизации, и для подтверждения требуются дополнительные технические фильтры или правила торговли, чтобы избежать внезапных событий. Также важны механизмы остановки потерь и динамическое размещение позиций.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "MACD of RSI", overlay = false) //////////////////////// RSI /////////////////////////// src = close, len = input(14, minval=1, title="Length") up = sma(max(change(src), 0), len) down = sma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //////////////////////// RSI ////////////////////////// //////////////// MACD //////////////////////////// sourcemacd = rsi fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(sourcemacd, fastLength) slowMA = ema(sourcemacd, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) delta=macd-signal swap1 = delta>0?green:red plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20) p1 = plot(macd,color=blue,title='MACD Line') p2 = plot(signal,color=red,title='Signal') fill(p1, p2, color=blue) hline(0) /////////////////////////MACD ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(delta,0) sellCond := crossunder(delta,0) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")