Esta estratégia usa duas linhas EVWMA com períodos diferentes para gerar crossovers e produzir sinais de compra e venda. Quando a linha de curto período cruza a linha de longo período, gera um sinal de compra. Quando a linha de curto período cruza abaixo da linha de longo período, gera um sinal de venda.
A estratégia identifica as alterações de tendência através do cálculo e cruzamento de duas linhas EVWMA com períodos diferentes.
Especificamente, primeiro calcula duas linhas EVWMA:
Linha de curto prazo m1, com duração de período1, por defeito a 5
Linha de período longo m2, com duração de período2, por defeito 40
Em seguida, utiliza as funções de cruzamento e de cruzamento para determinar as situações de cruzamento entre m1 e m2:
Se m1 cruzar sobre m2, ele gera um sinal de compra e executa a operação longa
Se m1 cruzar abaixo de m2, ele gera um sinal de venda e executa uma operação curta
Observe que a EVWMA dá mais peso aos dados recentes em comparação com a média móvel simples.
data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume_price/nb_floating_shares)
Onde nz ((data[1]) é o valor EVWMA do período anterior, nb_floating_shares é o volume total do período, volume é o volume do período atual e volume_preço é o volume de negócios do período atual.
As vantagens desta estratégia incluem:
A EVWMA responde mais rapidamente às alterações de preços e melhora as oportunidades de lucro
Crossover de linhas duplas EVWMA identifica pontos de viragem em tempo hábil
Lógica simples e fácil de implementar
Períodos de duração personalizáveis para adaptar os diferentes ambientes de mercado
Nenhuma otimização complexa de parâmetros necessária e fácil para negociação ao vivo
Há também alguns riscos com esta estratégia:
Os crossovers podem gerar sinais inválidos excessivos sem filtrar o ruído do mercado
Dificuldade de identificar pontos de inversão da tendência e riscos de falta de inversões
Nenhum stop loss ou take profit, incapaz de controlar eficazmente os riscos
Optimização de parâmetros insuficiente leva a configurações de período inadequadas
Algumas orientações para melhorar a estratégia:
Adicionar stop loss e take profit para controlar estritamente os riscos
Otimizar o comprimento do período para encontrar os melhores parâmetros
Adicionar filtro de volume para reduzir transações inválidas
Combinar com indicadores de reversão para evitar reversões em falta
Optimização dinâmica dos parâmetros com base nas alterações do mercado
Diferenciar os mercados dos touros e dos ursos e utilizar parâmetros diferentes
Introduzir modelos de aprendizagem de máquina para determinar o calendário de negociação com base em big data
Em resumo, esta estratégia cruzada EVWMA pode identificar efetivamente as mudanças de tendência e gerar sinais de negociação, calculando e cruzando linhas EVWMA duplas. A lógica é simples, mas há riscos e direções de melhoria. Ao otimizar o stop loss, seleção de parâmetros, integração de outros indicadores, etc., a estratégia pode ser fortalecida para negociação ao vivo.
/*backtest start: 2023-08-18 00:00:00 end: 2023-08-26 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Elastic Volume Weighted Moving Average Cross Strategy", shorttitle="EVWMA Cross", overlay=true) length1=input(5, title="EVWMA Short") length2=input(40, title="EVWMA Long") nbfs1=sum(volume, length1) nbfs2=sum(volume, length2) medianSrc=close calc_evwma(price, length, nb_floating_shares) => data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares) data m1=calc_evwma(medianSrc, length1, nbfs1) m2=calc_evwma(medianSrc, length2, nbfs2) if (crossover(m1, m2)) strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE") if (crossunder(m1, m2)) strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE") p1=plot(m1,color=orange,linewidth=2, title="evwma") p2=plot(m2,color=orange,linewidth=2, title="evwma")