Estratégia de acompanhamento de tendências com base em médias móveis


Data de criação: 2023-12-20 14:23:49 última modificação: 2023-12-20 14:23:49
cópia: 0 Cliques: 771
1
focar em
1621
Seguidores

Estratégia de acompanhamento de tendências com base em médias móveis

Visão geral

A estratégia baseia-se no modelo de seleção de ações de Mark Menevigne, combinado com o indicador de média móvel para determinar a tendência do preço das ações, permitindo comprar e parar automaticamente. A estratégia determina principalmente se as ações estão em uma tendência ascendente e se romperam a média móvel crítica, gerando assim um sinal de compra.

Princípio da estratégia

A estratégia julga principalmente as seguintes condições, gerando um sinal de compra quando as condições são simultaneamente satisfeitas:

  1. Preços de ações acima das médias móveis de 150 e 200 dias
  2. A média móvel de 150 dias é maior do que a média móvel de 200 dias.
  3. A média móvel diária de 200 está em alta no último mês
  4. A média móvel de 50 dias é superior à média móvel de 150 e 200 dias.
  5. Preço atual acima da média móvel de 50 dias
  6. O preço atual das ações subiu mais de 25% em relação ao mínimo de 52 semanas.
  7. O preço das ações está perto de um máximo de 52 semanas.

Quando as condições acima são preenchidas, a estratégia determina que o preço da ação está em fase ascendente, gerando um sinal de compra.

Além disso, a estratégia simultaneamente estabelece uma linha de stop-loss, quando o preço da ação retrocede 5% ou sobe 10% a partir do ponto mais alto.

Vantagens estratégicas

  1. A ideia de opção de ações de Mark Menevigne para aumentar a probabilidade de lucro
  2. Utilize a média móvel múltipla para confirmar a tendência e evitar pontos de compra perdidos
  3. Estabelecer mecanismos de suspensão para evitar grandes perdas

Análise de Riscos

  1. Preços das ações podem se ajustar em curto prazo, o que pode desencadear um stop loss
  2. A média móvel não é um bom indicador de tendências, podendo gerar falsas rupturas.
  3. A proporção de stop loss não é perfeita e pode parar prematuramente ou expandir os prejuízos

Direção de otimização

  1. Combinações de médias móveis para testar diferentes parâmetros
  2. Os outros indicadores técnicos podem ser incluídos para avaliar a oportunidade de compra.
  3. Parâmetros de proporção que permitem otimizar o stop loss

Resumir

A estratégia, em geral, segue a lógica do comércio de tendências, gerando um sinal de compra com base na confirmação de uma tendência ascendente do preço das ações. Ao mesmo tempo, configura um mecanismo de controle de risco de perda. Ao otimizar os parâmetros detalhados, a estabilidade e a lucratividade da estratégia podem ser melhoradas.

Código-fonte da estratégia
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Pure Mark Minervini 10%TP 5%CL", pyramiding = 0, commission_type=strategy.commission.percent, commission_value=0.08, overlay=true)

ma50 = sma(close,50)
ma150 = sma(close,150)
ma200 = sma(close,200)
ma200_22 = ma200[22]

high_loopback = input(260, "High Lookback Length")
low_loopback = input(260, "Low Lookback Length")
highest_price = highest(high, high_loopback)
lowest_price = lowest(low, low_loopback)
above52lo = ((close/lowest_price)-1)*100
below52hi = (1-(close/highest_price))*100
ep = strategy.position_avg_price

trigger = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
var label maLabel = na
if (trigger)
    yLocation = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
         yloc.abovebar :
         yloc.belowbar

    // labelStyle = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
    //      label.style_labeldown :
    //      label.style_labelup

buy = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
sell = close>ep*1.1 or close<ep*0.95

strategy.entry("TF", strategy.long, when = buy)
strategy.close("TF", when = sell)