Estratégia de saída antecipada de média móvel para lucro antecipado


Data de criação: 2023-12-01 14:32:48 última modificação: 2023-12-01 14:32:48
cópia: 2 Cliques: 605
1
focar em
1619
Seguidores

Estratégia de saída antecipada de média móvel para lucro antecipado

Visão geral

A estratégia baseia-se em uma média móvel de forcados e forcados mortos para realizar longos e longos tomados de posição, e, com base nas estatísticas de lucro dos antecedentes, apenas fechar perdas e paradas no final da tarde, para evitar ser bloqueado pela alta volatilidade do dia seguinte.

Princípio da estratégia

A estratégia usa uma média móvel de 3 diferentes parâmetros: 14 dias, 28 dias e 56 dias. Faça mais quando a 14a linha atravessa a 56a linha; faça zero quando a 14a linha atravessa a 56a linha. Esta é a maneira básica de seguir a tendência da linha longa.

A principal inovação da estratégia é que ela só faz um stop loss entre as quatro e as cinco da tarde. De acordo com as estatísticas, há uma probabilidade de 70% de que os preços mais altos e mais baixos do dia ocorram na primeira hora de abertura. Para evitar o impacto da estratégia por causa da alta volatilidade durante a abertura, o stop loss é feito apenas durante o período de negociação da tarde.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Seguir tendências médias e longas para evitar o ruído excessivo
  2. Utilizando o disco aberto de alta variação de características estatísticas para desenhar a lógica de parada de perda, eficazmente evitar falsas rupturas
  3. A ideia é simples e intuitiva, fácil de entender e modificar.

Riscos e soluções

A estratégia também apresenta os seguintes riscos:

  1. Se a tendência se inverter no início da negociação, você perderá a oportunidade. Você pode testar se a tendência é adequada para as próprias características da ação.
  2. Se houver uma forte flutuação após o lançamento, ainda há risco de cobertura. Pode-se testar a tolerância de parada apropriada.
  3. O intervalo de tempo de detecção não foi ajustado corretamente, o que pode levar a um excesso de compatibilidade. O intervalo de tempo de detecção deve ser ampliado.

Direção de otimização

A estratégia pode ser melhorada em alguns aspectos:

  1. Teste diferentes combinações de médias móveis para encontrar o parâmetro ideal
  2. Amplitude de suspensão ajustada de acordo com as características de flutuação de ações específicas
  3. Combinação de sinais de filtragem de volume de transação para evitar a captura
  4. Aumentar o stop loss dinâmico e rastrear a retirada após a ruptura

Resumir

A estratégia é clara e fácil de entender, usa efetivamente a lógica de stop loss do design de características de abertura, evita o cofre de alta volatilidade no início da negociação e vale a pena testar e otimizar ainda mais. Mas há também o risco de ser encaixado e perder oportunidades, e é necessário ajustar os parâmetros para cada ação.

Código-fonte da estratégia
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC 1st Trading Hour Walkover", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2025, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)

// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28

// Strategy.When to enter
if time >= testPeriodStart
    if time <= testPeriodStop
        strategy.entry("Go Long", strategy.long, 1.0, when=goLong)
        strategy.entry("Go Short", strategy.short, 1.0, when=goShort)

// Strategy.When to take profit 
if time >= testPeriodStart 
    if time <= testPeriodStop 
        strategy.exit("Close Long", "Go Long", profit=2000) 
        strategy.exit("Close Short", "Go Short", profit=2000) 

// Strategy.When to stop out 
// Some studies show that 70% of the days high low happen in the first hour 
// of trading. To avoid having that volatility fire our loss stop we 
// ignore price action in the morning, but allow stops to fire in the afternoon. 
if time("60", "1000-1600") 
    strategy.exit("Close Long", "Go Long", loss=500) 
    strategy.exit("Close Short", "Go Short", loss=500)