Estratégia de negociação de cruzamento de ponto de inflexão de média móvel


Data de criação: 2024-01-29 11:15:42 última modificação: 2024-01-29 11:15:42
cópia: 8 Cliques: 585
1
focar em
1617
Seguidores

Estratégia de negociação de cruzamento de ponto de inflexão de média móvel

Visão geral

A estratégia de negociação cruzada de pontos de viragem de média móvel é uma estratégia clássica de indicadores técnicos. A ideia central da estratégia é gerar sinais de compra e venda em combinação com médias móveis de diferentes períodos e aproveitar os pontos de viragem de média móvel para otimizar ainda mais a saída de negociação.

Princípio da estratégia

A estratégia usa principalmente duas médias móveis, uma com um período mais curto como linha rápida e outra com um período mais longo como linha lenta. Quando a linha rápida quebra a linha lenta de baixo, gera um sinal de compra; Quando a linha rápida quebra a linha lenta de cima, gera um sinal de venda. Este é o mecanismo de geração de sinal de negociação da estratégia clássica de cruzamento de médias móveis.

Além disso, a estratégia utiliza o ponto de saída de negociação da média móvel. Quando a linha rápida passa de alta para baixa, o multisíncrono sai do jogo; quando a linha rápida passa de baixa para alta, o mono vazio sai do jogo. O ponto de saída da média móvel pode capturar os momentos de reversão de curto prazo do mercado, o que ajuda a estratégia a interromper ou parar os prejuízos a tempo, aumentando a taxa de ganho geral.

Análise de vantagens

A estratégia de negociação cruzada de pontos de inflexão de média móvel tem as seguintes vantagens:

  1. A operação é simples e fácil de implementar. A estratégia usa apenas dois indicadores: a média móvel e o indicador ROC. A implementação do código não é complexa.

  2. É resistente a perdas contínuas. A média móvel tem uma certa latência e uma tendência de preços suaves, o que pode filtrar parte do ruído e evitar que haja demasiadas negociações inválidas em tendências de choque.

  3. A capacidade de controlar efetivamente os prejuízos unilaterais. Utilizando o ponto de viragem da média móvel para parar os prejuízos a tempo, pode reduzir a ocorrência de prejuízos unilaterais significativos.

  4. Ampla aplicabilidade. O princípio da estratégia é simples e pode ser aplicado a várias variedades e diferentes quadros de tempo de negociação, como dia e hora. Há muito espaço para otimização de parâmetros.

  5. Estabilidade de ganhos. Em comparação com a estratégia de perseguir pontos quentes do mercado, esta estratégia é orientada para o controle de risco, não busca ganhos exagerados, mas pode obter ganhos positivos estáveis.

Análise de Riscos

A estratégia de negociação de pontos de inflexão de médias móveis também apresenta alguns riscos, principalmente nos seguintes aspectos:

  1. O atraso da média móvel. Quando a velocidade é alta, o sinal de cruzamento da média móvel tem um atraso e pode perder o melhor momento de entrada.

  2. O tempo de vazio é longo. Esta estratégia sai mais cedo, mas o sinal de entrada é mais lento. Isso pode levar a que haja excesso de tempo de vazio em alguns momentos. Durante o período de vazio, você perderá certas oportunidades de lucro no mercado.

  3. Optimização de parâmetros é muito difícil. A escolha de parâmetros como a duração da média móvel, o ciclo de ROC pode ter um grande impacto no desempenho da estratégia. Mas a otimização de parâmetros requer um grande volume de dados históricos para o teste de retorno, a otimização é muito difícil.

  4. Quando ocorrem grandes turbulências, a média móvel produz várias cruzamentos ineficazes, o que afeta a performance da estratégia.

Direção de otimização

A estratégia de negociação pode ser melhorada em alguns aspectos:

  1. Combinação de indicadores de tendência de ondas. Adição de indicadores como ADX, ATR, etc., para determinar o estado da tendência. Ao não haver uma tendência clara, feche a estratégia com o desvalorização, evitando negociações inválidas.

  2. Combinação de múltiplos quadros temporais. Em quadros temporais mais elevados, julgue a direção da tendência principal e evite a negociação contracorrente.

  3. Optimizar a auto-adaptação dos parâmetros. Permitir que parâmetros como o comprimento da média móvel sejam ajustados de acordo com a volatilidade do mercado em tempo real, aumentando a robustez dos parâmetros.

  4. Identificação de padrões. Identificação de padrões de fusão para filtrar falsos sinais nos pontos de interseção MA.

Resumir

A estratégia de negociação de cruzamento de pontos de inflexão de média móvel é, em geral, uma estratégia de equilíbrio entre riscos e ganhos. Ela tem vantagens como facilidade de implementação, resistência a perdas contínuas e estabilidade de ganhos, mas também há problemas como atraso na média móvel, tempo de posição vazia excessivo.

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

//@version=4
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy with MA Turning Point Exits", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("SMA", "1st MA Type", options=["SMA", "EMA"])

ma2 = input(50, title="2nd MA Length")
type2 = input("SMA", "2nd MA Type", options=["SMA", "EMA"])

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


longCondition = crossover(price1, price2)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(price1, price2)
if (shortCondition)
    strategy.entry("Short", strategy.short)

lookback1 = input(1, "Lookback 1")
roc1 = roc(price1, lookback1)

ma1up = false
ma1down = false
ma2up = false
ma2down = false

ma1up := nz(ma1up[1])
ma1down := nz(ma1down[1])
ma2up := nz(ma2up[1])
ma2down := nz(ma2down[1])

trendStrength1 = input(2, title="Minimum slope magnitude * 100", type=float) * 0.01

if crossover(roc1, trendStrength1)
    ma1up := true
    ma1down := false
    
if crossunder(roc1, -trendStrength1) 
    ma1up := false
    ma1down := true

shortexitCondition = ma1up and ma1down[1]
if (shortexitCondition)
    strategy.close("Short")

longexitCondition = ma1down and ma1up[1]
if (longexitCondition)
    strategy.close("Long")