Estratégia de compra de três estágios de rastreamento dinâmico de ATH de declínio multinível

ATH DCA
Data de criação: 2024-12-20 14:53:04 última modificação: 2024-12-20 14:53:04
cópia: 0 Cliques: 372
1
focar em
1617
Seguidores

Estratégia de compra de três estágios de rastreamento dinâmico de ATH de declínio multinível

Visão geral

Esta é uma estratégia de compra de níveis múltiplos, baseada no acompanhamento da dinâmica dos preços históricos mais altos (ATH). A estratégia é executada por compra em lotes, monitorando a amplitude da retirada do preço do ATH, em diferentes níveis de queda, e vende-se com lucro quando o preço se aproxima do ATH. A estratégia aproveita a volatilidade do mercado para reduzir o custo geral de manutenção de posições por meio de um método sistemático de construção de lotes.

Princípio da estratégia

A lógica central da estratégia inclui os seguintes elementos-chave:

  1. ATH dinâmico: continua a atualizar o preço mais alto da história e restabelece a marca de compra ao atingir um novo máximo
  2. Trigger de queda de três níveis: estabeleça pontos de compra em retrações de 10%, 15% e 20% respectivamente
  3. Gerenciamento de fundos fixos: o mesmo montante é usado em cada compra (US$ 1000)
  4. Retirada do mecanismo de liquidação: liquidação de todas as posições quando o preço retorna à faixa de 5% da ATH A estratégia utiliza esta forma progressiva de construção de posições para reduzir gradualmente o custo médio de manutenção de posições durante a queda e para bloquear os lucros com a unificação de posições em equilíbrio quando o mercado se reverte.

Vantagens estratégicas

  1. Dispersão do risco: redução do risco de escolha do ponto de tempo por meio da construção em lotes
  2. Otimização de custos: reduzir o custo médio de manutenção de posições com o uso de retrações mais fortes
  3. Acompanhamento de tendências: atualizações dinâmicas para garantir a continuidade da ATH em uma tendência ascendente
  4. Eficiência de capital: a distribuição de fundos fixos garante o controle do uso de fundos
  5. Execução automatizada: condições de entrada e saída claras para facilitar a operação sistemática

Risco estratégico

  1. Risco de reversão de tendência: pode ocorrer uma sequência de trancas em uma tendência de baixa de longo prazo
  2. Risco de esgotamento de fundos: os fundos disponíveis podem ser rapidamente esgotados em mercados altamente voláteis
  3. Risco de perda de oportunidade: condições de compra rígidas podem fazer com que você perca boas oportunidades
  4. Risco de equilíbrio: condições de equilíbrio uniformes podem não ser adequadas a todas as circunstâncias do mercado Recomenda-se que esses riscos sejam gerenciados através da definição de limites máximos de retirada e controle de posição geral.

Direção de otimização da estratégia

  1. Introdução de filtros de tendência: adicionar uma linha média ou um indicador de momentum para confirmar a tendência geral
  2. Gestão de fundos otimizada: Ajuste o montante de cada compra de acordo com a dinâmica da volatilidade
  3. Melhorar o mecanismo de liquidação: aumentar as opções de liquidação por lotes para evitar o risco de liquidação por preço único
  4. Adicionar um mecanismo de stop loss: definir um stop loss absoluto para controlar o máximo de risco
  5. Optimização de parâmetros dinâmicos: ajuste automático de níveis de compra de acordo com diferentes ciclos de mercado

Resumir

A estratégia aproveita bem a volatilidade do mercado por meio de um mecanismo sistematizado de construção de posições em lotes e de posições uniformes. A operação bem-sucedida da estratégia depende de um mercado com volatilidade suficiente e tendências ascendentes finais. Com o controle razoável do risco e a otimização dos parâmetros, a estratégia pode manter um desempenho estável em diferentes ambientes de mercado.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bsticks22

//@version=6

strategy("Long-term Bean Dip (v.1)", overlay=true)

// === Inputs ===
dip1 = input.float(10.0, "First Dip (%)", step=0.1)       // 10%
dip2 = input.float(15.0, "Second Dip (%)", step=0.1)      // 15%
dip3 = input.float(20.0, "Third Dip (%)", step=0.1)       // 20%
recovery_threshold = input.float(5.0, "Sell when within X% of ATH", step=0.1) // 5%
buy_amount = input.float(50000.0, "Buy Amount ($)", step=100) // $1000 increments

// === Variables ===
var float all_time_high = na
var bool dip1_bought = false
var bool dip2_bought = false
var bool dip3_bought = false

// === Update All-Time High ===
if na(all_time_high)
    all_time_high := high
else
    // Update ATH to the previous bar's high to exclude current bar's high
    all_time_high := math.max(all_time_high[1], high[1])
    if high[1] > all_time_high[1]
        // New ATH reached on the previous bar
        dip1_bought := false
        dip2_bought := false
        dip3_bought := false

// === Calculate Percentage Drop from ATH ===
percent_drop = (all_time_high - close) / all_time_high * 100.0

// === Define Dip Conditions ===
buyDip1 = (percent_drop >= dip1) and not dip1_bought
buyDip2 = (percent_drop >= dip2) and not dip2_bought
buyDip3 = (percent_drop >= dip3) and not dip3_bought

// === Calculate Quantity to Buy ===
qty1 = buy_amount / close

// === Execute Buys on Dips ===
if buyDip1
    strategy.entry("Dip1 Buy", strategy.long, qty=qty1)
    dip1_bought := true

if buyDip2
    strategy.entry("Dip2 Buy", strategy.long, qty=qty1)
    dip2_bought := true

if buyDip3
    strategy.entry("Dip3 Buy", strategy.long, qty=qty1)
    dip3_bought := true

// === Sell Condition: Recovery to Within X% of ATH ===
sell_condition = close >= all_time_high * (1 - recovery_threshold / 100.0)

// === Execute Sell on Recovery ===
if sell_condition and strategy.position_size > 0
    strategy.close_all()

// === Plotting ===
plot(all_time_high, title="All-Time High", color=color.new(color.blue, 0))
plot(all_time_high * (1 - dip1 / 100.0), title="Dip1 Level", color=color.new(color.green, 50), style=plot.style_linebr)
plot(all_time_high * (1 - dip2 / 100.0), title="Dip2 Level", color=color.new(color.orange, 50), style=plot.style_linebr)
plot(all_time_high * (1 - dip3 / 100.0), title="Dip3 Level", color=color.new(color.red, 50), style=plot.style_linebr)
plot(all_time_high * (1 - recovery_threshold / 100.0), title="Recovery Level", color=color.new(color.purple, 50), style=plot.style_linebr)

// === Plot Buy and Sell Signals ===
plotshape(buyDip1, title="Dip1 Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy10%")
plotshape(buyDip2, title="Dip2 Buy", location=location.belowbar, color=color.orange, style=shape.labelup, text="Buy15%")
plotshape(buyDip3, title="Dip3 Buy", location=location.belowbar, color=color.red, style=shape.labelup, text="Buy20%")
plotshape(sell_condition and strategy.position_size > 0, title="Sell", location=location.abovebar, color=color.purple, style=shape.labeldown, text="Sell")

// === Alerts ===
alertcondition(buyDip1, title="Dip1 Buy", message="Price dipped 10% from ATH, buying $1000")
alertcondition(buyDip2, title="Dip2 Buy", message="Price dipped 15% from ATH, buying $1000")
alertcondition(buyDip3, title="Dip3 Buy", message="Price dipped 20% from ATH, buying $1000")
alertcondition(sell_condition and strategy.position_size > 0, title="Sell at Recovery", message="Price recovered to within 5% of ATH, selling all")