O recurso está a ser carregado... Carregamento...

EMA multi-tempo com retracement de Fibonacci e estratégia de negociação de pontos pivô

Autora:ChaoZhang, Data: 2024-12-11 15:58:20
Tags:EMAPPFIBOSLTP

 Multi-Timeframe EMA with Fibonacci Retracement and Pivot Points Trading Strategy

Resumo

Esta estratégia é um sistema de negociação abrangente que combina múltiplas ferramentas de análise técnica, utilizando principalmente duas EMAs (2050A estratégia adota uma combinação de seguimento de tendências e métodos de retração de preços para melhorar a precisão da negociação através de múltiplas confirmações.

Princípios de estratégia

A lógica central da estratégia baseia-se nos seguintes elementos-chave: 1. Utiliza cruzamento da EMA de 20 e 50 períodos para determinar a direcção geral da tendência 2. Utiliza níveis de retracementos de Fibonacci (23,6%, 38,2%, 50%, 61,8%) para identificar níveis de suporte/resistência potenciais 3. Integra Pontos de Pivot (PP) e seus níveis de suporte/resistência (S1/S2, R1/R2) para confirmar os principais níveis de preços 4. As condições de entrada devem simultaneamente satisfazer: - A EMA de curto prazo cruza acima da EMA de longo prazo (para longs) ou abaixo (para shorts) - O preço está acima/abaixo dos níveis adequados de Fibonacci - Preço confirma níveis de suporte/resistência do ponto pivô Implementa stop-loss fixo (30 pips) e take-profit (60 pips) para gestão de riscos

Vantagens da estratégia

  1. A validação cruzada de múltiplos indicadores técnicos melhora a fiabilidade do sinal
  2. Combina tendência e suporte/resistência para um calendário de entrada equilibrado
  3. Parâmetros fixos de gestão de riscos facilitam a execução quantitativa
  4. Os sinais de negociação visualizados permitem o monitoramento em tempo real
  5. Adequado para negociação de tendências a médio e longo prazo, reduzindo o impacto da volatilidade a curto prazo

Riscos estratégicos

  1. Indicadores múltiplos podem levar a sinais atrasados, afetando o calendário de entrada
  2. Os níveis fixos de stop loss e take profit podem não corresponder a todas as condições de mercado
  3. Pode gerar sinais falsos excessivos em mercados variados
  4. Requer movimentos significativos de preços para retornos ideais
  5. Os stop-loss podem ser ineficazes durante movimentos acentuados do mercado

Orientações para a otimização da estratégia

  1. Introduzir mecanismos de stop-loss e take-profit adaptados à volatilidade
  2. Adicionar indicadores de volume para confirmação adicional
  3. Ajustar dinamicamente os parâmetros da EMA com base nas condições de mercado
  4. Implementar filtros de força de tendência para reduzir os falsos sinais
  5. Desenvolver mecanismos de gestão de posições parciais mais inteligentes

Resumo

Esta estratégia integra várias ferramentas clássicas de análise técnica para construir um sistema de negociação relativamente completo. Embora tenha algum atraso inerente, o mecanismo de confirmação múltipla aumenta a confiabilidade da negociação. Através da implementação de sugestões de otimização, a estratégia tem potencial para melhorar o desempenho na negociação ao vivo.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true)

// Input for EMAs and Pivot Points
emaShortPeriod = input.int(20, title="Short EMA Period", minval=1)
emaLongPeriod = input.int(50, title="Long EMA Period", minval=1)
fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level")
fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level")
fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level")
fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level")

// Function to calculate Pivot Points and Levels
pivot(high, low, close) =>
    pp = (high + low + close) / 3
    r1 = 2 * pp - low
    s1 = 2 * pp - high
    r2 = pp + (high - low)
    s2 = pp - (high - low)
    [pp, r1, s1, r2, s2]

// Calculate Pivot Points
[pp, r1, s1, r2, s2] = pivot(high, low, close)

// Calculate 20 EMA and 50 EMA
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)

// Plot the EMAs
plot(emaShort, color=color.blue, title="20 EMA", linewidth=2)
plot(emaLong, color=color.red, title="50 EMA", linewidth=2)

// Fibonacci Levels (manually drawn between the most recent high and low)
var float fibHigh = na
var float fibLow = na

if (not na(high[1]) and high > high[1])  // Check if new high is formed
    fibHigh := high
if (not na(low[1]) and low < low[1])    // Check if new low is formed
    fibLow := low

fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1
fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2
fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3
fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4

plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%")
plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%")
plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%")

// Entry conditions (Crossovers)
longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1
shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1

// Exit conditions (Stop Loss and Take Profit)
stopLossPips = 30 * syminfo.mintick  // 30 pips Stop Loss
takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit

if (longCondition)
    strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips)
if (shortCondition)
    strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips)

// Plot Pivot Points for visual reference
plot(pp, color=color.yellow, linewidth=2, title="Pivot Point")
plot(r1, color=color.purple, linewidth=1, title="Resistance 1")
plot(s1, color=color.purple, linewidth=1, title="Support 1")
plot(r2, color=color.purple, linewidth=1, title="Resistance 2")
plot(s2, color=color.purple, linewidth=1, title="Support 2")

// Adding Buy and Sell Signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)


Relacionados

Mais.