SPY RSI Стохастическая стратегия перекрестного изменения тренда

Автор:Чао Чжан, Дата: 2024-02-23 14:38:49
Тэги:

img

Обзор

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

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

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

  1. Медленная линия RSI: линия RSI с 64 периодами
  2. Линия быстрого RSI: 9-периодная линия RSI
  3. Линия RSI MA: 3-периодическая простая скользящая средняя скоростной линии RSI
  4. RSI Превышенный порог покупки: параметр установлен на 83
  5. RSI Превышение порога продажи: параметр установлен на 25
  6. Нейтральная зона: от 39 до 61
  7. Торговые часы: с понедельника по пятницу 9:00 до 9:00 следующего дня

Когда быстрый RSI пересекает медленный RSI (золотой крест) и быстрая линия пересекает линию MA, генерируется сигнал покупки. Когда быстрый RSI пересекает ниже медленного RSI (смертельный крест) и быстрая линия пересекает ниже линии MA, генерируется сигнал продажи.

Кроме того, следующая логика настроена для фильтрации некоторых шумовых сделок:

  1. Никаких торговых сигналов, генерируемых в нейтральной зоне RSI
  2. Только торговать с понедельника по пятницу с 9:00 до 9:00 следующего дня

Есть два условия выхода после входа:

  1. Закрыть позицию, когда быстрый RSI входит в противоположный регион (перекупленный или перепроданный)
  2. Закрыть позицию при обратном перекрестном сигнале RSI

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

Самое большое преимущество стратегии SPY RSI Stochastics Crossover Reversal Trend заключается в том, что она может улавливать тренд на ранней стадии до того, как произойдут значительные переломы цен. Благодаря быстрым и медленным перекресткам линий RSI она может выпускать торговые сигналы заранее и создавать возможности для выхода на рынок. Кроме того, стратегия имеет следующие преимущества:

  1. Ясные правила генерации сигнала, легкие для понимания и отслеживания
  2. Двойные фильтры, предназначенные для уменьшения звуковых сигналов
  3. Гибкие настройки зоны перекупленности/перепроданности подходят для различных рыночных условий
  4. Сочетает в себе как следующие тенденции, так и возможности захвата обратного движения.

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

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

Несмотря на то, что стратегия перемены тренда по SPY RSI Stochastics Crossover имеет определенные преимущества, она также имеет следующие основные риски:

  1. Невозможно полностью избежать рисков от шума, несмотря на конструкцию двойного фильтра
  2. Кроссоверы RSI не идеально предсказывают фактические точки перелома, существуют некоторые трудности
  3. Требует разумных настроек параметров, в противном случае может произойти чрезмерная частота или редкость торгов
  4. Невозможно полностью избежать событий черного лебедя, приводящих к ложным выбиваниям.

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

  1. Использование алгоритмов машинного обучения для обучения оптимальных параметров и снижения шума сигналов
  2. Включение других технических показателей для повышения надежности перекрестных сигналов
  3. Добавление механизмов стоп-лосса к контролю по риску сделки
  4. Оптимизировать адаптивное обновление параметров для повышения адаптивности

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

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

  1. Оптимизация параметров: Найдите оптимальные комбинации параметров систематически с помощью методов, таких как генетические алгоритмы, поиск сетки и т. Д.
  2. Инженерия функций: включить больше факторов, влияющих на цены, таких как изменения объема, волатильность и т.д., чтобы облегчить принятие решений
  3. Машинное обучение: Критерии перекрестного обучения с алгоритмами машинного обучения для повышения точности
  4. Оптимизация потерь: внедрять задержки, временные остановки и т.д. для контроля рисков
  5. Приспосабливаемое обновление: позволяет адаптировать ключевые параметры на основе рыночных условий в реальном времени

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

Заключение

Стратегия реверсии тренда на перекрестном этапе стохастики SPY RSI разработала относительно простую и ясную систему количественной торговой стратегии, основанную на суждении о быстром и медленном перекрестке линий RSI. Объединяя как следующие тенденциям, так и обратные торговые функции, она может до некоторой степени улавливать время реверсии цены. Но стратегия также имеет некоторые врожденные недостатки, требующие оптимизации параметров, функций и моделей для контроля рисков и улучшения качества сигнала. При постоянной оптимизации она может стать стабильной прибыльной количественной системой.


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

//@version=5
strategy("SPY Auto RSI Stochastics", pyramiding = 3)


// Input parameters
slowRSILength = input(64, title="SLOW RSI Length")
fastRSILength = input(9, title="FAST RSI Length")
smaRSILength = input(3, title="RSI SMA Length")
RSIUpperThreshold = input(83, title="RSI Upper")
RSILowerThreshold = input(25, title="RSI Lower")
RSIUpperDeadzone = input(61, title='RSI Upper Deadzone')
RSILowerDeadzone = input(39, title='RSI Lower Deadzone')
blockedDays = (dayofweek(time) == 1 or dayofweek(time) == 7)
sessionMarket = input("0900-0900", title="Session Start")
allowedTimes() => time(timeframe = timeframe.period, session = sessionMarket, timezone = "GMT+1")
isvalidTradeTime =true

// RSI and ATR
slowRSI = ta.rsi(close, slowRSILength)
fastRSI = ta.rsi(close, fastRSILength)
smaRSI = ta.sma(fastRSI, smaRSILength)
rsi = fastRSI

// Entry condition
RSIUptrend() =>  ta.crossover(fastRSI, slowRSI) and ta.crossover(fastRSI, smaRSI)
RSIDowntrend() =>  ta.crossunder(fastRSI, slowRSI) and ta.crossunder(fastRSI, smaRSI)


isRSIDeadzone() =>
    rsi < RSIUpperDeadzone and rsi > RSILowerDeadzone

isBullishEngulfing() =>
    close > high[1]

isBearishEngulfing() =>
    close < low[1] 

// Declare variables
var float initialSLLong = na
var float initialTPLong = na
var float initialSLShort = na
var float initialTPShort = na
//var bool inATrade = false

entryConditionLong = RSIUptrend() and not isRSIDeadzone() and isvalidTradeTime
entryConditionShort = RSIDowntrend() and not isRSIDeadzone() and isvalidTradeTime

exitConditionLong = entryConditionShort or fastRSI > RSIUpperThreshold
exitConditionShort = entryConditionLong or fastRSI < RSILowerThreshold


if (entryConditionLong)
    strategy.entry(id = "Long", direction = strategy.long, alert_message = 'LONG! beep boop, all aboard the long train')

if (entryConditionShort)
    strategy.entry(id = "Short", direction = strategy.short, alert_message = 'Short! beep boop, all aboard the short train')

if (exitConditionLong)
    strategy.exit("Long", from_entry="Long", limit=close, alert_message = 'Stop Long, halt halt, take the profits and runnn')

if (exitConditionShort)
    strategy.exit("Short", from_entry="Short", limit=close, alert_message = 'Stop Short, halt halt, take the profits and runnn')


//plot(smaRSI, "RSI MA", color=color.red)
plot(slowRSI, "Slow RSI", color=color.green)
//plot(fastRSI, "Fast RSI", color=color.white)
plot(smaRSI, "SMA RSI", color=color.white)


Больше