
Стратегия RSI Trend Reversal использует сигнал обратного тренда RSI, чтобы определить потенциальную точку обратного тренда и сделать дополнительное открытие. Эта стратегия, в сочетании с ценовым обратным движением и RSI Reversal, может эффективно отфильтровывать ложные сигналы обратного тренда.
Стратегия основана на комбинации обратных сигналов от RSI и обратных сигналов от цены, которые можно разделить на четыре основные ситуации:
Обычный многоголовый обрат: когда RSI образует более высокие низкие точки (что означает, что тенденция RSI переворачивается сверху вниз), а цены образуют более низкие низкие точки (что означает, что тенденция цен переворачивается сверху вверх), образуется обычный многоголовый обратный сигнал.
Скрытый многоголовый обрат: когда RSI формирует более низкие низкие точки (что означает, что тенденция RSI продолжается сверху вниз), но цена формирует более высокие низкие точки (что означает, что тенденция цены переворачивается снизу вверх), создается скрытый многоголовый обратный сигнал.
Регулярный полярный переход: когда RSI формирует более низкие высокие точки (что означает, что тенденция RSI переворачивается снизу вверх), а цены формируют более высокие высокие точки (что означает, что тенденция цен переворачивается вверх вниз), образуется регулярный полярный обратный сигнал.
Скрытый обратный курс: когда RSI формирует более высокие высокие точки (что означает, что тенденция RSI продолжается с нижней стороны вверх), но цены формируют более низкие высокие точки (что означает, что тенденция цены переворачивается с верхней стороны вниз), создается скрытый обратный сигнал.
Это позволяет одновременно создавать торговые сигналы в сочетании с обратным поворотом RSI и обратным поворотом цены, что позволяет эффективно избежать ложных сигналов, вызванных только RSI или только обратным поворотом цены, и повышает стабильность стратегии.
RSI имеет следующие преимущества:
В сочетании с индикатором RSI и сигналом об обратном движении цены, можно эффективно отфильтровать ложные сигналы об обратном движении и улучшить качество сигнала. Сам по себе индикатор RSI не может полностью надежно определить точку обратного движения, его необходимо совместно проверить с обратным движением цены.
Выявление скрытых многоголовых и скрытых пустых форм, которые часто предвещают предстоящие более сильные ценовые тенденции, позволяет заранее уловить возможности тренда.
RSI параметры и циклы ретроспекции могут быть настроены, могут быть адаптированы для различных рынков, гибко применяются.
Визуализация формы и сигналов индикаторов, интуитивное определение состояния рынка.
Логика стратегии проста и понятна, ее реализация легко понятна и подходит для количественной стратегии торговли.
Также существуют риски, связанные со стратегией обратного тренда RSI:
RSI-инверсия в сочетании с ценовым инверсией позволяет отфильтровать многие ложные сигналы, но не исключает возможности ошибочного суждения. Показатель, в конце концов, является статистической мерой цены, на которую нельзя полностью полагаться.
Скрытые многоголовые и скрытые пустые формы не так легко распознать, и эти возможности могут быть упущены, что требует определенного опыта.
Неправильная настройка параметров цикла просмотра может привести к пропущенным поворотным моментам или задержке суждения. Для разных рынков необходимо скорректировать параметры цикла.
Необходимо обеспечить совместное использование стратегии остановки убытков, чтобы избежать дальнейшего снижения убытков после обратного поворота.
Риск можно контролировать методами оптимизации параметров, строгого остановки, а также надлежащего управления скрытой реверсией.
RSI может быть оптимизирована в следующих аспектах:
Настройка параметров RSI для тестирования чувствительности различных рынков к параметрам RSI-циклов, чтобы найти оптимальные параметры.
Оптимизация параметров цикла обратного обзора, сбалансированная с необходимостью захвата обратных точек и предотвращения ложных сигналов.
Повышение количества сделок, например, при значительном снижении запасов, приводит к изменению цены, что отклоняется от идентификации.
Комбинируется с другими индикаторными сигналами, такими как MACD, Брин-лента и т. д., для повышения точности суждения.
Увеличение стратегии остановки убытков, чтобы избежать расширения убытков. Можно установить остановку после того, как цена пробивает новый высокий / новый низкий.
Исходя из результатов обратной проверки, изменяется логика стратегии, повышается фактор прибыли. Например, корректируется логическая связь условий открытия позиции (с, или без), ищут оптимальную стратегию торговли.
Стратегия RSI Trend Reversal используется для выявления потенциальных поворотных точек тренда, используя комбинацию RSI-индикатора и ценовых поворотных точек. Она эффективно использует способность RSI определять тренд, а также фильтрует ложные сигналы ценовой активности. Логика стратегии проста, понятна и проста в реализации.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study(title="Divergence Indicator", format=format.price)
strategy(title="RSI Divergence Indicator", overlay=false,pyramiding=1, default_qty_value=2, default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD)
len = input(title="RSI Period", minval=1, defval=5)
src = input(title="RSI Source", defval=close)
lbR = input(title="Pivot Lookback Right", defval=5)
lbL = input(title="Pivot Lookback Left", defval=5)
rangeUpper = input(title="Max of Lookback Range", defval=60)
rangeLower = input(title="Min of Lookback Range", defval=5)
plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=false)
bearColor = color.purple
bullColor = color.green
hiddenBullColor = color.new(color.green, 80)
hiddenBearColor = color.new(color.red, 80)
textColor = color.white
noneColor = color.new(color.white, 100)
osc = rsi(src, len)
plot(osc, title="RSI", linewidth=2, color=#8D1699)
hline(50, title="Middle Line", linestyle=hline.style_dotted)
obLevel = hline(70, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90)
plFound = na(pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(pivothigh(osc, lbL, lbR)) ? false : true
_inRange(cond) =>
bars = barssince(cond == true)
rangeLower <= bars and bars <= rangeUpper
//------------------------------------------------------------------------------
// Regular Bullish
// Osc: Higher Low
oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])
// Price: Lower Low
priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)
bullCond = plotBull and priceLL and oscHL and plFound
plot(
plFound ? osc[lbR] : na,
offset=-lbR,
title="Regular Bullish",
linewidth=2,
color=(bullCond ? bullColor : noneColor),
transp=0
)
plotshape(
bullCond ? osc[lbR] : na,
offset=-lbR,
title="Regular Bullish Label",
text=" Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor,
transp=0
)
//------------------------------------------------------------------------------
// Hidden Bullish
// Osc: Lower Low
oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])
// Price: Higher Low
priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)
hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound
plot(
plFound ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bullish",
linewidth=2,
color=(hiddenBullCond ? hiddenBullColor : noneColor),
transp=0
)
plotshape(
hiddenBullCond ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bullish Label",
text=" H Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor,
transp=0
)
longCondition=bullCond or hiddenBullCond
//? osc[lbR] : na
//hiddenBullCond
strategy.entry(id="RSIDivLE", long=true, when=longCondition)
//------------------------------------------------------------------------------
// Regular Bearish
// Osc: Lower High
oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])
// Price: Higher High
priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)
bearCond = plotBear and priceHH and oscLH and phFound
plot(
phFound ? osc[lbR] : na,
offset=-lbR,
title="Regular Bearish",
linewidth=2,
color=(bearCond ? bearColor : noneColor),
transp=0
)
plotshape(
bearCond ? osc[lbR] : na,
offset=-lbR,
title="Regular Bearish Label",
text=" Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor,
transp=0
)
//------------------------------------------------------------------------------
// Hidden Bearish
// Osc: Higher High
oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])
// Price: Lower High
priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)
hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound
plot(
phFound ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bearish",
linewidth=2,
color=(hiddenBearCond ? hiddenBearColor : noneColor),
transp=0
)
plotshape(
hiddenBearCond ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bearish Label",
text=" H Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor,
transp=0
)
longCloseCondition=crossover(osc,75) or bearCond
strategy.close(id="RSIDivLE", when=longCloseCondition)