Прибыльная стратегия RSI и полос Боллинджера

Автор:Чао Чжан, Дата: 2024-01-08 11:14:31
Тэги:

img

Обзор

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

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

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

Стратегия сочетает в себе RSI для измерения настроения на рынке и полосы Боллинджера для обнаружения ценового прорыва. Торги открываются только при одновременном выполнении обоих условий. Это помогает отфильтровать ложные сигналы и улучшает эффективность стратегии.

Сильные стороны

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

Стратегия открывает сделки только тогда, когда и RSI, и BB дают сигналы одновременно. Это избегает помех от фальшивых сигналов.

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

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

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

Области улучшения

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

  1. Оптимизировать параметры RSI и BB для наилучшей комбинации

  2. Добавьте другие индикаторы в качестве сигналов фильтра, такие как MACD, KD и т. д.

  3. Добавить проверку прорыва для предотвращения ложных прорывов

  4. Корректировка параметров или прекращение торговли в зависимости от различных рыночных условий

  5. Оптимизировать стоп-лосс для динамического стоп-лосса

Заключение

Стратегия объединяет RSI и полосы Боллинджера для разработки правил торговли. Принимая сигналы только тогда, когда оба согласны, можно эффективно отфильтровать поддельные сигналы. Благодаря оптимизации параметров, добавлению фильтров сигналов, оптимизации стоп-лосса и т. Д. Эта стратегия может постоянно совершенствоваться для более стабильной прибыли.


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

//@version=5
strategy("Get Funded Easily by mjanusic", shorttitle="FTMO Crusher by mjanusic", overlay=true)

///////////// RSI
RSIlength = input(16, title="RSI Period Length")
RSIvalue = input(45, title="RSI Value Range")
RSIoverSold = 0 + RSIvalue
RSIoverBought = 100 - RSIvalue
price = close
vrsi = ta.rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(20, title="Bollinger Bands SMA Period Length")
BBmult = input(2.0, title="Bollinger Bands Standard Deviation")
BBbasis = ta.sma(price, BBlength)
BBdev = BBmult * ta.stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyCondition = ta.crossover(vrsi, RSIoverSold) and ta.crossover(source, BBlower)
sellCondition = ta.crossunder(vrsi, RSIoverBought) and ta.crossunder(source, BBupper)

///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))
    if (buyCondition)
        strategy.entry("Long Entry", strategy.long, stop=BBlower, comment="Long Entry")
    else
        strategy.cancel(id="Long Entry")

    if (sellCondition)
        strategy.entry("Short Entry", strategy.short, stop=BBupper, comment="Short Entry")
    else
        strategy.cancel(id="Short Entry")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_area)


Больше