Торговая стратегия короткой продажи при пересечении полосы Боллинджера ниже цены с обратным вызовом RSI

Автор:Чао Чжан, Дата: 2023-12-26 12:08:44
Тэги:

img

Обзор

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

Принципы торговли

Стратегия основана на следующих принципах:

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

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

Преимущества этой стратегии:

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

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

Риски этой стратегии:

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

Риски можно свести к минимуму:

  1. Правильное регулирование стоп-лосса для своевременного стоп-аут
  2. Добавление индикаторов для подтверждения обратного вызова RSI
  3. Использование скользящих средних для определения консолидации

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

Эта стратегия может быть улучшена:

  1. Оптимизация параметров Боллинджера для большего количества активов
  2. Прямая настройка параметров RSI для улучшения сигналов
  3. Добавление дополнительных показателей для определения точек переворота тенденции
  4. Включение логики длинной торговли
  5. Внедрение динамического стоп-лосса на основе волатильности

Заключение

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


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

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule


strategy("Bollinger Band Below Price with RSI",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=70,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

//Bollinger Bands Indicator
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

// RSI inputs and calculations
lengthRSI = 14
RSI = ta.rsi(close, lengthRSI)



// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01

// Determine trail stop loss prices
//longStopPrice = 0.0
shortStopPrice = 0.0

//longStopPrice := if strategy.position_size > 0
    //stopValue = close * (1 - longTrailPerc)
    //math.max(stopValue, longStopPrice[1])
//else
    //0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999


//Entry and Exit
strategy.entry(id="short", direction=strategy.short, when=ta.crossover(close, upper) and RSI < 70 and timePeriod and notInTrade)

if (ta.crossover(upper, close) and RSI > 70 and timePeriod)
    strategy.exit(id='close', limit = shortStopPrice)











Больше