Стратегия перекрестного использования MACD и RSI

Автор:Чао Чжан, Дата: 2024-01-23 15:26:08
Тэги:

img

Обзор

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

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

Стратегия в основном использует комбинацию индикаторов MACD и RSI для генерации торговых сигналов.

Стратегия сначала рассчитывает быструю линию, медленную линию и сигнальную линию MACD. Когда быстрая линия больше медленной линии, генерируется золотой крестный сигнал. Когда быстрая линия меньше медленной линии, генерируется смертельный крестный сигнал. Это указывает на то, что ценовая тенденция и импульс меняются.

В то же время стратегия рассчитывает индикатор RSI и устанавливает линию перекупа и перепродажи. Когда RSI ниже линии перепродажи, это указывает на перепродажу. Когда RSI выше линии перекупа, это указывает на перекуп.

Когда происходит перекуп/перепродажа по РСИ, стратегия генерирует сигналы покупки, когда происходит золотой крест MACD, и генерирует сигналы продажи, когда происходит переход смерти по MACD. Это когда ценовая тенденция переворачивается, индикатор MACD используется для захвата поворотных точек из-за своей чувствительности.

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

Стратегия сочетает в себе преимущества индикаторов MACD и RSI для повышения ее эффективности:

  1. MACD может чувствительно отслеживать изменения цен, в то время как RSI рассматривает ситуации перекупа/перепродажи, дополняющие друг друга.

  2. Сочетание этих двух индикаторов может отфильтровать некоторые шумные торговые сигналы и уменьшить ненужные сделки.

  3. MACD измеряет разницу между скользящими средними, в то время как RSI измеряет долю изменений цен, оба метода могут проверять друг друга.

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

Риски и решения

В этой стратегии также есть определенные риски:

  1. Как MACD, так и RSI уязвимы к внезапным событиям, которые могут генерировать неправильные сигналы.

  2. Влияние на отдельные акции может быть не идеальным, можно рассматривать индексы или портфели.

  3. Удовлетворение как перекрестного MACD, так и RSI сверхпокупки/перепродажи может упустить некоторые возможности.

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

Стратегия также может быть оптимизирована в следующих аспектах:

  1. Оптимизировать параметры MACD и RSI для различных видов торговли.

  2. Добавьте стратегию стоп-лосса, чтобы остановить потерю вовремя, когда убытки достигнут определенного процента.

  3. Комбинируйте с другими индикаторами, такими как полосы Боллинджера и KDJ, чтобы установить более строгие условия торговли сигналом.

  4. Запустите стратегию на высокочастотных данных, чтобы использовать быстрое/медленное свойства MACD и улучшить эффективность стратегии.

  5. В соответствии с результатами обратного теста корректируйте линию перекупленности/перепроданности RSI, чтобы найти лучшие комбинации параметров.

Резюме

Стратегия MACD и RSI сочетает в себе следующее тренду и суждение о перекупе / перепродаже, которое может эффективно улавливать точки переворота цен и повышать эффективность стратегии.


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

//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)

//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought



[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)

avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na

strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)



Больше