Estratégia de Crossover de Média Móvel Exponencial


Data de criação: 2024-01-08 11:30:21 última modificação: 2024-01-08 11:30:21
cópia: 0 Cliques: 560
1
focar em
1617
Seguidores

Estratégia de Crossover de Média Móvel Exponencial

Visão geral

A estratégia de cruzamento de mediana é uma estratégia de negociação simples e quantitativa que segue a tendência dos preços. Utiliza como sinal de compra e venda o cruzamento entre duas médias móveis de índices com diferentes parâmetros. Produz um sinal de compra quando atravessa a mediana de longo prazo acima da mediana de curto prazo e um sinal de venda quando atravessa a mediana de longo prazo abaixo da mediana de curto prazo.

Princípio da estratégia

A lógica central da estratégia baseia-se na teoria da linha média. A média móvel do índice é capaz de suavizar efetivamente os movimentos de preços e determinar a direção da tendência dos preços. A média rápida é capaz de responder rapidamente às mudanças de preço; A média lenta fornece referência à direção da tendência dos preços.

Concretamente, a estratégia define primeiro duas médias móveis de índices: fib_level e fib_price. O fib_level é definido pelo usuário, o fib_price é calculado com base no preço máximo e mínimo dos últimos 100 bares. Quando o preço de fechamento é ultrapassado ou ultrapassado pelo fib_price, um sinal de compra e venda é gerado, respectivamente.

Análise de vantagens

  • Usando um sistema de dupla linha para determinar a direção da tendência dos preços, evitando sinais errados
  • A política pode ser personalizada de acordo com os parâmetros definidos pelo usuário
  • Estabelecer um ponto de parada favorável ao controle de risco

Análise de Riscos

  • A linha média está atrasada e pode ter perdido o ponto de viragem
  • Mais cruzamentos entre duas linhas médias aumentam os custos de transação e a perda de pontos de deslizamento
  • Ponto de parada mal configurado, que pode parar prematuramente ou causar perdas excessivas

Pode-se reduzir os sinais errados através da otimização dos parâmetros de linha média, usando o sistema de três linhas médias, ou em combinação com outros indicadores de julgamento. Ao mesmo tempo, relaxar adequadamente os pontos de parada, para evitar que a perda seja muito frequente.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar a configuração de parâmetros de períodos medidos. Teste combinações de parâmetros de períodos de diferentes comprimentos para encontrar o melhor parâmetro.

  2. Aumentar o filtro de indicadores como Volume. Quando o volume aumenta, gera um sinal de compra, quando o volume cai, gera um sinal de venda, para evitar sinais errados quando os preços flutuam drasticamente.

  3. Otimizar automaticamente os parâmetros usando algoritmos de aprendizagem de máquina. Introduzir dados históricos no modelo e treinar para obter melhores conjuntos de parâmetros.

  4. Adicione um mecanismo de parada móvel na posição de parada. Deixe a linha de parada subir com o aumento dos lucros, evitando a parada prematura.

Resumir

A estratégia de cruzamento de linha de equilíbrio indexada é, em geral, uma estratégia de negociação quantitativa mais simples e prática. Ela usa a vantagem da linha de equilíbrio para determinar a tendência do preço e definir um stop loss para controlar o risco. A estratégia é fácil de entender, a configuração dos parâmetros é flexível e se aplica a diferentes variedades de negociação quantitativa.

Código-fonte da estratégia
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fibonacci Strategy", overlay=true)

// Define Fibonacci 0.5 level
fib_level = input(0.5, title="Fibonacci Level")

// Calculate Fibonacci 0.5 level price
fib_price = ta.lowest(low, 100) + (ta.highest(high, 100) - ta.lowest(low, 100)) * fib_level

// Define entry and exit conditions
long_condition = ta.crossover(close, fib_price)
short_condition = ta.crossunder(close, fib_price)

// Set exit points (using previous high or low)
long_exit = ta.highest(high, 10)
short_exit = ta.lowest(low, 10)

// Plot Fibonacci 0.5 level
plot(fib_price, "Fib 0.5", color=color.blue, linewidth=1, style=plot.style_circles)

// Initialize variables
var inLong = false
var inShort = false

// Set trading signals
if (long_condition)
    if not inLong
        strategy.entry("Buy", strategy.long)
        inLong := true
    strategy.exit("Exit", "Buy", limit=long_exit)

if (short_condition)
    if not inShort
        strategy.entry("Sell", strategy.short)
        inShort := true
    strategy.exit("Exit", "Sell", limit=short_exit)

if (ta.crossover(close, long_exit) or ta.crossunder(close, short_exit))
    inLong := false
    inShort := false