Estratégia múltipla de acompanhamento de tendências

Autora:ChaoZhang, Data: 2023-11-17 17:19:37
Tags:

img

Resumo

A estratégia de rastreamento de tendências múltiplas utiliza de forma abrangente os quatro indicadores MACD, RSI, ATR e DEMA para identificar as tendências de longo e curto prazo das ações e conduzir a negociação de rastreamento de tendências.

Estratégia lógica

Estratégia de negociação do MACD

O MACD é um indicador de convergência de média móvel. O MACD consiste em uma linha média móvel rápida e uma linha média móvel lenta, comumente usando parâmetros de EMA de 12 dias para linha rápida, EMA de 26 dias para linha lenta e linha de sinal como EMA de 9 dias do MACD. Quando o MACD cruza acima da linha de sinal, é um sinal de compra, e quando cruza abaixo, é um sinal de venda.

RSI Estratégia de sobrecompra e sobrevenda

O RSI representa o índice de força relativa, que reflete o estado de sobrecompra e sobrevenda de uma ação. O RSI determina se uma ação está sobrecomprada ou sobrevendida comparando o ganho médio e a perda média durante um período de tempo.

Análise das vantagens

Esta estratégia utiliza de forma abrangente MACD, RSI, ATR e DEMA quatro indicadores, levando em conta tanto o rastreamento da tendência e a negociação de ruptura, que pode encontrar melhores pontos de entrada dentro da tendência.

  1. O MACD pode identificar eficazmente a direcção e os pontos de virada das tendências a médio e longo prazo dos preços das acções.

  2. O RSI pode julgar se uma ação está sobrecomprada ou sobrevendida no curto prazo para evitar perseguir altas e vender baixas em pontos de reversão da tendência.

  3. O ATR ajusta dinamicamente a posição de stop loss para controlar eficazmente a perda única.

  4. O DEMA serve como um indicador de julgamento auxiliar para filtrar algum ruído.

  5. A combinação de vários indicadores pode melhorar a fiabilidade dos sinais de negociação.

Análise de riscos

Esta estratégia apresenta também alguns riscos:

  1. Pode ocorrer divergência com combinação de múltiplos indicadores, levando a sinais de negociação errados.

  2. O ATR como indicador dinâmico de stop loss é propenso a ser quebrado em grandes flutuações que resultam em perdas.

  3. DEMA como um filtro de tendência pode filtrar algumas oportunidades de negociação de curto prazo mais fortes.

  4. Os parâmetros de estratégia inadequados podem conduzir a negociações frequentes, aumento dos custos de transação e perdas por deslizamento.

Para controlar os riscos, os parâmetros dos indicadores podem ser ajustados em conformidade. Mais indicadores de julgamento auxiliares também podem ser introduzidos para confirmação. Desenvolver estratégias de negociação quantitativas requer análise meticulosa de dados históricos, backtesting robusto e gestão de risco prudente.

Orientações de otimização

A estratégia pode também ser otimizada nos seguintes aspectos:

  1. Teste diferentes combinações de parâmetros para encontrar os parâmetros ideais.

  2. Adicionar estratégias de stop loss como stop loss móvel, stop loss médio, etc. para controlar ainda mais os riscos.

  3. Introduzir mais indicadores de julgamento auxiliares, como KDJ, Bandas de Bollinger, etc., para melhorar a precisão do sinal.

  4. Otimizar as seleções de tempo de entrada combinando estratégias de fuga para encontrar melhores pontos de entrada.

  5. Diferenciar os parâmetros dos mercados de alta e baixa.

  6. Construir modelos com base nas características das unidades populacionais para melhorar a adaptabilidade.

Resumo

A estratégia de rastreamento de tendências múltiplos integra MACD, RSI, ATR e DEMA quatro indicadores, alcançando uma combinação orgânica de rastreamento de tendências e quebra de tendências. Em comparação com as estratégias de indicador único, esta estratégia pode fornecer sinais de negociação mais confiáveis e evitar certos sinais falsos. Através de otimização de parâmetros, estratégias de stop loss, julgamentos auxiliares, etc., o desempenho da estratégia pode ser melhorado. Esta estratégia é adequada para negociação quantitativa que requer maiores capacidades de mudança de tendência e é uma estratégia de idéia promissora que vale a pena rastreamento e otimização a longo prazo.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © prim722

// © OTS Music

//@version=4
strategy("Atrend by OTS", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
if (crossover(delta, 0))
	strategy.entry("MACD buy", strategy.long, comment="MACD buy")
if (crossunder(delta, 0))
	strategy.entry("MACD sell", strategy.short, comment="MACD sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
length = input( 18 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
if (not na(vrsi))
	if (co)
		strategy.entry("RSI buy", strategy.long, comment="RSI buy")
	if (cu)
		strategy.entry("RSI sell", strategy.short, comment="RSI sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=false)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.white)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="", text="", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.white, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_line, linewidth=2, color=color.gray)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="", text="", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.white : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.gray : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="ATrend Buy", message="ATrend Buy!")
alertcondition(sellSignal, title="ATrend Sell", message="ATrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="ATrend Direction Change", message="ATrend has changed direction!")

length1 = input(25, minval=1)
srcb = input(close, title="Source")
e1 = ema(srcb, length1)
e2 = ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color.red)

Mais.