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