Двойная стратегия импульсного тренда

Автор:Чао Чжан, Дата: 2024-01-22 17:04:36
Тэги:

img

Обзор

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

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

  1. Логика суждения по РСИ
    • Пересечение RSI выше 45 считается сигналом перепроданности.
    • Пересечение RSI ниже 55 считается сигналом перекупа.
  2. Логика суждения по полосам Боллинджера
    • Пересечение цены выше нижней полосы Боллинджера считается перепроданным
    • Пересечение цены ниже верхней полосы Боллинджера считается перекупленным.
  3. Логика двойного подтверждения
    • Долгая позиция открывается только тогда, когда как RSI, так и Bollinger Bands показывают сигнал перепродажи
    • Краткая позиция открывается только тогда, когда как RSI, так и Bollinger Bands показывают сигнал перекупленности

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

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

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

  2. RSI эффективен в определении тенденций и переломов. Полосы Боллинджера эффективны в оценке поддержки и сопротивления.

  3. Гибкие настройки параметров, могут быть настроены на основе различных продуктов и торговых предпочтений, очень адаптивные.

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

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

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

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

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

  1. Испытывайте индикаторы RSI с различными периодами, чтобы найти наилучший параметр периода соответствия для повышения эффективности.

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

  3. Проверьте параметр пропускной способности Боллинджера для оптимизации диапазона канала и повышения эффективности.

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

Резюме

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


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

//@version=2
strategy("Bollinger + RSI, Double Strategy (by ChartArt)", shorttitle="CA_-_RSI_Bol_Strat", overlay=true)

// ChartArt's RSI + Bollinger Bands, Double Strategy
//
// Version 1.0
// Idea by ChartArt on January 14, 2015.
//
// This strategy uses a modfied RSI to sell
// when the RSI increases over the value of 55
// (or to buy when the value falls below 45),
// with the classic Bollinger Bands strategy
// to sell when the price is above the
// upper Bollinger Band (and to buy when
// this value is below the lower band).
//
// This simple strategy only triggers when
// both the RSI and the Bollinger Bands
// indicators are at the same time in
// a overbought or oversold condition.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 


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


///////////// Bollinger Bands
BBlength = input(20, minval=1,title="Bollinger Bands SMA Period Length")
BBmult = input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=silver,title="Bollinger Bands Lower Line")
fill(p1, p2)


///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) ? red : RSIoverSold and (price[1] < BBlower and price > BBlower)  ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long, stop=BBlower,  comment="RSI_BB_L")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short, stop=BBupper, comment="RSI_BB_S")
    else
        strategy.cancel(id="RSI_BB_S")

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

Больше