O momentum do fim do mês rompe a estratégia de média móvel de 200 dias


Data de criação: 2023-12-08 16:02:08 última modificação: 2023-12-08 16:02:08
cópia: 1 Cliques: 795
1
focar em
1621
Seguidores

O momentum do fim do mês rompe a estratégia de média móvel de 200 dias

Visão geral

A estratégia baseia-se no ponto de hora do final do mês, para determinar se o preço da ação quebrou a média móvel de 200 dias, para capturar a direção da tendência do preço da ação. Crie uma posição multiponto quando o preço quebra a média de 200 dias, caso contrário, observe a liquidação.

Princípio da estratégia

  1. Usando a média móvel simples de 200 dias (dma200) como um indicador para determinar a tendência dos preços
  2. No último dia de negociação de cada mês, determinar se o preço de fechamento do dia é superior a 200 dma
  3. Caso o preço de fechamento quebre a média de 200 dias, uma posição a mais de uma posição completa é estabelecida no dia de negociação seguinte
  4. Se o preço de fechamento cair abaixo da média de 200 dias, o liquidação será aberta no dia de negociação seguinte
  5. Isso permite o efeito de acompanhamento de tendências, construindo posições quando o preço das ações entra em uma tendência de alta, evitando uma tendência de queda.

Análise de vantagens

  1. A vantagem da estratégia é que é simples, eficaz, fácil de entender e de implementar.
  2. A utilização de pontos de depósito no final do mês pode reduzir a frequência de negociação, reduzir os custos de negociação e os efeitos de deslizamento
  3. A linha de média diária de 200 é um indicador de tendência de médio e longo prazo muito comum e é válida para a maioria das ações
  4. Retirada estratégica e queda máxima são menores e o risco é controlado

Análise de Riscos

  1. A linha média de 200 dias pode não ser sensível o suficiente para capturar mudanças de preço em tempo hábil em algumas ações
  2. No final do mês, apenas um ponto de negociação foi aberto, podendo perder a oportunidade de cair no meio.
  3. A estratégia pode não ser acertada quando a tendência geral da bolsa é incerta.
  4. Os riscos devem ser reduzidos através da combinação de outros critérios.

Direção de otimização

  1. Pode-se considerar aumentar os pontos de construção no início ou no meio do mês, aumentando a frequência da estratégia
  2. Aumentar os indicadores de volatilidade, como o Binance, para evitar erros de negociação
    1. Avaliar a eficácia da combinação de diferentes parâmetros de equilíbrio para diferentes ações, procurando a melhor combinação de parâmetros
  3. Pode ser criado um mecanismo de gestão de posições dinâmicas, com parada ativa de perdas quando a retirada é excessiva

Resumir

A estratégia, em geral, é simples e prática, capturando efetivamente as tendências de preços de médio e longo prazo das ações, com retração e menor risco, através da ruptura da linha média de 200 dias no final do mês. A estabilidade e a taxa de retorno da estratégia podem ser ainda mais aumentadas com a combinação de mais julgamentos de indicadores e otimização dinâmica.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © muscleriot
//200 dma
//2000-2016 backtested 
//1 signal per month only at end of month
//If > 200DMA enter long
//If < 200DMA goto cash
//results: 318% drawdown 17% vs 125% with 55% drawdown for buy and hold
//@version=5
strategy("200DMA last DOM - ajh", overlay =true,default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Use 100% of  equity always

dma200 = ta.sma(close, 200)
plot(dma200, color=color.red, linewidth = 2)
//e =dayofmonth(time)
// backtesting date range
from_day = input.int(defval=1, title="From Day", minval=1, maxval=31)
from_month = input.int(defval=1, title="From Month", minval=1, maxval=12)
from_year = input.int(defval=2018, title="From Year", minval=1900)

to_day = input.int(defval=1, title="To Day", minval=1, maxval=31)
to_month = input.int(defval=1, title="To Month", minval=1, maxval=12)
to_year = input.int(defval=9999, title="To Year", minval=1900)

time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and 
   time < timestamp(to_year, to_month, to_day, 23, 59)



xLong = dayofmonth(time) == 30 and (close > dma200) ? true : na
xSell = dayofmonth(time) == 30 and (close < dma200) ? true : na
plotchar(xLong, "long","L", color=color.green)    
plotchar(xSell, "Sell","S", color=color.red)    
if (xLong == true) and time_cond
    strategy.entry("long", strategy.long)
if (xSell == true) and time_cond
    strategy.close("long")