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

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

Автор:Чао Чжан, Дата: 2023-12-18 17:19:03
Тэги:

img

Обзор

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

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

Расчет показателя MACD

Индикатор MACD состоит из разницы между быстрой EMA и медленной EMA, отражающей разницу между краткосрочными и долгосрочными средними ценовыми тенденциями.

Когда быстрая линия пересекает медленную линию, это золотистый крестный сигнал, указывающий на восходящий тренд.

Расчет показателя RSI

Индикатор RSI отражает условия перекупа/перепродажи на рынке.

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

RSI выше 70 указывает на то, что АСТЕТ был СОПЛЕНЕН, поскольку давление продажи превысило давление покупки в течение отслеживаемой временной линии.

Значения ниже 30 показывают условия перепродажи, а значения выше 70 показывают условия перекупки.

Сигналы стратегии

Эта стратегия использует RSI для фильтрации сигналов, генерируя фактические торговые сигналы только тогда, когда MACD дает сигнал, а RSI одновременно подтверждает крайности перекупа / перепродажи.

В частности, когда MACD генерирует золотой крест, если RSI <=34 в то же время, подтверждая перепроданный рынок, генерируется сигнал покупки.

Этот механизм двойного подтверждения может отфильтровать многие ненадежные торговые сигналы, тем самым повышая стабильность и надежность стратегии.

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

Двойной индикаторный фильтр повышает надежность сигнала

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

Ясное суждение о тенденции

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

Большое пространство оптимизации параметров

Параметры компонентов этой стратегии MACD и RSI могут быть оптимизированы и скорректированы в соответствии с различными циклами и торговыми инструментами.

Легко понять и применить

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

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

Может упустить некоторые торговые возможности

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

  • Решение: надлежащим образом расширить диапазон пороговых значений RSI, чтобы снизить строгость подтверждения и позволить стратегии использовать больше торговых возможностей.

Убытки при экстремальных рыночных движениях

В случае крайней волатильности рынка как индикаторы MACD, так и RSI могут отставать в вынесении суждений, что приводит к неправильным торговым сигналам, генерируемым стратегией, и понесенным убыткам.

  • Решение: включить механизмы стоп-лосса для предотвращения чрезмерных потерь в одиночных сделках.

Производительность сильно зависит от параметров

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

  • Решение: оптимизировать комбинации параметров с помощью обратного тестирования для определения оптимальных параметров.

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

Используйте механизмы стоп-лосса для контроля рисков

Правила стоп-лосса, основанные на цене или индикаторе, могут быть реализованы для выхода из позиций с заранее определенным порогом допустимых потерь, эффективно ограничивая потери на отдельных сделках.

Корректировка параметров в соответствии с характеристиками рынка

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

Проверка различных активов для выявления наилучшего соответствия

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

Включить дополнительные индикаторы для многомерного подтверждения

Помимо компонентов MACD и RSI можно добавлять такие индикаторы, как стохастик, OBV, CCI и т. д. для большей точности подтверждения с помощью многомерного подхода фильтрации сигналов.

Заключение

Эта стратегия определяет рыночные тенденции и торговые сигналы на основе индикатора MACD, в то время как RSI подтверждает условия перекупки / перепродажи для фильтрации ложных сигналов.

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


/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(default_qty_type = strategy.percent_of_equity, default_qty_value = 25, pyramiding = 10, title="MACD crossover while RSI Oversold/Overbought", overlay=true, shorttitle="MACD Cross + RSI Oversold Overbought", initial_capital = 1000)

//MACD Settings
fastMA = input(title="Fast moving average",  defval = 12, minval = 7) //7 16
slowMA = input(title="Slow moving average",  defval = 26, minval = 7) //24 26 
signalLength = input(9,minval=1) //9 6

//RSI settings
RSIOverSold = input(34 ,minval=1) //26
RSIOverBought = input(75 ,minval=1) //77
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(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,_,_] = macd(close[0], fastMA, slowMA, signalLength)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, signalLength)
signal = ema(currMacd, signalLength)

crossoverBear = cross(currMacd, signal) and currMacd < signal ? avg(currMacd, signal) : na
crossoverBull = cross(currMacd, signal) and currMacd > signal ? avg(currMacd, signal) : na

plotshape(crossoverBear and wasOverbought , title='MACD-BEAR', style=shape.triangledown, text='overbought', location=location.abovebar, color=orange, textcolor=orange, size=size.tiny) 
plotshape(crossoverBull and wasOversold, title='MACD-BULL', style=shape.triangleup, text='oversold', location=location.belowbar, color=lime, textcolor=lime, size=size.tiny) 

// Configure backtest start date with inputs
startDate = input(title="Start Date",
     defval=8, minval=1, maxval=31)
startMonth = input(title="Start Month",
     defval=3, minval=1, maxval=12)
startYear = input(title="Start Year",
     defval=2021, minval=1800, maxval=2100)

afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))
     
if (afterStartDate==true)
    posSize = abs(strategy.position_size)
    strategy.order("long", strategy.long, when = crossoverBull and wasOversold) 
    strategy.order("long", long=false, qty=posSize/3, when = crossoverBear and wasOverbought) 


Больше