Estratégia de reversão de DCA de fim de mês


Data de criação: 2023-10-08 16:12:29 última modificação: 2023-10-08 16:12:29
cópia: 1 Cliques: 734
1
focar em
1617
Seguidores

Visão geral

O objetivo desta estratégia é identificar o ponto final da tendência de queda de curto prazo do ativo e, a partir desse ponto, investir um determinado valor fixo na compra do ativo. Assim, o investimento pode ser fixado a um preço de custo menor após o início da reversão do ativo.

Princípios

A estratégia é baseada na operação do quadro de tempo mensal. Há 240 linhas K de 1 hora por mês para determinar o momento em que a tendência se inverte.

Concretamente, a estratégia calcula a diferença entre a linha rápida e a linha lenta do EMA_CD e EMA_A linha de sinal do CD, quando a linha rápida atravessa a linha de sinal, determina o fim da tendência de queda de curto prazo e emite um sinal de compra.

Depois de emitir um sinal de compra, a estratégia se liquida no final do mês. Depois, o processo é repetido no segundo mês, com compras regulares e uma duração de um mês.

Isso nos permite respirar baixo no final de uma queda de curto prazo e manter o investimento fixo.

Vantagens

A principal vantagem dessa estratégia é que pode filtrar oscilações e comprar apenas quando a tendência se inverte, o que permite um investimento fixo a um preço mais favorável.

Além disso, o uso da EMA para determinar o ponto de reversão de tendência pode ser mais estável e preciso do que apenas a reversão da linha K. A EMA pode neutralizar o impacto do ruído do mercado de curto prazo no tempo de compra.

Por fim, o Stop Loss pode ser definido no final do mês para bloquear o resultado de cada mês e limitar o máximo de perdas por mês.

Riscos

O maior risco dessa estratégia é que o preço continue a cair após a compra, resultando em perdas de parada no final do mês. Isso geralmente é causado por erros de julgamento.

Pode-se ajustar os parâmetros do ciclo EMA para otimizar o julgamento, ou combinar com outros indicadores como o RSI para confirmar o sinal de reversão.

Outro risco é a configuração do ponto de parada. Se o ponto de parada for pequeno demais, ele pode ser interrompido por flutuações de curto prazo, e se for grande demais, ele não pode limitar os prejuízos. É necessário testar diferentes pontos de parada para encontrar o melhor parâmetro.

Direção de otimização

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

  1. Optimizar os parâmetros do ciclo EMA para encontrar a melhor combinação de parâmetros para determinar a reversão de tendência

  2. Adicionar filtros de outros indicadores, como RSI, para confirmar o sinal de inversão

  3. Testar diferentes pontos de parada para encontrar a melhor posição de parada para limitar perdas e não ser arbitragem

  4. Pode-se considerar a adição de stop loss móvel com base em stop loss, ajustando a posição de stop loss em tempo real de acordo com o preço

  5. Pode-se testar diferentes períodos de tempo, como o dia-a-dia e o dia-a-dia, para ver qual período funciona melhor.

Resumir

A estratégia é clara e simples, com um indicador de EMA para avaliar a reversão de tendências de curto prazo e, no final do ponto de reversão, é possível efetivamente filtrar o mercado de choque para o investimento em preços mais baixos. O espaço para otimização da estratégia é principalmente na otimização de parâmetros e no ajuste da estratégia de parada de perdas.

Código-fonte da estratégia
/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 1h
basePeriod: 15m
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/
// © BHD_Trade_Bot

// @version=5
// strategy(
//  shorttitle            = 'DCA After Downtrend',
//  title                 = 'DCA After Downtrend (by BHD_Trade_Bot)',
//  overlay               = true,
//  calc_on_every_tick    = true,
//  calc_on_order_fills   = true,
//  use_bar_magnifier     = true,
//  pyramiding            = 100,
//  initial_capital       = 0,
//  default_qty_type      = strategy.cash,
//  default_qty_value     = 1000,
//  commission_type       = strategy.commission.percent,
//  commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2017)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time   = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time     = timestamp(end_year, end_month, end_day, 23, 59)

window() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 20)
hist = emacd - emacd_signal

// Count n candles after x long entries
var int nPastCandles = 0
var int entryNumber = 0
nPastCandles := nPastCandles + 1



// ENTRY CONDITIONS

// 8 hours per day => 240 hours per month
entry_condition1 = nPastCandles > entryNumber * 240

// End of downtrend
entry_condition2 = ta.crossover(emacd, emacd_signal)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2


if ENTRY_CONDITIONS and window()
    entryNumber := entryNumber + 1
    entryId = 'Long ' + str.tostring(entryNumber)
    strategy.entry(entryId, strategy.long)
    
    

// CLOSE CONDITIONS

// Last bar
CLOSE_CONDITIONS = barstate.islast

if CLOSE_CONDITIONS
    strategy.close_all()


    
// Draw
plot(ema50, color=color.orange, linewidth=3)
plot(ema200, color=entry_condition1 ? color.green : color.red, linewidth=3)