Стратегия снижения цены покупки в нисходящем тренде с остановкой потери

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

img

Обзор

Эта стратегия использует индикатор RSI для определения потенциального направления тренда на рынке в сочетании с индикатором Bollinger Bands для определения ключевых зон поддержки и сопротивления и ищет возможности низкого поглощения на рынках трендовых шоков для установления длинных позиций и получения прибыли в перекупленных зонах.

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

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

  2. Используйте индикатор Bollinger Bands для определения ключевых зон поддержки и сопротивления. Средняя полоса Bollinger Bands представляет собой скользящую среднюю линию цены, а верхняя и нижняя полосы образуют канал стандартного отклонения цены. Цены, приближающиеся к нижней полосе, представляют собой низкие возможности поглощения.

  3. Когда RSI <40 и цена приближается к нижней полосе Боллинджера, она определяется как низкая абсорбция длинной возможности для установления длинной позиции.

  4. Если показатель RSI >50 или прибыль превышает 50%, закрыть длинные позиции, чтобы получить прибыль и сократить убытки.

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

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

  2. Определить точное время входа в комбинации с полосами Боллинджера для определения точек низкого поглощения.

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

  4. Гибкий механизм остановки прибыли и остановки убытков для максимизации прибыли.

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

  1. Неправильные параметры Боллинджера могут не найти зону поддержки.

  2. Прорывы в тренде или ложные прорывы могут привести к ошибкам в оценках перекупленности и перепродажи.

  3. Неправильное установление точек остановки прибыли и остановки убытков может привести к преждевременному выходу или увеличению потерь.

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

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

  2. Включите другие индикаторы, такие как MACD и KDJ, чтобы отфильтровать ложные сигналы.

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

Резюме

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


/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("price drop buy in", overlay=true, initial_capital=1000, max_bars_back=24)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


///////////// RSI
RSIlength = input(60,title="RSI Period Length") 
RSIoverSold = 40
RSIoverBought = 50
price = close
vrsi = rsi(close, RSIlength)

smaLong = sma(close,80)
smaShort = sma(close,40)

///////////// Bollinger Bands
BBlength = input(20, minval=1,title="Bollinger Period Length")
BBmult = 2 // 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

longcondition = (price < BBlower and vrsi < RSIoverSold) 

    // vrsi < RSIoverSold

shortcondition = (RSIoverBought and strategy.openprofit > 50 )  or price > BBupper






if(longcondition)
    strategy.entry('buy', strategy.long, when = window())
    
if(shortcondition)
    strategy.entry('sell', strategy.short, when = window())



Больше