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


Дата создания: 2023-12-18 17:19:03 Последнее изменение: 2023-12-18 17:19:03
Копировать: 0 Количество просмотров: 493
1
Подписаться
1166
Подписчики

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

Обзор

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

Стратегический принцип

Расчет MACD

MACD-индикатор представляет собой разницу между скоростной скользящей средней (EMA) и медленной скользящей средней, отражающую разницу между краткосрочными и долгосрочными тенденциями средних ценовых изменений. В этой стратегии скоростная линия имеет период 12 дней, а медленная линия - 26 дней.

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

Расчет RSI

RSI отражает тенденцию к перекупу и перепродаже на рынке. В этой стратегии RSI имеет циклический параметр 14.

RSI BELOW 30 when buyers outpaced sellers for an extended period suggests ASSET was OVERSOLD.

RSI ABOVE 70 when selling pressure outpaced buying pressure over the tracked timeline suggests ASSET was OVERBOUGHT.

Когда RSI ниже 30, рынок находится в состоянии перепродажи; когда RSI выше 70, рынок находится в состоянии перекупа.

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

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

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

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

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

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

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

Ясное определение тенденций

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

Оптимизация параметров

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

Легко понятная реализация

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

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

Возможно, мы пропустили часть сделки.

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

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

Потеря при резком изменении ситуации

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

  • Решение: включение механизма остановки убытков, чтобы избежать слишком больших потерь; корректировка параметров, чтобы показатель имел определенную чувствительность к резким изменениям.

Эффекты высоко связаны с качеством параметров настройки

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

  • Решение: Найти оптимальную параметровую настройку, оптимизируя комбинацию параметров путем обратной связи.

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

Присоединение к системе управления рисками

Можно установить правила ценового или индикаторного стоп-лосса, чтобы остановить убытки, когда убытки расширяются до определенного уровня, эффективно контролируя одиночные убытки.

Приспособить параметры к особенностям ситуации

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

Испытание разных сортов, чтобы найти оптимальные варианты

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

Присоединение к другим показателям для многомерной идентификации

На базе существующих MACD и RSI можно ввести другие показатели, такие как stoch, 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)