
A estratégia é uma estratégia de negociação de seguimento de tendências e de ruptura de tendências baseada em médias móveis multicíclicas do índice (EMA). Combina simultaneamente 5 EMAs de diferentes períodos, com uma forte capacidade de identificação de tendências para capturar movimentos de preços de linha média e longa.
Calcule o EMA de 5 ciclos diferentes, sendo 12 ciclos, 15 ciclos, 18 ciclos, 21 ciclos e 24 ciclos.
Sequência EMA: EMA12 > EMA15 > EMA18 > EMA21 > EMA24 como sinal de compra; EMA12 < EMA15 < EMA18 < EMA21 < EMA24 como sinal de venda
O sinal de negociação só é acionado após a data de início definida pelo usuário.
Quando o sinal de compra for acionado, execute a operação de abertura de posição longa; quando o sinal de venda for acionado, execute a operação de abertura de posição curta.
A estratégia combina vários EMAs para formar um canal de tendência, usando a relação entre o interior e o exterior do canal para determinar a direção da tendência de preço. A configuração do ciclo EMA é mais próxima, o que aumenta a sensibilidade aos sinais de ruptura, além de evitar ser enganado pelo ruído do mercado de curto prazo. Além disso, permite maior flexibilidade ao usuário personalizar a data de início da estratégia.
A capacidade de identificar tendências é mais forte usando múltiplos grupos de EMA para formar canais de tendências.
A configuração do ciclo EMA é próxima, sensível a sinais de ruptura de tendência e pode capturar a tendência de linha média e longa em tempo hábil.
Pode-se personalizar a data de início da estratégia, com flexibilidade de utilização.
A gestão de fundos é personalizada e permite controlar o tamanho de cada pedido.
As regras de negociação são claras e simples, adequadas para o acompanhamento de tendências.
A EMA é, por natureza, atrasada, podendo perder fortes flutuações no curto prazo.
A ruptura de um negócio pode ser facilmente manipulada e requer um stop loss razoável.
A reversão da tendência pode levar a perdas significativas.
É necessário escolher a variedade de ações apropriada, não é adequado para ações com muita volatilidade.
Medidas de controle e otimização de riscos:
Ajustar adequadamente os parâmetros do EMA para otimizar a combinação de ciclos.
Adicionar filtros de outros indicadores para determinar a direção da tendência.
Estabeleça um ponto de parada razoável para controlar as perdas individuais
Adicionar outros conjuntos de indicadores, como MACD, KDJ, etc., para melhorar a eficácia da estratégia.
Adicionar o volume de transações para evitar falsas brechas.
Optimizar os parâmetros do ciclo do EMA para encontrar a melhor combinação.
Cessar a negociação em um determinado período de tempo, evitando os períodos de volatilidade do mercado.
Otimização dinâmica dos ciclos e parâmetros do EMA usando métodos de aprendizado de máquina.
A estratégia em geral é uma estratégia de acompanhamento de tendência mais típica. Ela aproveita os benefícios da EMA, formando um canal de negociação através da combinação de vários EMAs, gerando um sinal de negociação quando o preço quebra o canal. A vantagem da estratégia é que as regras de negociação são simples e claras, e é fácil seguir a tendência da linha média; A desvantagem é a sensibilidade ao ruído do mercado de curto prazo, com um certo atraso.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Scalping Strategy - EMA",
shorttitle="EMA Scalp",
overlay=true)
// User input for start date
startDateInput = input(title="Start Date", defval=timestamp("2024-02-01"))
// Calculate EMAs
ema_12 = ta.ema(close, 12)
ema_15 = ta.ema(close, 15)
ema_18 = ta.ema(close, 18)
ema_21 = ta.ema(close, 21)
ema_24 = ta.ema(close, 24)
// Plot EMAs
plot(ema_12, color=color.red, title="EMA 12")
plot(ema_15, color=color.orange, title="EMA 15")
plot(ema_18, color=color.yellow, title="EMA 18")
plot(ema_21, color=color.green, title="EMA 21")
plot(ema_24, color=color.blue, title="EMA 24")
// Define a start date for the strategy based on user input
isAfterStartDate = true
// Visualize the isAfterStartDate condition
bgcolor(isAfterStartDate ? color.new(color.green, 90) : na, title="After Start Date")
// Entry conditions
buy_condition = (ema_12 > ema_15) and (ema_15 > ema_18) and (ema_18 > ema_21) and (ema_21 > ema_24) and isAfterStartDate
sell_condition = (ema_12 < ema_15) and (ema_15 < ema_18) and (ema_18 < ema_21) and (ema_21 < ema_24) and isAfterStartDate
// Execute trades using conditional blocks
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)