Acompanhe regularmente a estratégia de preço médio mínimo


Data de criação: 2024-01-17 17:57:58 última modificação: 2024-01-17 17:57:58
cópia: 4 Cliques: 605
1
focar em
1617
Seguidores

Acompanhe regularmente a estratégia de preço médio mínimo

Visão geral

A principal ideia da estratégia é rastrear periodicamente o preço médio de baixa após o fim de uma queda de curto prazo. Concretamente, a estratégia identifica o momento em que a queda de curto prazo termina no final de cada mês e, portanto, adiciona posições regularmente; ao mesmo tempo, limpa a posição no final da linha K.

Princípio da estratégia

  1. Determinação de sinais de rastreamento periódico:*Após 30 linhas K (que representam um mês), julga-se que chegou ao ponto de rastreamento periódico e emite o primeiro sinal.
  2. Determinação do fim da queda a curto prazo: Usando o indicador MACD para determinar a tendência, quando o MACD se desvia e atravessa a linha de sinal, considera-se que a queda a curto prazo terminou.
  3. Regra de entrada: liberar o sinal de rastreamento e abrir uma posição quando o sinal de rastreamento periódico e o sinal de término de queda de curto prazo são simultaneamente satisfeitos.
  4. Regra de saída: Quando o último K-line fechar, liquide toda a posição.

Isso é o processo de negociação e o princípio básico da estratégia. Vale a pena notar que a estratégia usa o rastreamento de fundos de US \( 1.000 por mês por padrão, que será ampliado para 33 meses em backtest, ou seja, um total de US \) 33.000 em investimentos.

Análise de vantagens

A maior vantagem da estratégia é a capacidade de construir posições regularmente em níveis baixos, obtendo custos de compra mais favoráveis a longo prazo, gerando uma taxa de retorno mais alta. Além disso, o uso do indicador MACD para identificar pontos de compra de curto prazo também é mais confiável e claro, não entra em um beco sem saída, o que também pode evitar perdas até certo ponto.

No geral, é uma estratégia de custo-benefício, mais adequada para quem possui linhas médias e longas, que compram em lotes regulares e obtêm retornos mais satisfatórios.

Riscos e soluções

O principal risco da estratégia é a incapacidade de determinar com precisão o ponto final de uma queda a curto prazo, o MACD pode ter um atraso no tempo de conclusão da queda, o que pode levar ao custo de não comprar no melhor. Além disso, o investimento disperso de fundos também aumenta os custos operacionais.

Pode-se considerar a inclusão de mais indicadores para determinar a tendência, como a linha de Bryn, KDJ, etc., que podem determinar antecipadamente o momento da reversão. Ao mesmo tempo, pode-se otimizar a quantidade de capital investido mensalmente para reduzir o impacto do custo operacional sobre a receita.

Direção de otimização

A estratégia pode ser melhorada em várias direções:

  1. Otimizar o período de tempo de rastreamento regular, por exemplo, mudando para rastreamento regular a cada dois meses, reduzindo o problema de transações muito frequentes.

  2. Combinado com mais indicadores para determinar o momento em que a queda de curto prazo termina, o ponto de compra é mais próximo do ponto mais baixo.

  3. Otimizar a quantidade mensal de investimentos e encontrar a melhor configuração.

  4. Tente incorporar estratégias de parada de perdas para evitar perdas em quedas profundas.

  5. Teste os efeitos de diferentes períodos de posse sobre o rendimento e encontre o número de dias de posse ideal.

Resumir

A estratégia de preço médio de vale-baixo acompanha periodicamente a ideia geral de forma clara e fácil de entender. Com a combinação de adição regular e julgamento de curto prazo, é possível obter um preço de custo mais favorável. Os investidores que possuem a estratégia podem obter um retorno estável, adequado para investidores que buscam o valor do investimento a longo prazo.

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"}]
*/

// 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 v2',
 title                 = 'DCA After Downtrend v2 (by BHD_Trade_Bot)',
 overlay               = true,
 calc_on_every_tick    = false,
 calc_on_order_fills   = false,
 use_bar_magnifier     = false,
 pyramiding            = 1000,
 initial_capital       = 0,
 default_qty_type      = strategy.cash,
 default_qty_value     = 1000,
 commission_type       = strategy.commission.percent,
 commission_value      = 1.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() => time >= start_time and time <= end_time ? true : false
h1_last_bar = (math.min(end_time, timenow) - time)/1000/60/60 < 2



// 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

// BHD Unit
bhd_unit = ta.rma(high - low, 200) * 2
bhd_upper = ema200 + bhd_unit
bhd_upper2 = ema200 + bhd_unit * 2
bhd_upper3 = ema200 + bhd_unit * 3
bhd_upper4 = ema200 + bhd_unit * 4
bhd_upper5 = ema200 + bhd_unit * 5

bhd_lower = ema200 - bhd_unit
bhd_lower2 = ema200 - bhd_unit * 2
bhd_lower3 = ema200 - bhd_unit * 3
bhd_lower4 = ema200 - bhd_unit * 4
bhd_lower5 = ema200 - bhd_unit * 5

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



// ENTRY CONDITIONS

// 24 * 30 per month
entry_condition1 = nPastCandles > entryNumber * 24 * 30

// End of downtrend
entry_condition2 = emacd < 0 and hist < 0 and hist > hist[2]

ENTRY_CONDITIONS = entry_condition1 and entry_condition2


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

// CLOSE CONDITIONS

// Last bar
CLOSE_CONDITIONS = barstate.islast or h1_last_bar

if CLOSE_CONDITIONS
    strategy.close_all()



// Draw
colorRange(src) =>
    if src > bhd_upper5
        color.rgb(255,0,0)
    else if src > bhd_upper4
        color.rgb(255,150,0)
    else if src > bhd_upper3
        color.rgb(255,200,0)
    else if src > bhd_upper2
        color.rgb(100,255,0)
    else if src > bhd_upper
        color.rgb(0,255,100)
    else if src > ema200
        color.rgb(0,255,150)
    else if src > bhd_lower
        color.rgb(0,200,255)
    else if src > bhd_lower2
        color.rgb(0,150,255)
    else if src > bhd_lower3
        color.rgb(0,100,255)
    else if src > bhd_lower4
        color.rgb(0,50,255)
    else
        color.rgb(0,0,255)
        
bhd_upper_line = plot(bhd_upper, color=color.new(color.teal, 90))
bhd_upper_line2 = plot(bhd_upper2, color=color.new(color.teal, 90))
bhd_upper_line3 = plot(bhd_upper3, color=color.new(color.teal, 90))
bhd_upper_line4 = plot(bhd_upper4, color=color.new(color.teal, 90))
bhd_upper_line5 = plot(bhd_upper5, color=color.new(color.teal, 90))

bhd_lower_line = plot(bhd_lower, color=color.new(color.teal, 90))
bhd_lower_line2 = plot(bhd_lower2, color=color.new(color.teal, 90))
bhd_lower_line3 = plot(bhd_lower3, color=color.new(color.teal, 90))
bhd_lower_line4 = plot(bhd_lower4, color=color.new(color.teal, 90))
bhd_lower_line5 = plot(bhd_lower5, color=color.new(color.teal, 90))
// fill(bhd_upper_line5, bhd_lower_line5, color=color.new(color.teal, 95))

plot(ema50, color=color.orange, linewidth=3)
plot(ema200, color=color.teal, linewidth=3)
plot(close, color=color.teal, linewidth=1)
plot(close, color=colorRange(close), linewidth=3, style=plot.style_circles)