SPY RSI Stochastics Crossover Reversing Trend Strategy


Дата создания: 2024-02-23 14:38:49 Последнее изменение: 2024-02-23 14:38:49
Копировать: 0 Количество просмотров: 647
1
Подписаться
1617
Подписчики

SPY RSI Stochastics Crossover Reversing Trend Strategy

Обзор

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

Стратегический принцип

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

  1. Медленная линия RSI (Slow RSI): линия RSI с параметрами, установленными на 64 коренных циклах
  2. Быстрая линия RSI (Fast RSI): линия RSI с параметрами, установленными на 9 коренных циклов
  3. RSI MA-линия: простая скользящая средняя с тремя корнями на быстрой RSI-линии
  4. RSI на границе перекупа: параметр установлен на 83
  5. RSI Предельный предел: параметр 25
  6. RSI Нейтральная зона: от 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 является то, что она может улавливать тренд до того, как произойдет более заметное обратное движение цены. С помощью быстрого и медленного перекрестного движения RSI она может заранее посылать торговые сигналы и создавать возможности для входа. Кроме того, эта стратегия имеет следующие преимущества:

  1. Правила генерации стратегических сигналов четкие, легко понятные и отслеживаемые
  2. Использование двойных фильтров позволяет снизить часть шума
  3. Гибкость в установке перепродажи и перекупки для различных рыночных условий
  4. Умение отслеживать тенденции и ловить обратные

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

Анализ стратегических рисков

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

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

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

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

Направление оптимизации стратегии

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

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

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

Подвести итог

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

Исходный код стратегии
/*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)