Эта стратегия генерирует торговые сигналы путем расчета перекрестного действия индикаторов MACD и RSI. Она генерирует сигналы покупки и продажи, когда RSI перекуплен или перепродан, и происходит перекрестное действие MACD. Стратегия сочетает в себе преимущества двух различных типов индикаторов, учитывая как тенденцию цен, так и ситуации перекупления/перепродажи, тем самым повышая эффективность стратегии.
Стратегия в основном использует комбинацию индикаторов MACD и RSI для генерации торговых сигналов.
Стратегия сначала рассчитывает быструю линию, медленную линию и сигнальную линию MACD. Когда быстрая линия больше медленной линии, генерируется золотой крестный сигнал. Когда быстрая линия меньше медленной линии, генерируется смертельный крестный сигнал. Это указывает на то, что ценовая тенденция и импульс меняются.
В то же время стратегия рассчитывает индикатор RSI и устанавливает линию перекупа и перепродажи. Когда RSI ниже линии перепродажи, это указывает на перепродажу. Когда RSI выше линии перекупа, это указывает на перекуп.
Когда происходит перекуп/перепродажа по РСИ, стратегия генерирует сигналы покупки, когда происходит золотой крест MACD, и генерирует сигналы продажи, когда происходит переход смерти по MACD. Это когда ценовая тенденция переворачивается, индикатор MACD используется для захвата поворотных точек из-за своей чувствительности.
Стратегия сочетает в себе преимущества индикаторов MACD и RSI для повышения ее эффективности:
MACD может чувствительно отслеживать изменения цен, в то время как RSI рассматривает ситуации перекупа/перепродажи, дополняющие друг друга.
Сочетание этих двух индикаторов может отфильтровать некоторые шумные торговые сигналы и уменьшить ненужные сделки.
MACD измеряет разницу между скользящими средними, в то время как RSI измеряет долю изменений цен, оба метода могут проверять друг друга.
MACD быстро реагирует на изменения цен, в то время как расхождения RSI между перекупленными и перепроданными являются очевидными, хороший комбинированный эффект.
В этой стратегии также есть определенные риски:
Как MACD, так и RSI уязвимы к внезапным событиям, которые могут генерировать неправильные сигналы.
Влияние на отдельные акции может быть не идеальным, можно рассматривать индексы или портфели.
Удовлетворение как перекрестного MACD, так и RSI сверхпокупки/перепродажи может упустить некоторые возможности.
Стратегия также может быть оптимизирована в следующих аспектах:
Оптимизировать параметры MACD и RSI для различных видов торговли.
Добавьте стратегию стоп-лосса, чтобы остановить потерю вовремя, когда убытки достигнут определенного процента.
Комбинируйте с другими индикаторами, такими как полосы Боллинджера и KDJ, чтобы установить более строгие условия торговли сигналом.
Запустите стратегию на высокочастотных данных, чтобы использовать быстрое/медленное свойства MACD и улучшить эффективность стратегии.
В соответствии с результатами обратного теста корректируйте линию перекупленности/перепроданности 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)