Стратегия отмены тренда по РСИ

Автор:Чао Чжан, Дата: 2023-10-23 17:04:13
Тэги:

img

Обзор

Стратегия обратного тренда RSI использует сигналы обратного тренда индикатора RSI для выявления потенциальных точек обратного тренда и вхождения в длинные или короткие сделки.

Логика стратегии

Эта стратегия основана на сочетании сигналов отмены РСИ и сигналов отмены цены, в основном включая четыре ситуации:

  1. Регулярное бычье изменение: когда RSI формирует более низкий минимум (что означает, что тенденция RSI изменяется сверху вниз) и цена формирует более низкий минимум (что означает, что тенденция цены изменяется сверху вниз), генерируется регулярный бычий сигнал.

  2. Скрытое бычье изменение: когда RSI формирует более низкий минимум (что означает, что тенденция RSI продолжается сверху вниз), но цена формирует более низкий минимум (что означает, что тенденция цены изменяется сверху вниз), генерируется скрытый бычий сигнал.

  3. Регулярное медвежье изменение: когда RSI формирует более низкий максимум (что означает, что тенденция RSI изменяется с нижнего на верхний уровень) и цена формирует более высокий максимум (что означает, что тенденция цены изменяется с верхнего на нижний уровень), генерируется регулярный медвежье изменение сигнала.

  4. Скрытый медвежий обрат: когда RSI образует более высокий максимум (что означает, что тенденция RSI продолжается с низкого на верхний), но цена образует более низкий максимум (что означает, что тенденция цены обращается с высокого на низкий), генерируется скрытый медвежий обратный сигнал.

Это сочетает в себе как сигналы отклонения RSI, так и сигналы отклонения цены, чтобы генерировать торговые сигналы, избегая ложных сигналов, опирающихся только на RSI или отклонения цены, что делает стратегию более надежной.

Анализ преимуществ

Стратегия RSI Trend Reversal имеет следующие преимущества:

  1. Сочетание RSI и переворота цены отфильтровывает многие ложные сигналы переворота и улучшает качество сигнала.

  2. Идентификация скрытых бычьих и медвежьих моделей, которые часто предшествуют мощным ценовым тенденциям, позволяет войти на рынок раньше.

  3. Настраиваемые параметры RSI и периоды обратной связи могут быть настроены для разных рынков, что обеспечивает гибкость.

  4. Визуализация моделей и сигналов индикаторов дает интуитивное суждение о состоянии рынка.

  5. Простая и понятная логика стратегии позволяет легко понять и реализовать для торговли алгоритмами.

Анализ рисков

Стратегия RSI Trend Reversal также имеет следующие риски:

  1. Показатели являются статистическими показателями цены и не могут быть полностью обоснованы.

  2. Скрытые бычьи и медвежие модели трудно определить, и возможности могут быть упущены без опыта.

  3. Неправильные настройки периодов обратного отсчета могут привести к отсутствию переломных точек или отставанию в вынесении решений.

  4. Следует применять стратегии стоп-лосса, чтобы избежать увеличения потерь после медленного переворота.

Риски можно управлять путем оптимизации параметров, строгого стоп-лосса, осторожного принятия скрытых сигналов обворота и т.д.

Руководство по оптимизации

Стратегия RSI Trend Reversal может быть оптимизирована в следующих аспектах:

  1. Корректировать параметры RSI и чувствительность испытания для определения оптимального периода RSI для разных рынков.

  2. Оптимизируйте параметры периода обратного просмотра, чтобы сбалансировать раннее обнаружение отклонений и предотвращение ложных сигналов.

  3. Добавьте анализ объема, например, обнаружение высокого объема разворота, вызывающего перелом цен.

  4. Комбинируйте другие индикаторы, такие как MACD, полосы Боллинджера, чтобы улучшить точность суждения.

  5. Добавьте стратегии стоп-лосса, чтобы ограничить размер потери.

  6. Усовершенствовать логику стратегии на основе результатов обратных тестов для улучшения факторов прибыли.

Резюме

Стратегия RSI Trend Reversal идентифицирует потенциальные поворотные моменты тренда путем сочетания реверсий RSI и переворотов цен. Она хорошо использует способность RSI оценивать тренд, фильтруя ложные сигналы с информацией о цене. Стратегия имеет простую и четкую логику, которую легко реализовать. Параметры и стоп-лосс могут быть оптимизированы для управления рисками и дальнейшего улучшения производительности. В целом, стратегия RSI Trend Reversal является надежной и практичной краткосрочной торговой стратегией.


/*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)

Больше