
Esta estratégia é baseada em dois indicadores de média móvel ((EMA) de ouro e forquilha para produzir um sinal de negociação. Concretamente, a estratégia calcula o 50 ciclo de EMA e 200 ciclo de EMA, quando o curto prazo EMA ((50 ciclo) atravessou o longo prazo EMA ((200 ciclo)), produzindo um sinal de compra; quando o curto prazo EMA abaixo atravessou o longo prazo EMA, produzindo um sinal de venda. Isso pode efetivamente capturar as mudanças de tendência de curto e longo prazo no preço das ações, formando uma estratégia de negociação dinâmica.
Calcule as médias móveis de dois índices: o EMA de 50 e o EMA de 200 ciclos. O EMA atribui maior peso aos dados mais recentes e é mais sensível às mudanças de preços de curto prazo.
Determinação de sinais de transação:
Execução de transações de acordo com o sinal: comprar mais quando o sinal é comprado e vender menos quando o sinal é vendido.
Os EMAs e os sinais de negociação podem ser traçados em gráficos para facilitar o julgamento intuitivo.
A estratégia tem as seguintes vantagens:
Capturar a reversão de uma grande tendência é especialmente adequado para a tendência e a correção de mercado.
As regras de decisão são simples, claras, fáceis de implementar e de avaliar.
A EMA suaviza os dados de preços, ajudando a identificar sinais de tendência, eliminando o ruído.
O ciclo de EMA pode ser ajustado para diferentes períodos de detenção.
Combinado com outros indicadores, pode filtrar ainda mais os sinais e otimizar a estratégia.
A estratégia também apresenta alguns riscos:
Em um mercado em choque, pode haver muitos sinais errados e muitas transações inválidas.
A robustez é pior quando se baseia em uma única regra de indicadores.
O risco de expansão dos prejuízos não foi levado em conta nas regras de stop loss.
O atraso da EMA pode ter perdido o melhor ponto de participação nas mudanças de preço.
O desempenho do disco rígido pode ser diferente do resultado do teste de ressonância para determinar os melhores parâmetros.
As medidas de controle e otimização de riscos correspondentes incluem: filtragem de sinais em combinação com outros indicadores, configuração de mecanismos de parada de perdas, introdução de modelos de aprendizagem de máquina, etc.
A estratégia pode ser melhorada em vários aspectos:
Em combinação com outros indicadores (como MACD, KD, etc.), a robustez da estratégia pode ser melhorada através da implementação de modelos multifatoriais.
Adotar um mecanismo de stop-loss. Como definir um stop-loss de porcentagem fixa ou stop-loss aleatório. Controlar o máximo de perdas em uma única transação.
O uso de métodos de aprendizagem de máquina para obter os melhores parâmetros. Melhorar as regras de julgamento de sinais. Melhorar a estabilidade da estratégia.
De acordo com os resultados do teste de retorno, define a combinação de ciclos de EMA mais adequada. Adapte os parâmetros de acordo com a situação do mercado.
Avaliação do impacto dos custos de transação. Adição de um modelo de ponto de deslizamento e consideração de comissões. Optimização da gestão de posições.
Esta estratégia é, em geral, uma estratégia de negociação mais simples do que a clássica. As regras de tomada de decisão baseadas nos indicadores EMA. Embora tenha certa eficácia no tempo, há algumas falhas e espaço para otimização.
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Golden Crossover Strategy", overlay=true)
// Input parameters
fastLength = input(50, title="Fast EMA Length")
slowLength = input(200, title="Slow EMA Length")
// Calculate EMAs using ta.ema
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Plot EMAs on the chart
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
// Strategy logic
longCondition = ta.crossover(fastEMA, slowEMA)
shortCondition = ta.crossunder(fastEMA, slowEMA)
// Execute orders
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)
// Plot buy and sell signals on the chart
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)