Продвинутая стратегия торговли индикатором RSI

Автор:Чао Чжан, Дата: 2024-02-06 11:47:59
Тэги:

img

Обзор

Стратегия торговли S&P500 Advanced RSI Indicator - это средне- и долгосрочная стратегия торговли индексом S&P500. Эта стратегия сочетает в себе несколько фильтров с сигналами перекупления и перепродажи RSI для контроля риска и снижения ложных сигналов.

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

Основным показателем этой стратегии является RSI, использующий 2 периода RSI для определения уровня перекупленности и перепродажи цен. Он длится, когда RSI опускается ниже линии перепродажи и закрывает позицию, когда RSI поднимается выше линии перекупленности. Кроме того, стратегия имеет ряд вспомогательных фильтров для контроля риска:

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

  2. Фильтр MA: требует, чтобы цена была выше определенного периода MA, чтобы обеспечить выход после начала восходящего тренда.

  3. Вторичный фильтр RSI: требует, чтобы вторичный индикатор RSI также упал ниже линии перепроданности, чтобы избежать ложных прорывов.

  4. ATR Breakout Filter: избегает долгого времени после резкого падения цен для контроля риска.

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

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

Стратегия S&P500 Advanced RSI Indicator Trading имеет следующие преимущества:

  1. Объединение нескольких вспомогательных показателей уменьшает ложные сигналы и повышает надежность.

  2. Фильтр ATR контролирует риск, избегая покупки после падения цены.

  3. Еженедельный фильтр RSI предотвращает чрезмерно агрессивные длинные позиции на бычьем рынке.

  4. Фильтр MA обеспечивает вход после начала восходящего тренда.

  5. Вторичный фильтр RSI избегает ложных прорывов RSI.

  6. Подходит для среднесрочного и долгосрочного хранения и избегает переоценки.

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

Основные риски этой стратегии исходят из следующих аспектов:

  1. RSI как основной показатель немного отстает.

  2. Условия фильтрации могут быть слишком строгими и упускать возможности.

  3. Стоп-потеря может быть снята во время флэш-катастрофы.

  4. Простые RSI и фильтры имеют ограниченные возможности в сложных рыночных условиях.

Соответствующие смягчения:

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

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

  3. Умеренно смягчить условия фильтра для увеличения частоты торговли.

  4. Подумайте о сочетании большего количества показателей для сложного анализа рынка.

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

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

  1. Испытать корректировку параметров RSI для поиска оптимальных линий перекупленности/перепродажи.

  2. Испытать параметры периода MA для определения оптимальных значений.

  3. Испытание настройки параметров ATR для оптимизации фильтров ценового прорыва.

  4. Попробуйте комбинировать другие показатели для лучшего анализа сложных рынков.

  5. Оптимизируйте еженедельные параметры RSI для поиска оптимальных настроек.

  6. Оптимизировать вторичные параметры RSI, включая периоды и линии с перекупленными/перепроданными показателями.

Заключение

S&P500 Advanced RSI Indicator Trading Strategy определяет средне- и долгосрочные точки обратного тренда с использованием RSI и нескольких условий фильтрации для контроля риска. Он эффективно использует сильные стороны RSI для блокировки средне- и долгосрочных тенденций и избежания переоценки. По мере того как параметры продолжают оптимизироваться, эффективность стратегии может продолжать улучшаться. В целом он подходит для средне- и долгосрочных инвестиций в стоимость и является относительно стабильной количественной стратегией.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Lets connect on LinkedIn (https://www.linkedin.com/in/lets-grow-with-quality/)
// Optimized for S&P500 Daily. Use it as a buy confirmation on certain levels (Springs, Pullbacks, ...) or let it run 
// without "Weekly RSI Filter" and pyramiding for 4 x more trades.
// This strategy is optimized for minimum drawdowns and has several filters on board for use on different securities

strategy("S&P500 RSI2 Studio", overlay=true)

baseLength = input(2, title="Base RSI Length")
overSold = input(10, title="Overbought Level")
overBought = input(90, title="Oversold Level")
overBoughtExit = input(70, title="Overbought Level Exit")
enableWeeklyRsiFilter = input(true, title="Enable Weekly RSI Filter")
weeklyOverSold = input(30, title="Weekly Oversold Level")
weeklyOverBought = input(70, title="Weekly OverOverbought Level")
weeklyRsiLength = input(2, title="weeklyRsiLength")

enableWmaFilter = input(false, title="Enable MA Filter")
wmaLength = input(100, title="WMA Length")

exitRsiLength = input(4, title="Exit RSI Length")
dailyRsiLength = input(4, title="Daily RSI Length")

enable2ndRSIFilter = input(false, title="Enable 2nd RSI Filter")
SecRSIFilterLengh = input(14, title="2nd RSI Filter Length")
SecRSIFilterOverSold = input(20, title="2nd RSI Filter Oversold Level")

enableAtrFilter = input(true, title="Enable ATR Filter")
numAtrDays = input(14, title="Number of Days ATR Average")
atrFilterFactor = input(2, title="ATR Filter Factor")

weeklyRsi = request.security(syminfo.tickerid, "W", ta.wma(ta.rsi(close, weeklyRsiLength), 1))
exitRsi = request.security(syminfo.tickerid, "D", ta.wma(ta.rsi(close, exitRsiLength), 2))
dailyRsi = request.security(syminfo.tickerid, "D", ta.wma(ta.rsi(close, dailyRsiLength), 2))
price = close

priceDropCondition = ta.atr(1) >= ta.atr(numAtrDays) * atrFilterFactor
preventEarlyEntry = not priceDropCondition

vrsi = ta.wma(ta.rsi(price, baseLength), 2)
wma = ta.wma(price, wmaLength)


buyCond1 = ta.crossunder(vrsi, overSold)
buyCond2 = enableWeeklyRsiFilter ? weeklyRsi < weeklyOverSold : true
buyCond3 = enable2ndRSIFilter ? ta.wma(ta.rsi(close, SecRSIFilterLengh),2) < SecRSIFilterOverSold : true
buyCond4 = enableWmaFilter ? price > ta.wma(close, wmaLength) : true
buyCond5 = enableAtrFilter ? preventEarlyEntry : true
 
buy = buyCond1 and buyCond2 and buyCond3 and buyCond4 and buyCond5

if (not na(vrsi))
    if buy 
        strategy.entry("RSI2 Studio", strategy.long, comment="Long")

if (exitRsi > overBoughtExit)
    strategy.close("RSI2 Studio", comment="Close Long")

Больше