Эта стратегия сочетает в себе стратегию поворота ключевой поддержки сопротивления и относительно сильного индикатора (RSI), чтобы проверить сигналы RSI, когда формируется поддержка сопротивления, чтобы найти потенциальные возможности для перехода.
Стратегия сначала рассчитывает ключевые уровни поддержки и сопротивления, то есть получает наивысшую цену на поддержку и наименьшую цену на сопротивление, просматривая несколько K-линий с левой и левой стороны. При формировании резистентного уровня поддержки, дополнительно проверяется, соответствует ли значение показателя RSI условиям перекупа и перепродажи. В частности, если RSI ниже линии перепродажи в момент сопротивления, считается, что он находится в состоянии перепродажи, можно сделать больше; если RSI выше линии перекупа в момент поддержки, считается, что он находится в состоянии перекупа, можно сделать пустой.
Детали кода следующие:
Основные преимущества этой стратегии:
Проверка тренда: RSI может отфильтровывать ложные прорывы, чтобы избежать ошибочного входа во временную коррекцию
Контроль риска: установка стоп-лосса вблизи ключевого сопротивления поддержки, полезная для контроля риска
Универсальность: подходит для разных сортов и временных периодов
Простая реализация: меньше параметров и параметров, легкая реализация
Низкие требования к данным: требуется только OHLC, низкие требования к качеству данных
Также существуют следующие риски:
Риск неудачи уровня сопротивления поддержки: при резких изменениях рынка первоначальная поддерживающая сопротивление может быть преодолена, что приводит к неудаче стратегии. Этот риск можно уменьшить, скорректировав параметры, чтобы расширить диапазон уровня сопротивления поддержки.
Риск распространения RSI: в шокирующих ситуациях RSI может быть распространен, а перекуп и перепродажа признаны недействительными. Можно соответствующим образом скорректировать параметры RSI или добавить дополнительные условия для проверки сигнала RSI.
Стоп-убытки подвержены риску: в течение тренда стоп-убытки могут быть преодолены, что приводит к увеличению убытков. Стоп-убытки могут быть расслаблены, но необходимо балансировать между прибылью от тренда и контролем риска.
Риск отступления: стратегия выполняется по крупицам, и в случае неудачного поворота тренда может произойти определенное отступление. Отступление можно контролировать с помощью управления рисками.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация параметров вычисления стойки сопротивления поддержки, улучшение точности позиционирования. Можно тестировать различные лево-правовые показатели или добавлять условные фильтры и т. д.
Оптимизация параметров RSI, улучшение точности определения перекупа и перепродажи. Можно тестировать разные длины RSI, а также местоположение линии перекупа и перепродажи.
Добавление дополнительных условий для проверки, чтобы избежать покрытия при шокирующих ситуациях. Например, в сочетании с показателями волатильности и т. д.
Оптимизация стратегии стоп-стоп для достижения баланса между стремлением к прибыли и контролем риска. Можно ввести динамические стоп-модели, такие как trailing stop.
Введение стоп-ложа, основанного на статистическом анализе, с определением пределов стоп-ложа путем расчета по историческим данным.
Проверка в сочетании с несколькими временными циклами повышает коэффициент успешности.
Эта последовательность использует в совокупности с 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)