Болинджерские полосы и стратегия торговли RSI

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

img

Обзор

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

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

  1. Вычислить показатель RSI для измерения условий перекупления и перепродажи.
  2. Вычислить верхнюю и нижнюю полосы Боллинджера для определения ценового прорыва.
  3. Установка сигналов купли и продажи на основе RSI и полос Боллинджера:
    • Сигнал покупки генерируется, когда цена закрытия находится ниже нижней полосы Боллинджера, а RSI ниже указанного нижнего уровня.
    • Сигнал продажи генерируется, когда цена закрытия находится выше верхней полосы Боллинджера, а RSI выше указанного верхнего уровня.
  4. Ввести параметр интервала покупки для ограничения частоты последовательных покупок, что облегчит управление пирамидой позиций.

Преимущества стратегии

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

Стратегические риски

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

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

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

Резюме

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


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 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/

//@version=4
strategy(overlay=true, shorttitle="cakes'Strategy For RSI", default_qty_type = strategy.percent_of_equity, initial_capital = 100000, default_qty_value = 100, pyramiding = 0, title="cakes'Strategy", currency = 'USD')

////////// ** Inputs ** //////////

// Stoploss and Profits Inputs

v1 = input(true, title="GoTradePlz")

////////// ** Indicators ** //////////

// RSI

len = 14
src = close
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)



//  Bollinger Bands

length1 = 20
src1 = close
mult1 = 1.0
basis1 = sma(src1, length1)
dev1 = mult1 * stdev(src1, length1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1



////////// ** Triggers and Guards ** //////////


// 输入
RSILowerLevel1 = input(30, title="RSI 下限水平")
RSIUpperLevel1 = input(70, title="RSI 上限水平")

// 购买间隔
buyInterval = input(5, title="购买间隔(K线数量)")

// 跟踪购买间隔
var int lastBuyBar = na
lastBuyBar := na(lastBuyBar[1]) ? bar_index : lastBuyBar

// 策略信号
BBBuyTrigger1 = close < lower1
BBSellTrigger1 = close > upper1
rsiBuyGuard1 = rsi < RSILowerLevel1
rsiSellGuard1 = rsi > RSIUpperLevel1

Buy_1 = BBBuyTrigger1 and rsiBuyGuard1 and (bar_index - lastBuyBar) >= buyInterval
Sell_1 = BBSellTrigger1 and rsiSellGuard1

if (Buy_1)
    lastBuyBar := bar_index

strategy.entry("Long", strategy.long, when = Buy_1, alert_message = "Buy Signal!")
strategy.close("Long", when = Sell_1, alert_message = "Sell Signal!")

Больше