Estrategia de DCA con retraso en la obtención de beneficios

El autor:¿ Qué pasa?, Fecha: 2024-02-23 14:01:20
Las etiquetas:

img

Resumen general

Esta estrategia combina el Dollar Cost Averaging (DCA) con la característica de retraso de la toma de ganancias disponible en las plataformas de intercambio. Establece una desviación de precio del 1% para las compras y apunta a un beneficio del 0.5% en cada venta. La razón para apuntar a pequeñas ganancias es garantizar operaciones suaves para el bot comercial, evitando quedar atrapado durante períodos de mercado lentos. Basado en pruebas de retroceso, este bot ha demostrado ser lo suficientemente adaptable como para soportar las fluctuaciones y la manipulación del mercado.

Principios

La estrategia primero establece parámetros configurables como el porcentaje de parada de espera, el máximo de órdenes DCA, el porcentaje de desviación de precio, etc. Luego rastrea variables como el último precio de compra, el número de compras, el precio de compra inicial, el precio de parada de espera, etc. En la lógica de compra, si el precio actual está por debajo del último precio de compra * (1 - porcentaje de desviación de precio) y el número de compras no ha alcanzado el máximo de órdenes DCA, emitirá una señal de compra y registrará el precio de compra. En la lógica de venta, si el precio actual está por encima del último precio de compra * (1 + porcentaje de toma de ganancias), establecerá un precio de parada de espera. Si el precio continúa subiendo por encima de ese precio de parada de espera, la parada de espera se actualiza al precio actual * (1 - porcentaje de espera).

Ventajas

  1. Combina el DCA y el stop loss para garantizar la media de costos y, al mismo tiempo, bloquea las ganancias parciales para evitar las reducciones.

  2. Mecanismo de parada de retraso flexible con ganancia ajustable y porcentaje de retraso para minimizar el riesgo.

  3. Los resultados verificados superan a los de compra y tenencia, con rendimientos anualizados constantes adecuados para inversiones a largo plazo.

  4. Simple de implementar con parámetros ajustables para una fácil aplicación en las principales plataformas de intercambio.

Los riesgos

  1. El número limitado de compras de DCA significa que las pérdidas pueden acrecentarse si el mercado sigue una tendencia a la baja durante períodos prolongados.

  2. Los valores de las pérdidas de suspensión de seguimiento pueden conducir a una obtención prematura de ganancias o a pérdidas incontroladas.

  3. Los costos de negociación pueden consumir las ganancias.

  4. Se requiere suficiente capital para apoyar las compras frecuentes de DCA.

Mejoras

  1. Implementar paradas de retraso adaptativas, reduciendo el porcentaje de retraso a medida que se alcanzan ciertos hitos de ganancia.

  2. Incorporar promedios móviles, aumentando los importes de compra alrededor de las áreas de soporte clave.

  3. Se añadirá un mecanismo de reequilibrio para ajustar los importes de DCA en función del total de activos.

  4. Optimizar la configuración de parámetros y probar la rentabilidad en varios períodos de retención.

Conclusión

Esta estrategia combina DCA y trailing stops para obtener retornos de trading algorítmicos estables durante largos períodos. Los resultados de las pruebas de retroceso son fuertes y adecuados para los inversores enfocados en un crecimiento estable. El código simple y limpio lo hace fácil de entender e implementar. Se pueden lograr mayores ganancias de rendimiento a través de la optimización de parámetros e incorporando indicadores adicionales. En general, proporciona a los inversores una solución de trading cuantificada relativamente segura y consistente.


/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © Stavolt

//@version=5
strategy("DCA Strategy with Trailing Take Profit", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Correctly using input to define user-configurable parameters
takeProfitPercent = input.float(0.6, title="Take Profit (%)", minval=0.1, maxval=5)
trailingPercent = input.float(0.1, title="Trailing Stop (%)", minval=0.05, maxval=1)
maxDCAOrders = input.int(10, title="Max DCA Orders", minval=1, maxval=20)
priceDeviationPercent = input.float(1.0, title="Price Deviation (%)", minval=0.5, maxval=5)

var float lastBuyPrice = na
var int buyCount = 0
var float initialBuyPrice = na
var float trailingStopPrice = na

// Strategy logic here...
// Note: The detailed logic for buying and selling based on the DCA strategy
// needs to be tailored to your specific requirements and tested for correctness.

if (buyCount < maxDCAOrders)
    if (na(lastBuyPrice) or close < lastBuyPrice * (1 - priceDeviationPercent / 100))
        strategy.entry("Buy", strategy.long)
        lastBuyPrice := close
        buyCount += 1
        if (na(initialBuyPrice))
            initialBuyPrice := close

if (not na(lastBuyPrice) and close > lastBuyPrice * (1 + takeProfitPercent / 100))
    if (na(trailingStopPrice) or close > trailingStopPrice)
        trailingStopPrice := close * (1 - trailingPercent / 100)
    if (close < trailingStopPrice)
        strategy.close("Buy")
        lastBuyPrice := na
        trailingStopPrice := na
        buyCount := 0
        initialBuyPrice := na


Más.