
Visão geral
O objetivo da estratégia é identificar potenciais pontos de reversão de tendência através da interseção de uma média móvel indexada de 20 períodos (EMA) e uma média móvel simples de 20 períodos (SMA). Dependendo da direção da interseção, é possível decidir sobre ou longe.
Princípio da estratégia
- Quando a EMA de 20 períodos atravessa a SMA de 20 períodos de baixo e o preço de fechamento é superior à EMA de 20 períodos, faça mais.
- Quando a EMA de 20 períodos atravessa a SMA de 20 períodos de cima para baixo e o preço de fechamento está abaixo da EMA de 20 períodos, faça um corte.
- Para fazer mais ofertas, se posicionar em um mercado com uma EMA de 20 ciclos e um SMA de 20 ciclos.
- Para fazer um forex, quando a 20 ciclo EMA e a 20 ciclo SMA se fecham.
A estratégia usa as funções de crossover e crossunder da ta para detectar a interseção de equiláteros.
Análise de vantagens
A estratégia combina a função de acompanhamento de tendências de médias móveis com a geração de sinais de cruzamentos de medias, com as seguintes vantagens:
- As médias móveis são eficazes para filtrar parte do ruído do mercado e identificar tendências de médio e longo prazo.
- A linha de equilíbrio é fácil de operar, permitindo uma visão clara do ponto de viragem do mercado.
- A configuração de parâmetros de 20 ciclos é válida para a maioria das ações e períodos de tempo, sem necessidade de ajustes frequentes.
- A correlação entre o preço de fechamento e a EMA evitou alguns sinais falsos.
- As regras são claras, simples, fáceis de entender e de implementar, adequadas para investidores de baixo nível.
Análise de Riscos
A estratégia também apresenta os seguintes riscos:
- As médias móveis apresentam atraso e podem perder a reversão de tendências de curto prazo e acentuada.
- O cruzamento de equilíbrio é propenso a produzir sinais de ruído, afetando a estabilidade da estratégia.
- A configuração de parâmetros de 20 ciclos fixos pode não ser muito adequada para algumas ações e precisa ser ajustada.
- A falta de um mecanismo de suspensão de perdas pode levar a perdas individuais maiores.
Resposta:
- Reduzir adequadamente o ciclo médio e acelerar a velocidade de reação.
- Adicione outras condições de filtragem para evitar falsos sinais.
- Teste e otimização de parâmetros e categorias de ações.
- Adição de Stop Loss para controlar o risco.
Direção de otimização
A estratégia também pode ser melhorada em:
- Adicionar outros indicadores de julgamento, construir estratégias de composição, como adicionar volume de transação, RSI e outros indicadores.
- Teste de otimização do ciclo de linha média e variedade de negociação, definindo parâmetros de adaptação.
- Construir mecanismos de saída dinâmicos, como paradas de rastreamento de tendências, paradas de tempo, etc.
- Adicionar funcionalidade de negociação algorítmica para negociação automática.
- Aumentar os algoritmos de aprendizagem de máquina para a adaptação e otimização de estratégias.
Resumir
A estratégia é simples e prática em geral, e é uma estratégia comum e eficaz para identificar possíveis reviravoltas de tendência usando a teoria da cruz equilánea. Mas há espaço para melhorias, como a adição de outros indicadores técnicos, configuração de parâmetros dinâmicos, métodos de parada e negociação algorítmica, que podem tornar a estratégia mais precisa, confiável e automatizada.
Código-fonte da estratégia
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA-SMA Crossover Strategy", overlay=true)
// Define the length of the moving averages
emaLength = 20
smaLength = 20
// Calculate moving averages
emaValue = ta.ema(close, emaLength)
smaValue = ta.sma(close, smaLength)
// Buy condition
buyCondition = ta.crossover(emaValue, smaValue) and close > emaValue
// Short sell condition
sellCondition = ta.crossunder(emaValue, smaValue) and close < emaValue
// Exit conditions for both Buy and Short sell
exitBuyCondition = ta.crossunder(emaValue, smaValue)
exitSellCondition = ta.crossover(emaValue, smaValue)
// Strategy logic
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
if (exitBuyCondition)
strategy.close("Buy")
if (exitSellCondition)
strategy.close("Sell")
// Plot the moving averages
plot(emaValue, color=color.blue, title="20 EMA")
plot(smaValue, color=color.red, title="20 SMA")