
A estratégia de breakout do cruzamento do ouro do EMA duplo é uma estratégia de negociação de rastreamento de tendências e de breakout baseada na média móvel binária do índice (EMA). Ela produz um sinal de compra ao cruzar o ouro e um sinal de venda ao cruzar a morte, calculando dois EMAs de diferentes períodos, para capturar mudanças na tendência de preços. A estratégia combina simultaneamente condições de EMA de breakout do preço para emitir sinais e, assim, filtrar os falsos sinais.
A estratégia de ruptura do cruzamento do ouro duplo da EMA baseia-se principalmente nos seguintes princípios:
Use o EMA de curto período (linha de 26 dias) para capturar a tendência de curto prazo do preço, e o EMA de longo período (linha de 200 dias) para determinar a tendência de longo prazo.
Quando um EMA curto-prazo ultrapassa o EMA longo-prazo de baixo para cima, o que é conhecido como um cruzamento de ouro de baril, o que indica que o preço está se movendo de cima para baixo, gerando um sinal de compra.
Quando um EMA curto-prazo quebra o EMA longo-prazo de cima para baixo, o que é conhecido como um crossover da morte de um pivô, o que indica que o preço está em uma reversão de pivô para baixo, gerando um sinal de venda.
Quando um sinal de cruzamento é emitido, o preço também precisa quebrar a EMA para filtrar os falsos sinais e garantir a confiabilidade do sinal de negociação.
A utilização de métodos de stop loss e stop-loss para controlar o risco de negociação e bloquear o lucro.
A dupla estratégia de ruptura do cruzamento do ouro da EMA tem as seguintes vantagens:
Usando a dupla EMA para determinar a tendência dos preços e sinais de cruzamento, é possível acompanhar eficazmente o movimento do mercado.
Combinado com o preço de quebra de filtro de sinais, evitar a confusão de falsos sinais de cruzamento.
A lógica de transação é simples, clara, fácil de entender e de implementar.
Adaptável a diferentes variedades e períodos de tempo, com flexibilidade universal.
Parâmetros EMA configuráveis e condições de parada de perda, forte adaptabilidade.
A estratégia de ruptura do cruzamento do ouro de duas EMAs também apresenta os seguintes riscos:
Os EMAs podem ocorrer com frequência em situações de volatilidade, gerando excesso de sinais de negociação. Os parâmetros EMAs podem ser adequadamente ajustados para reduzir o número de cruzamentos.
A dupla EMA pode ocasionalmente ser retardada e não responder a mudanças de preço em tempo hábil. Pode ser confirmada em combinação com outros indicadores.
Se o ponto de parada for pequeno, ele pode ser provocado por pequenas flutuações de preços. Se o ponto de parada for grande, ele pode perder parte do lucro. O ponto de parada deve ser ajustado de acordo com o mercado.
Os traders precisam entender as tendências de grande escala antes de produzir sinais de negociação, evitando negociações adversas.
A estratégia de ruptura do cruzamento do ouro de duas EMAs pode ser otimizada em vários aspectos:
A aplicação de algoritmos de aprendizagem de máquina para otimizar dinamicamente os parâmetros do EMA, permitindo que ele se adapte melhor às flutuações de preços.
Adicionar outros sinais de confirmação de indicadores, como volume de tráfego, faixa de Brin, etc., para melhorar a qualidade do sinal.
A combinação de aprendizagem profunda com o caminho de previsão de preços permite que o stop-loss se aproxime da posição ideal.
Otimização de estratégias para dados de alta frequência para melhorar a precisão do sinal.
Aumentar o mecanismo de ajuste automático de parada de danos, evitando que a parada de danos seja muito frequente.
Em suma, a estratégia de ruptura de cruzamentos de ouro de EMA dupla usa sinais de ruptura de EMA para determinar movimentos de preços e pontos de reversão, e adiciona filtros de ruptura de preços para evitar falsos sinais. É uma estratégia de negociação de tendência confiável, estável e fácil de implementar.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Buy/Sell Signal", shorttitle="EMABuySell", overlay=true)
// === INPUTS ===
src = input(close)
ema1Length = input(26, title='EMA-1')
ema2Length = input(200, title='EMA-2')
EMASig = input(true, title="Show EMA ?")
takeProfitPercent = input(2.0, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100
pema1 = ta.ema(src, ema1Length)
pema2 = ta.ema(src, ema2Length)
// Plotting EMAs
plot(EMASig ? pema1 : na, title='EMA-1', color=color.new(color.blue, 0), linewidth=2)
plot(EMASig ? pema2 : na, title='EMA-2', color=color.new(color.orange, 0), linewidth=2)
// EMA Crossover Buy Signal
EMACrossoverLong = ta.crossover(pema1, pema2)
// EMA Crossunder Short Signal
EMACrossoverShort = ta.crossunder(pema1, pema2)
// Crossover above EMA-200 Long Signal
CrossoverAboveEMA200 = ta.crossover(close, pema2)
// Trading logic for Long
if ((EMACrossoverLong and close > pema1 and close > pema2) or CrossoverAboveEMA200)
strategy.entry("Buy", strategy.long, qty=1)
// Take Profit logic for Long
longCondition = close >= strategy.position_avg_price * (1 + takeProfitPercent)
if (strategy.position_size > 0 and longCondition)
strategy.close("Buy")
// Stop Loss logic for Long
stopLossConditionLong = ta.crossunder(pema1, pema2)
if (strategy.position_size > 0 and stopLossConditionLong)
strategy.close("Buy")
// Trading logic for Short
if (EMACrossoverShort and close < pema1 and close < pema2)
strategy.entry("Sell", strategy.short, qty=1)
// Take Profit logic for Short
shortCondition = close <= strategy.position_avg_price * (1 - takeProfitPercent)
if (strategy.position_size < 0 and shortCondition)
strategy.close("Sell")
// Stop Loss logic for Short
stopLossConditionShort = ta.crossover(pema1, pema2)
if (strategy.position_size < 0 and stopLossConditionShort)
strategy.close("Sell")
// Visual Signals
plotshape(series=EMACrossoverLong or CrossoverAboveEMA200, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=EMACrossoverShort, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)