
La estrategia de inversión inteligente de asignación fija es un sistema de negociación de posiciones largas basado en el promedio de costos en dólares (DCA) que optimiza el proceso de acumulación de activos mediante la configuración de una combinación de órdenes de base y órdenes de seguridad. La estrategia aumenta automáticamente la entrada de compra cuando el mercado cae, se liquida completamente cuando se alcanza el objetivo de ganancias predeterminado y se obtiene una ganancia periódica. El diseño central de la estrategia incluye entrada inicial de fondos fijos, orden de seguridad de múltiples niveles, cálculo del costo promedio de la compensación de la posición y un mecanismo de salida de precisión, especialmente adecuado para la acumulación de activos a largo plazo en mercados volátiles.
La estrategia se basa en la idea central de la ley de la igualdad de costos, pero se ha mejorado significativamente con un mecanismo de orden de seguridad de múltiples niveles. El proceso de ejecución de la estrategia es el siguiente:
Entradas de pedidos básicosCuando no se mantiene una posición, el sistema compra a precios actuales en dólares fijos predefinidos (baseOrderSize) y registra el precio de entrada y la cantidad.
Mecanismo de activación de la orden de seguridadDurante el período de tenencia, si el precio cae por encima del porcentaje de desviación previsto (priceDeviation) y no se ha alcanzado el límite máximo de la cantidad de órdenes de seguridad, el sistema activa la reposición de la posición.
Ajuste del tamaño de la orden dinámicaLa escala de cada orden de seguridad se expande dinámicamente mediante el multiplicación de ordenSizeMultiplier, calculada con la fórmula: baseOrderSize * orderSizeMultiplier^(safetyOrderCount+1) 。
Cálculo del costo promedio: El sistema rastrea en tiempo real el costo total y la cantidad total, calculando el precio de entrada promedio de forma dinámica a través del costo total dividido por la cantidad total.
Mecanismo de salida de la paradaCuando el precio de mercado sube al costo promedio más el porcentaje de la meta de ganancias predeterminada, el sistema automáticamente se despeja de todas las posiciones, completando un ciclo de negociación completo.
La estrategia adopta un diseño de ciclo, en el que todos los contadores y variables de seguimiento se restablecen después de cada liquidación, preparándose para comenzar el siguiente ciclo de negociación.
Maximizar el efecto medio de los costosEl sistema aumenta automáticamente las compras cuando los precios bajan, lo que reduce significativamente el costo promedio de tenencia y aumenta el margen de ganancias futuras.
Automatización del control de riesgosA través de un mecanismo de orden de seguridad predeterminado, la estrategia puede realizar reposiciones de acuerdo con un plan predefinido en caso de caída del mercado, evitando decisiones emocionales.
Optimización de la eficiencia en el uso de los fondosLa estrategia permite invertir más dinero cuando los precios bajan y acumular más activos a precios más favorables mediante el diseño multiplicador de la escala de los pedidos.
Gestión precisa de los objetivos de gananciasEl mecanismo de bloqueo dinámico, basado en el precio de entrada promedio, asegura que cada ciclo de negociación pueda bloquear los beneficios al alcanzar el objetivo de ganancias predeterminado.
Alta personalizaciónLos usuarios pueden ajustar el tamaño de la orden básica, el porcentaje de desviación, el número máximo de órdenes de seguridad, el multiplicador de tamaño de la orden y los objetivos de ganancias, entre otros, según las diferentes condiciones del mercado y las preferencias personales de riesgo.
Referencias de las transacciones visualesLa estrategia proporciona una visualización en tiempo real del precio promedio de entrada, el precio objetivo de parada y el precio de activación de la orden de seguridad para facilitar la toma de decisiones comerciales.
Descenso en el consumo de capital en el mercadoEn un mercado en constante caída, las estrategias pueden agotar rápidamente los fondos disponibles, especialmente cuando se establece una escala de órdenes más alta. La solución es establecer razonablemente la cantidad máxima de órdenes seguras y ajustar el tamaño de las órdenes básicas según los ciclos del mercado.
Mecanismo sin pérdidas: No hay un mecanismo de stop loss en el diseño de la estrategia actual, lo que puede provocar grandes pérdidas en condiciones extremas de mercado. Se recomienda la introducción de stop loss condicional o stop loss basado en el tiempo para limitar las pérdidas potenciales.
Sensibilidad de los parámetros: El rendimiento de la estrategia depende en gran medida de la configuración de los parámetros, y una combinación de parámetros inadecuada puede causar un mal resultado. Se recomienda encontrar la combinación de parámetros óptima mediante el retroceso de datos históricos.
Identificación de tendencias sin mercado: La estrategia no incluye mecanismos de identificación de tendencias, por lo que es posible una entrada prematura en una fuerte tendencia bajista. Se puede considerar la integración de un simple indicador de tendencia como condición de filtración de entrada.
Riesgo de liquidezEn los mercados de baja liquidez, los pedidos de seguridad masivos pueden sufrir resbalones o dificultades de transacción. En los mercados de alta liquidez, se recomienda aplicar o agregar mecanismos de verificación de liquidez.
Integración de los filtros de tendencias: Integración de indicadores simples de identificación de tendencias (como cruces de medias móviles o índices de fuerza relativa) en la lógica de entrada para evitar posiciones prematuras en una fuerte tendencia bajista. Esta optimización puede aumentar significativamente los retornos de ajuste de riesgo de la estrategia.
Porcentaje de desviación dinámica: Porcentaje de desviación de activación de órdenes de seguridad ajustado en función de la dinámica de la volatilidad del mercado, estableciendo una desviación mayor en mercados de alta volatilidad y una desviación menor en mercados de baja volatilidad para adaptarse a diferentes entornos de mercado.
Mecanismo de frenado parcialIntroducción de un mecanismo de stop-loss por etapas, que permite la liquidación parcial en lugar de la retirada total cuando se alcanzan ciertos niveles de ganancias, lo que permite bloquear una parte de las ganancias mientras se mantiene una parte de la brecha del mercado.
Mejora de la gestión de riesgos: Añadir un stop-loss condicional basado en el tiempo o el precio, y un límite de pérdida máxima para evitar pérdidas excesivas en condiciones extremas de mercado.
Optimización de la gestión de fondosImplementación de algoritmos de gestión de fondos más complejos que ajustan el tamaño de los pedidos en función del tamaño de la cuenta, la volatilidad del mercado y la dinámica de la situación de pérdidas actuales, en lugar de utilizar simplemente un multiplicador fijo.
Retirar el control: agregar un mecanismo de ajuste de parámetros de adaptación basado en análisis de retroceso histórico para reducir automáticamente el tamaño de los pedidos o aumentar el porcentaje de desviación cuando se detecta un retroceso significativo para aliviar la presión de capital en los mercados bajistas.
La estrategia de inversión de asignación fija inteligente ofrece una forma sistematizada de acumular activos a largo plazo mediante la combinación de entradas de órdenes básicas y un mecanismo de repuesto de órdenes de seguridad en varios niveles. La estrategia es especialmente adecuada para mercados con fluctuaciones periódicas, y puede aprovechar eficazmente las correcciones de precios para acumular más activos y bloquear las ganancias en caso de rebote.
La principal ventaja de la estrategia reside en su simple y potente mecanismo de maximización de la rentabilidad promedio y una clara administración de objetivos de ganancias, pero también enfrenta riesgos como el desgaste de capital en el mercado descendente y la falta de mecanismos de parada de pérdidas. Mediante la integración de filtros de tendencias, ajustes de parámetros dinámicos y funciones de gestión de riesgos mejoradas, la estrategia puede optimizarse aún más para mejorar su adaptabilidad y rendimiento en diferentes entornos de mercado.
Para los inversores que buscan una forma sistemática de acumular activos y administrar el riesgo en mercados volátiles, esta estrategia de DCA reforzada ofrece un marco fiable y personalizable, especialmente adecuado para el rango de tiempo de inversión a medio y largo plazo.
/*backtest
start: 2025-06-13 00:00:00
end: 2025-07-13 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/
//@version=5
strategy("Simple DCA Strategy", overlay=true)
// --- Strategy Inputs ---
baseOrderSize = input.float(10, "Base Order Size (USD/Quote Currency)", minval=0.01)
priceDeviation = input.float(1.0, "Price Deviation for Safety Order (%)", minval=0.1) / 100
maxSafetyOrders = input.int(5, "Maximum Safety Orders", minval=0)
takeProfit = input.float(1.0, "Take Profit (%)", minval=0.1) / 100
orderSizeMultiplier = input.float(1.5, "Order Size Multiplier", minval=1.0)
// --- Internal Variables ---
var float lastEntryPrice = na
var int safetyOrderCount = 0
var float totalQuantity = 0.0
var float totalCost = 0.0
var float averageEntryPrice = na
// --- Reset Logic for New Cycles ---
// Reset variables when no open positions (or when strategy is initialized)
if strategy.position_size == 0
lastEntryPrice := na
safetyOrderCount := 0
totalQuantity := 0.0
totalCost := 0.0
averageEntryPrice := na
// --- Entry Logic (Base Order and Safety Orders) ---
// Base Order
if strategy.position_size == 0
// Enter a long position with the base order size
strategy.entry("Base Order", strategy.long, qty=baseOrderSize / close) // Convert USD/Quote Currency to quantity
lastEntryPrice := close
totalQuantity := baseOrderSize / close
totalCost := baseOrderSize
averageEntryPrice := close
safetyOrderCount := 0
else
// Safety Order Logic
// Check if price has deviated enough and we haven't reached max safety orders
if low < lastEntryPrice * (1 - priceDeviation) and safetyOrderCount < maxSafetyOrders
currentOrderSize = baseOrderSize * math.pow(orderSizeMultiplier, safetyOrderCount + 1) // Calculate next order size
strategy.entry("SO " + str.tostring(safetyOrderCount + 1), strategy.long, qty=currentOrderSize / close)
// Update tracking variables
lastEntryPrice := close
totalQuantity := totalQuantity + (currentOrderSize / close)
totalCost := totalCost + currentOrderSize
averageEntryPrice := totalCost / totalQuantity // Recalculate average entry price
safetyOrderCount := safetyOrderCount + 1
// --- Exit Logic (Take Profit) ---
if strategy.position_size > 0
// Calculate the target price for take profit
targetPrice = averageEntryPrice * (1 + takeProfit)
// Close the position if the current price reaches the target price
if high >= targetPrice
strategy.close_all()
// --- Plotting for Visualization ---
plot(averageEntryPrice, "Average Entry Price", color=color.blue, style=plot.style_linebr)
plot(strategy.position_size > 0 ? averageEntryPrice * (1 + takeProfit) : na, "Take Profit Target", color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0 ? lastEntryPrice * (1 - priceDeviation) : na, "saftyorder", color=color.rgb(175, 91, 76), style=plot.style_linebr)