Estrategia de compra de tres etapas con seguimiento dinámico de ATH de caída de varios niveles

ATH DCA
Fecha de creación: 2024-12-20 14:53:04 Última modificación: 2024-12-20 14:53:04
Copiar: 0 Número de Visitas: 372
1
Seguir
1617
Seguidores

Estrategia de compra de tres etapas con seguimiento dinámico de ATH de caída de varios niveles

Descripción general

Esta es una estrategia de compra multicapa basada en el seguimiento de la dinámica de los precios históricos más altos (ATH). La estrategia realiza compras por lotes mediante la vigilancia de la amplitud de la retirada de los precios de los ATH, ejecuta operaciones de compra por lotes a diferentes niveles de caída y vende todo con ganancias cuando los precios se acercan a los ATH. La estrategia aprovecha la volatilidad del mercado para reducir el costo general de la tenencia de la posición mediante un sistema de construcción por lotes sistematizado.

Principio de estrategia

La lógica central de la estrategia incluye los siguientes elementos clave:

  1. El seguimiento de ATH dinámico: actualiza constantemente los máximos históricos y vuelve a colocar marcas de compra cuando se rompe un nuevo máximo
  2. Trigger de la caída de nivel tres: establecer puntos de compra en los retiros del 10%, 15% y 20% respectivamente
  3. Gestión de fondos fijos: la misma cantidad de fondos se utiliza en cada compra (de $ 1000)
  4. Retirar el mecanismo de liquidación: liquidar todas las posiciones cuando el precio vuelva a estar dentro del 5% de ATH La estrategia utiliza esta forma progresiva de creación de posiciones para reducir gradualmente el costo promedio de la posición durante la caída y para bloquear los beneficios mediante la posición plana unificada cuando el mercado se rebote.

Ventajas estratégicas

  1. Dispersión de riesgos: Se reduce el riesgo de elegir el punto de tiempo mediante la construcción de almacenes por lotes
  2. Optimización de costos: aprovechar una reajuste más grande para reducir el costo promedio de la posición
  3. Seguimiento de la tendencia: actualizaciones dinámicas para garantizar el funcionamiento de la ATH en una tendencia alcista
  4. Eficiencia financiera: la asignación de fondos fijos garantiza la capacidad de controlar el uso de los fondos
  5. Ejecución automatizada: las condiciones de entrada y salida claras facilitan la operación sistematizada

Riesgo estratégico

  1. Riesgo de cambio de tendencia: Se podría generar una serie de trampas en una tendencia bajista a largo plazo
  2. Riesgo de agotamiento de fondos: los fondos disponibles pueden agotarse rápidamente en un mercado muy volátil
  3. Riesgo de perder oportunidades: las condiciones de compra estrictas pueden hacer que se pierdan buenas oportunidades
  4. Riesgo de la hora de la posición de equilibrio: las condiciones de posición de equilibrio unificadas pueden no adaptarse a todas las circunstancias del mercado Se recomienda administrar estos riesgos estableciendo límites máximos de retirada y control de posiciones generales.

Dirección de optimización de la estrategia

  1. Introducir filtros de tendencia: agregar una línea media o un indicador de movimiento para confirmar la tendencia general
  2. Optimización de la gestión de capital: ajuste dinámico de la cantidad de capital en cada compra en función de la volatilidad
  3. Mejorar el mecanismo de liquidación: aumentar las opciones de liquidación por lotes para evitar el riesgo de liquidación de un solo precio
  4. Incorporar un mecanismo de detención de pérdidas: establecer un límite absoluto para controlar el máximo riesgo
  5. Optimización de parámetros dinámicos: ajuste automático de la escala de compra en función de los diferentes ciclos del mercado

Resumir

La estrategia aprovecha la volatilidad del mercado a través de un mecanismo sistematizado de creación de posiciones por lotes y un mecanismo de posición plana unificado. La operación exitosa de la estrategia depende de que el mercado tenga suficiente volatilidad y una tendencia alcista final.

Código Fuente de la Estrategia
/*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")