Estratégia de negociação de reversão de média móvel assistida por indicador de momentum


Data de criação: 2024-01-22 17:34:05 última modificação: 2024-01-22 17:34:05
cópia: 0 Cliques: 689
1
focar em
1617
Seguidores

Estratégia de negociação de reversão de média móvel assistida por indicador de momentum

Visão geral

Esta estratégia usa uma combinação de indicadores de dinâmica e linha média para identificar tendências de mercado e pontos de reversão e negociação quando a tendência ocorre, pertence à estratégia de acompanhamento de tendências e negociação de contraste. É composta principalmente por módulos como zona de oferta e demanda, linha média EMA, marcas de várias áreas de HH, LL, LH e HL, e ATR Stop Loss.

Princípio da estratégia

1. Identificação de áreas de demanda e oferta

De acordo com a linha K, as relações de oferta e demanda são divididas em áreas de suprimento excedente de oferta, áreas verdes de demanda maior que a oferta.

2. Julgamento de tendências da EMA

A linha média de EMA de 200 metros de comprimento é calculada e traçada para avaliar a tendência de alta amplitude em relação ao tamanho do preço em relação à EMA. Os preços acima do EMA são considerados tendências de alta e os preços abaixo do EMA são considerados tendências de baixa.

3. Marcações de áreas multiespaciais

A região de reversão é avaliada de acordo com os dois pontos mais recentes de alta e baixa da linha K:

  • HH ((Higher High) 2 linhas K consecutivas
  • Área LL ((Lower Low) 2 pontos baixos de linha K consecutivos
  • Área LH ((Área de Alta Baixa) 1 alta de linha K mais recente alta de inovação, alta de linha K secundária invertida, alta de retrocesso
  • Área HL ((Área de Baixo Superior) O último ponto baixo da linha K é um baixo inovador, o ponto baixo da linha K secundária é uma inversão, um ponto baixo de retorno

4. ATR de detecção de danos

Calcule o valor do ATR de 14 ciclos, multiplicado pelo fator 2 para o ponto de parada da estratégia.

5. Entradas e saídas com perdas

O preço de monitorização está relacionado com a alta e baixa do Kline do dia anterior. Quando o preço é superior à alta do dia anterior, um sinal de múltiplas cabeças é gerado; Quando o preço é inferior à baixa do dia anterior, um sinal de cabeças vazias é gerado. O sinal de entrada é adiado até a confirmação da linha K 3 para evitar o sinal de erro causado pela oscilação de impacto.

Análise de vantagens

  1. Utilize vários indicadores para identificar tendências e áreas de reversão para aumentar a probabilidade de lucro.
  2. O método de parada de prejuízos ATR é eficaz para controlar o risco de perda individual.
  3. A entrada tardia determina um sinal eficaz, reduzindo a probabilidade de transações erradas.

Análise de Riscos

  1. Dependendo apenas de indicadores técnicos, sem a combinação de informações básicas, pode-se perder informações importantes que levam ao fracasso da negociação.
  2. O método de parada de perda do ATR pode ser quebrado em situações de grande volume e, portanto, causar perdas.
  3. Os sinais de reversão do EMA são frequentes em tendências de turbulência, podendo levar a uma sobrevenda.

A solução para o risco:

  1. O que é que o governo está a fazer?
  2. O coeficiente de perda de ATR pode ser aumentado de forma apropriada para garantir que haja espaço suficiente.
  3. Ajustar os parâmetros do ciclo de parada ATR para evitar a sensibilidade excessiva durante oscilações.

Direção de otimização

  1. Em combinação com outros indicadores técnicos, como MACD, RSI e outros, para determinar o momento de entrada.
  2. Teste combinações de diferentes parâmetros de períodos e parâmetros de coeficientes para encontrar o parâmetro ideal.
  3. Pode-se considerar a adição de filtros de retorno para evitar que o sinal seja bloqueado.
  4. Parâmetros de otimização dinâmica de métodos como o aprendizado de máquina.

Resumir

Esta estratégia utiliza a análise de oferta e demanda, a avaliação de tendências, a identificação de reversões e o módulo de gestão de perdas para identificar efetivamente as oportunidades de reversão do mercado em áreas-chave. É um conjunto de estratégias eficazes de acompanhamento de tendências e negociação de contrastes. Além disso, é necessário testar e otimizar continuamente, auxiliado por julgamentos de experiência manual, para obter ganhos estáveis a longo prazo.

Código-fonte da estratégia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-20 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supply and Demand Zones with EMA and Trailing Stop", shorttitle="SD Zones", overlay=true)

showBuySignals = input(true, title="Show Buy Signals", group="Signals")
showSellSignals = input(true, title="Show Sell Signals", group="Signals")
showHLZone = input(true, title="Show HL Zone", group="Zones")
showLHZone = input(true, title="Show LH Zone", group="Zones")
showHHZone = input(true, title="Show HH Zone", group="Zones")
showLLZone = input(true, title="Show LL Zone", group="Zones")

emaLength = input(200, title="EMA Length", group="EMA Settings")
atrLength = input(14, title="ATR Length", group="Trailing Stop")
atrMultiplier = input(2, title="ATR Multiplier", group="Trailing Stop")

// Function to identify supply and demand zones
getZones(src, len, mult) =>
    base = request.security(syminfo.tickerid, "D", close)
    upper = request.security(syminfo.tickerid, "D", high)
    lower = request.security(syminfo.tickerid, "D", low)
    multiplier = request.security(syminfo.tickerid, "D", mult)
    zonetype = base + multiplier * len
    zone = src >= zonetype
    [zone, upper, lower]

// Identify supply and demand zones
[supplyZone, _, _] = getZones(close, high[1] - low[1], 1)
[demandZone, _, _] = getZones(close, high[1] - low[1], -1)

// Plot supply and demand zones
bgcolor(supplyZone ? color.new(color.red, 80) : na)
bgcolor(demandZone ? color.new(color.green, 80) : na)

// EMA with Linear Weighted method
ema = ta.ema(close, emaLength)

// Color code EMA based on its relation to candles
emaColor = close > ema ? color.new(color.green, 0) : close < ema ? color.new(color.red, 0) : color.new(color.yellow, 0)

// Plot EMA
plot(ema, color=emaColor, title="EMA")

// Entry Signal Conditions after the third candle
longCondition = ta.crossover(close, high[1]) and (bar_index >= 2)
shortCondition = ta.crossunder(close, low[1]) and (bar_index >= 2)

// Trailing Stop using ATR
atrValue = ta.atr(atrLength)
trailStop = close - atrMultiplier * atrValue

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("TrailStop", from_entry="Buy", loss=trailStop)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("TrailStop", from_entry="Sell", loss=trailStop)

// Plot Entry Signals
plotshape(series=showBuySignals ? longCondition : na, title="Buy Signal", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar)
plotshape(series=showSellSignals ? shortCondition : na, title="Sell Signal", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar)

// Plot Trailing Stop
plot(trailStop, color=color.new(color.red, 0), title="Trailing Stop")

// Plot HH, LL, LH, and HL zones
plotshape(series=showHHZone and ta.highest(high, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HH Zone", color=color.new(color.blue, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showLLZone and ta.lowest(low, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LL Zone", color=color.new(color.blue, 80), style=shape.triangledown, location=location.belowbar)
plotshape(series=showLHZone and ta.highest(high, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LH Zone", color=color.new(color.orange, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showHLZone and ta.lowest(low, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HL Zone", color=color.new(color.orange, 80), style=shape.triangledown, location=location.belowbar)