Эта стратегия сочетает в себе стратегию переворота ключевой точки с индикатором относительного показателя силы (RSI), чтобы обнаружить потенциальные возможности переворота тренда на ключевых уровнях путем проверки сигналов RSI.
Стратегия сначала рассчитывает ключевые уровни поддержки и сопротивления, глядя слева и направо по ряду баров, чтобы найти самый высокий высокий и самый низкий низкий поворот. Когда устанавливается поворотный уровень, он дополнительно проверяет, соответствует ли RSI условиям перекупления или перепродажи. В частности, если RSI ниже линии перепродажи при сопротивлении, он считается перепроданным для длинного входа. Если RSI выше линии перепродажи при поддержке, он считается перекупленным для короткого входа. Это позволяет использовать фильтр RSI для выявления ложных прорывов и лучшего времени входа в точки переворота тренда.
Подробности кодов следующие:
Основными преимуществами этой стратегии являются:
Подтверждение тренда: RSI фильтрует ложные прорывы и избегает ошибочных записей во время временных спадов.
Контроль рисков: стопы размещаются рядом с ключевыми поддержками и сопротивлениями для лучшего управления рисками.
Универсальность: применима к различным продуктам и временным рамкам.
Простота: минимальные показатели и параметры для легкой реализации.
Эффективность данных: нужны только данные OHLC и не чувствительны к качеству данных.
Потенциальными рисками являются:
Риск неудачи поворота: ключевые уровни могут быть нарушены во время огромных колебаний на рынке, что вызывает неудачу стратегии. Это может быть смягчено путем корректировки периодов обратного отсчета для расширения диапазонов поворота.
Риск дивергенции RSI: RSI может дивергировать и становиться неэффективным для перекупленности / перепродажи на нестабильных рынках. Параметры RSI могут быть настроены и добавлены дополнительные фильтры для проверки сигналов RSI.
Риск остановки потери: остановки могут быть сделаны во время сильных тенденций, которые приводят к увеличению потерь.
Риск вывода: стратегия выполняется на каждом тике и может столкнуться с выводом при неблагоприятных перепадах.
Стратегия может быть улучшена в нескольких аспектах:
Оптимизируйте расчет поворота, тестируя различные периоды обратного отсчета слева/справа и добавляя фильтры для повышения точности.
Оптимизировать параметры RSI для лучшего обнаружения перекупленности/перепроданности.
Добавьте дополнительные фильтры, чтобы избежать сбоев на нестабильных рынках, таких как индикаторы волатильности.
Оптимизируйте остановки, чтобы сбалансировать прибыль и риски.
Для определения диапазонов стоп-потери используют статистические остановки, основанные на анализе исторических данных.
Добавьте подтверждение с несколькими временными рамками для улучшения показателя выигрыша с использованием нескольких периодов.
Стратегия Go With The Trend RSI сочетает в себе ключевые точки и RSI для выявления потенциальных поворотных точек тренда и поиска оптимальных входов. По сравнению с использованием отдельных методов, таких как пиво или RSI в одиночку, эта стратегия улучшает надежность и последовательность. Дальнейшие оптимизации параметров и фильтров могут повысить показатель выигрыша и корректированную по риску доходность.
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-07 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Pivot Point Reversal + RSI Strategy", shorttitle = 'PP + RSI Strategy', overlay=true) //////////// // Inputs // leftBars = input(3, title = 'PP - Left Bars') rightBars = input(3, title = 'PP - Right Bars') rsi_length = input(14, title = "RSI - Length") rsi_long = input(70, title = "RSI - Overbought level") rsi_short = input(30, title = "RSI - Overold level") ////////////////// // Calculations // // Pivot Points swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) // Pivot High swh_cond = not na(swh) hprice = 0.0 hprice := swh_cond ? swh : hprice[1] le = false le := swh_cond ? true : (le[1] and high > hprice ? false : le[1]) // Pivot Low swl_cond = not na(swl) lprice = 0.0 lprice := swl_cond ? swl : lprice[1] se = false se := swl_cond ? true : (se[1] and low < lprice ? false : se[1]) // RSI rsi = rsi(close, 14) ////////////// // STRATEGY // if (le and rsi[rightBars] < rsi_long ) strategy.entry("PivRevLE", strategy.long, comment = "PivRSI Long", stop = hprice + syminfo.mintick) if (se and rsi[rightBars] > rsi_short) strategy.entry("PivRevSE", strategy.short, comment = "PivRSI Short", stop = lprice - syminfo.mintick)