Стратегия бычьей суинг-трейдинга на основе полос Боллинджера и RSI

Автор:Чао Чжан, Дата: 2024-03-11 11:51:22
Тэги:

img

Обзор

Эта стратегия использует два технических индикатора, полосы Боллинджера и индекс относительной силы (RSI), для бычьей свинг-трейдинга в восходящих тенденциях. Логика стратегии проста, но эффективна: открыть длинную позицию, когда цена проходит ниже нижней полосы Боллинджера, и RSI ниже 35, и закрыть позицию, когда RSI пересекает выше 69.

Принципы стратегии

  1. Расчет RSI: Используйте относительный скользящий средний (RMA) для расчета средней величины роста и падения цен отдельно, затем делите величину увеличения на общую величину, чтобы получить RSI. RSI отражает силу движения цен в течение определенного периода времени.

  2. Вычислить полосы Боллинджера: Используйте простую скользящую среднюю (SMA) для расчета средней линии цены, затем сложите и вычтите стандартные отклонения, чтобы получить верхние и нижние полосы.

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

  4. Закрытие длинной позиции: когда RSI превышает 69, он считается перекупленным, и длинная позиция закрывается для получения прибыли.

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

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

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

  2. RSI может интуитивно отражать баланс между бычьими и медвежьими силами и также является относительно объективным.

  3. При использовании в восходящих тенденциях он более подходит для свинг-трейдинга. Захватывая ценовые отскоки с нижней полосой Боллинджера и низким RSI и своевременно закрывая позиции с высоким RSI, он может эффективно улавливать краткосрочные движения рынка.

  4. Установка "приобрести прибыль" и "остановить убыток" позволяет контролировать риск стратегии.Инвесторы могут гибко устанавливать параметры в соответствии со своими предпочтениями риска.

  5. Логика и код стратегии относительно просты, легко понять и реализовать, а результаты бэкстеста относительно стабильны.

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

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

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

  3. Выбор параметров Bollinger Band и RSI оказывает значительное влияние на эффективность стратегии, и на разных рынках и инструментах могут потребоваться разные параметры.

  4. В случае неожиданных событий или аномальных рыночных условий полосы Боллинджера и RSI могут стать неэффективными.

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

  1. Подумайте о введении других технических индикаторов, таких как скользящие средние для фильтрации.

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

  3. На основе обратного тестирования проводить тестирование на будущее и правильную моделированную торговлю, чтобы полностью подтвердить эффективность и стабильность стратегии до реальной торговли.

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

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

Резюме

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


/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#8E1599)
band1 = hline(69, "Upper Band", color=#C0C0C0)
band0 = hline(31, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")

length_bb = input(20,title="BB Length", minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
basis = sma(src, length_bb)
dev = mult * stdev(src, length_bb)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)


Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false)
Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false)

long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100
// Take profit/stop loss
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)

entry_long = rsi < 35.58 and src < lower
exit_long = rsi > 69
 
plotshape(entry_long, style=shape.labelup, color=color.green,  location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER")
plotshape(exit_long, style=shape.labeldown, color=color.red,  location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER")

strategy.entry("Long",true,when=entry_long)    
strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level)
strategy.close("Long", when=exit_long, comment="Exit")
plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red)
plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)


Больше