Супертенд в сочетании с количественной торговой стратегией RSI

Автор:Чао Чжан, Дата: 2024-01-31 17:19:28
Тэги:

img

Обзор

Стратегия называется Dual-drive Strategy. Основная идея заключается в объединении Supertrend и RSI, которые являются двумя мощными техническими индикаторами, чтобы полностью использовать их соответствующие преимущества и достичь отличных количественных торговых результатов.

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

Ядро стратегии использует функцию Change для определения изменения направления индикатора Supertrend для генерации торговых сигналов. Он будет генерировать сигнал покупки, когда Supertrend меняется сверху вниз, и он будет генерировать сигнал продажи, когда Supertrend поворачивается сверху вверх.

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

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

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

  1. Supertrend хорошо распознает изменения тенденций рынка для точных длинных и коротких записей.

  2. RSI превосходит в определении перенапряженных поворотных точек, чтобы помочь разумному получению прибыли и остановке потерь.

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

  4. Логика стратегии проста и чиста для легкого понимания и отслеживания даже для менее опытных инвесторов.

  5. Устойчивая реализация с контролируемыми затратами и стабильной рентабельностью.

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

Несмотря на эти преимущества, есть некоторые риски с стратегией двойного привода:

  1. В случае с Supertrend и RSI могут возникать неправильные сигналы, приводящие к ненужным потерям.

  2. Двусторонняя торговля с более высокими рисками требует более строгих правил управления деньгами и контроля рисков.

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

  4. Supertrend чувствителен к параметрам, требующим корректировки для различных рынков.

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

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

  1. Добавление объема, MACD для дополнительной фильтрации сигнала и более точного ввода.

  2. Настройка динамического стоп-лосса для реагирования на рисковые события.

  3. Оптимизация параметров Supertrend и RSI для лучшего соответствия различным рынкам.

  4. Внедрение машинного обучения для выбора параметров и индикаторов.

  5. Применение производных инструментов, таких как фьючерсы и опционы для хеджирования рисков.

  6. Различные правила размещения позиций для ограничения потерь и привлечений.

Резюме

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alorse

//@version=5
strategy("Supertrend + RSI Strategy [Alose]", overlay=true )

stGroup = 'Supertrend'
atrPeriod = input(10, "ATR Length", group=stGroup)
factor = input.float(3.0, "Factor", step = 0.01, group=stGroup)

[_, direction] = ta.supertrend(factor, atrPeriod)

// RSI
rsiGroup = 'RSI'
src = input(title='Source', defval=close, group=rsiGroup)
lenRSI = input.int(14, title='Length', minval=1, group=rsiGroup)
RSI = ta.rsi(src, lenRSI)

// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
RSIoverbought = input.int(72, title='Exit Long', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses up this point.')
RSIoversold = input.int(28, title='Exit Short', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses below this point.')


entryLong = ta.change(direction) < 0
exitLong = RSI > RSIoverbought or ta.change(direction) > 0

entryShort = ta.change(direction) > 0
exitShort = RSI < RSIoversold or ta.change(direction) < 0

if showLong
    strategy.entry("Long", strategy.long, when=entryLong)
    strategy.close("Long", when=exitLong)

if showShort
    strategy.entry("Short", strategy.short, when=entryShort)
    strategy.close("Short", when=exitShort)


Больше