В процессе загрузки ресурсов... загрузка...

Болинджерские полосы + РСИ + Стратегия тренда Multi-MA

Автор:Чао Чжан, Дата: 2024-05-27 15:20:40
Тэги:ББРСИМ.А.SMAMACD

img

Обзор

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

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

  1. Использовать 20-периодную полосу Боллинджера с двумя стандартными отклонениями для определения тренда на основе позиции цены закрытия относительно средней полосы.
  2. Вычислить 14-периодический показатель рентабельности и использовать перекрестное соотношение показателя рентабельности с уровнями 30 и 70 для выявления условий перепродажи и перекупки, учитывая потенциальные изменения.
  3. Вычислить простые скользящие средние с периодами 34, 89, 144, 233, 377 и 610. Подтвердить тенденцию через бычье расположение скользящих средних, которые также могут служить уровнями поддержки и сопротивления.
  4. Вычислить индикатор MACD на основе параметров 12, 26, 9 и использовать перекресток гистограммы MACD с нулевой осью, чтобы помочь оценить изменение тренда.
  5. Всесторонне оценить вышеуказанные показатели для формулирования логики входа и выхода:
    • Вход: Открыть длинную позицию, когда цена закрытия выше средней полосы Боллинджера, а краткосрочная скользящая средняя выше долгосрочной скользящей средней.
    • Выход: закрыть половину позиции, когда цена закрытия опускается ниже средней полосы Боллинджера, и закрыть все позиции, когда краткосрочная скользящая средняя опускается ниже долгосрочной скользящей средней.

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

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

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

  1. На нестабильных рынках полосы Боллинджера и системы скользящих средних могут генерировать частые и противоречивые сигналы.
  2. Показатели RSI и MACD могут оставаться в зонах перекупа или перепродажи в течение длительных периодов во время сильного тренда на рынках, теряя свою предсказательную силу.
  3. Выбор параметров (например, период полосы Боллинджера, периоды скользящей средней и т. д.) имеет определенную субъективность, и разные параметры могут привести к разным результатам.
  4. Отсутствие механизма стоп-лосса может увеличить риск отдельных сделок.
  5. Стратегия может быть неспособна оперативно реагировать на экстремальные явления, такие как черные лебеди, что приводит к значительным снижениям.

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

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

Резюме

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


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

//@version=5
strategy("Bollinger Bands + RSI Strategy with MA", overlay=true)

// Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Mult")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper_band = basis + dev
lower_band = basis - dev

// RSI
rsi_length = input.int(14, title="RSI Length")
rsi_oversold = input.int(30, title="RSI Oversold", minval=0, maxval=100)
rsi_overbought = input.int(70, title="RSI Overbought", minval=0, maxval=100)
rsi = ta.rsi(close, rsi_length)

// RSI Divergence
rsi_divergence_bottom = ta.crossunder(rsi, rsi_oversold)
rsi_divergence_peak = ta.crossunder(rsi_overbought, rsi)

// Moving Averages
ma34 = ta.sma(close, 34)
ma89 = ta.sma(close, 89)
ma144 = ta.sma(close, 144)
ma233 = ta.sma(close, 233)
ma377 = ta.sma(close, 377)
ma610 = ta.sma(close, 610)

// MACD Calculation
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
macd_histogram = macd_line - signal_line

// MACD Divergence
macd_divergence_bottom = ta.crossunder(macd_histogram, 0)
macd_divergence_peak = ta.crossover(macd_histogram, 0)

// Conditions for Buy and Sell
basis_gt_ma34 = basis > ma34
ma34_gt_ma89 = ma34 > ma89

// Entry condition
buy_condition = basis_gt_ma34 and ma34_gt_ma89 
sell_condition =  basis <ma34

// Calculate position size
position_size = 1.0  // 100% capital initially

// Update position size based on conditions
if (sell_condition)
    position_size := 0.5  // Sell half of the position
if (not basis_gt_ma34)
    position_size := 0.0  // Sell all if basis < ma34

// Entry and exit strategy
if (buy_condition)
    strategy.entry("Buy", strategy.long, qty=position_size)
if (sell_condition)
    strategy.close("Buy")

// Plot Bollinger Bands and Moving Averages
bb_fill_color = basis > basis[1] ? color.new(color.blue, 90) : color.new(color.blue, 10)
plot(basis, color=color.blue, title="Basis")
plot(upper_band, color=color.red, title="Upper Band")
plot(lower_band, color=color.green, title="Lower Band")
fill(plot1=plot(upper_band), plot2=plot(lower_band), color=bb_fill_color, title="BB Fill")
plot(ma34, color=color.orange, title="MA34")
plot(ma89, color=color.purple, title="MA89")
plot(ma144, color=color.gray, title="MA144")
plot(ma233, color=color.blue, title="MA233")
plot(ma377, color=color.red, title="MA377")
plot(ma610, color=color.green, title="MA610")

// Plot RSI Divergence
plotshape(series=rsi_divergence_bottom, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small)
plotshape(series=rsi_divergence_peak, style=shape.triangledown, location=location.belowbar, color=color.red, size=size.small)

// Plot MACD Histogram Divergence
plotshape(series=macd_divergence_bottom, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=macd_divergence_peak, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)


Связанные

Больше