Sistema de negociación innovador con ajuste de volatilidad de ciclo dual y gestión dinámica de posiciones y estrategia de posiciones piramidales.

ATR Donchian Channels BREAKOUT TREND FOLLOWING POSITION SIZING PYRAMIDING Turtle Trading
Fecha de creación: 2025-06-16 15:14:24 Última modificación: 2025-08-12 17:46:27
Copiar: 0 Número de Visitas: 333
2
Seguir
319
Seguidores

Sistema de negociación innovador con ajuste de volatilidad de ciclo dual y gestión dinámica de posiciones y estrategia de posiciones piramidales. Sistema de negociación innovador con ajuste de volatilidad de ciclo dual y gestión dinámica de posiciones y estrategia de posiciones piramidales.

Descripción general

La estrategia utiliza dos períodos de tiempo diferentes (día 20 y día 55) para capturar brechas en el mercado y, al mismo tiempo, combina indicadores de volatilidad para gestionar posiciones dinámicas. La estrategia combina varias técnicas de comercio cuantitativo, como el seguimiento de tendencias, las transacciones de brechas, las posiciones de ajuste de volatilidad y la acumulación de la pirámide, con el objetivo de capturar de manera efectiva las tendencias del mercado a medio y largo plazo. La lógica central de la estrategia es entrar en el mercado en el momento en que el precio se encuentra en un punto alto o bajo antes de la ruptura, calcular el tamaño de la posición razonable a través de la volatilidad (ATR) y realizar una acumulación de la pirámide cuando la tendencia continúa, y finalmente detener o obtener ganancias a través de brechas de retroceso de corto período.

Principio de estrategia

El análisis del código muestra que los principios centrales de la estrategia incluyen:

  1. La entrada de doble cicloLa estrategia utiliza dos sistemas de entrada: el Sistema 1 utiliza el punto más alto / más bajo de 20 días como la principal señal de entrada; el Sistema 2 se activa después de la pérdida de la operación anterior y utiliza el punto más alto / más bajo de 55 días como la señal de entrada. Este diseño permite ajustar automáticamente la sensibilidad de entrada según la situación del mercado.

  2. Medición de la volatilidad y gestión de posicionesLa estrategia utiliza la amplitud real promedio de 20 días (ATR) como una medida de la volatilidad del mercado, calculando la posición razonable mediante la fórmula: unidad de posición = cantidad de riesgo / (N * valor de punto). La cantidad de riesgo es igual a la ganancia de la cuenta multiplicada por el porcentaje de riesgo establecido (el 1% por defecto). Este método asegura que la exposición al riesgo se mantenga constante en diferentes entornos de volatilidad.

  3. Mecanismo de la pirámide: Cuando el precio de una posición de ganancias ya existente continúa moviéndose en la dirección favorable (una distancia de al menos 0.5N), la estrategia permite agregar nuevas unidades del mismo tamaño. Este método de alza piramidal permite ampliar el potencial de ganancias en un mercado de fuerte tendencia.

  4. El ciclo corto se invierte para romper el punto de equilibrioLa estrategia utiliza los mínimos / máximos de los 10 días como señal de salida para posiciones abiertas / abiertas. Si el precio cae por debajo de los mínimos del 10 día, elimine todas las posiciones abiertas; Si el precio supera los máximos del 10 día, elimine todas las posiciones abiertas.

  5. Mecanismo de cambio de sistema: La estrategia ajusta automáticamente el sistema de entrada según los resultados de la operación. Si una operación en una dirección es perdedora, la próxima operación en la misma dirección usará el sistema 2 (ciclo de 55 días); Una vez que una operación sea ganadora, se reanudará el uso del sistema 1 (ciclo de 20 días).

Mediante la aplicación combinada de estos principios, la estrategia puede entrar temprano en un mercado de tendencia, acumular posiciones en el avance y salir al comienzo de la reversión de la tendencia, capturando efectivamente las tendencias de mercado a medio y largo plazo.

Ventajas estratégicas

Al analizar el código, podemos concluir que la estrategia tiene las siguientes ventajas principales:

  1. Mecanización de las decisiones de transacciónLa estrategia se ejecuta en base a reglas cuantitativas, elimina la interferencia emocional humana y garantiza el cumplimiento estricto de la disciplina comercial. El código define claramente las condiciones de entrada, alza y salida, sin necesidad de juicio subjetivo.

  2. Gestión de riesgos dinámicosLa estrategia permite mantener una exposición al riesgo consistente en diferentes entornos de volatilidad al limitar el riesgo de cada transacción a un porcentaje fijo de los intereses de la cuenta (el 1% por defecto) y al ajustar el tamaño de la posición ATR. Esta estrategia reduce automáticamente las posiciones en mercados de alta volatilidad y aumenta adecuadamente las posiciones en mercados de baja volatilidad.

  3. Adaptación a las condiciones del mercado: El diseño de doble ciclo permite que la estrategia se ajuste automáticamente a la situación del mercado. En un mercado de tendencia de ganancias continuas, el uso de un período más corto (20 días) mantiene la sensibilidad; después de sufrir pérdidas, el cambio a un período más largo (55 días) reduce las señales falsas.

  4. Mecanismo de recuperación del crecimientoLa estrategia se basa en el tamaño de las posiciones basadas en los intereses de las cuentas actuales, aumentando automáticamente las posiciones a medida que crecen las cuentas para lograr un efecto de recuperación de ganancias; al mismo tiempo, se expande el potencial de ganancias en una fuerte tendencia a través del mecanismo de aumento de posición de la pirámide.

  5. Adaptabilidad a varios mercadosEl diseño de la estrategia se aplica a varias clases de activos, especialmente en mercados con características de tendencia evidentes, como el oro. Al ajustar los parámetros, se puede optimizar para diferentes características del mercado.

  6. Control claro de los riesgosUtilizando el 10 Day Reverse Break como una señal de salida, para proporcionar un punto de parada claro para cada operación, para controlar eficazmente el riesgo de una sola operación; y al mismo tiempo controlar el riesgo sistemático mediante la configuración del porcentaje de riesgo máximo.

Riesgo estratégico

A pesar de las ventajas de esta estrategia, existen los siguientes riesgos potenciales:

  1. Riesgo de una falsa brecha: En un mercado convulso, los precios pueden romper con frecuencia los puntos altos/bajos, pero luego retroceder rápidamente, lo que provoca pérdidas continuas. La falta de un mecanismo de filtrado de falsas rupturas en el código puede generar más señales de invalidez en un mercado no en tendencia.

  2. El riesgo de acumulación aumenta: El mecanismo de alza de posición de la pirámide es muy efectivo durante la continuación de la tendencia, pero si la tendencia se invierte repentinamente, las posiciones de varias unidades pueden causar grandes pérdidas. Aunque la estrategia establece condiciones de salida, puede sufrir grandes pérdidas en un cambio brusco.

  3. Sensibilidad de los parámetrosEl rendimiento de la estrategia depende en gran medida de la configuración de los parámetros (ciclo de entrada, ciclo de salida, ciclo ATR, intervalo de posición, etc.). Las diferentes condiciones del mercado pueden requerir diferentes combinaciones de parámetros, y los parámetros fijos pueden causar inestabilidad en el rendimiento.

  4. Riesgo de liquidez: En mercados con poca liquidez, una gran acumulación de posiciones puede aumentar los puntos de deslizamiento o dificultar la negociación a los precios esperados, lo que afecta el efecto de la ejecución real. El código no tiene un mecanismo de manejo para problemas de liquidez.

  5. Exposición al riesgo sistémico: Como una estrategia de seguimiento de tendencias pura, puede tener una alta correlación con otras estrategias de tendencias durante una caída generalizada o una gran volatilidad en el mercado, lo que dificulta la protección diversificada.

  6. Problemas de precisión de cálculoEl uso de la función math.floor en el código para calcular la posición hacia abajo puede causar que la posición sea demasiado pequeña o no se pueda negociar en cuentas menores. Al mismo tiempo, la configuración incorrecta del valor del punto también puede causar errores en el cálculo de la posición.

Para controlar el riesgo de estos riesgos, se puede considerar la adición de filtros de tendencia, el establecimiento de límites máximos de posición, la optimización de las reglas de alza de posición y el aumento de los mecanismos de ajuste de la volatilidad.

Dirección de optimización de la estrategia

Basado en el análisis de código, la estrategia tiene las siguientes direcciones de optimización:

  1. Añadir filtro de tendenciasLas estrategias actuales se basan exclusivamente en brechas de precios y son susceptibles a falsas brechas. Se pueden agregar indicadores de tendencia (como las medias móviles, ADX, etc.) como condiciones de filtración, ejecutando operaciones solo cuando la tendencia coincide con la dirección, y reduciendo las pérdidas en mercados convulsionados.

  2. Optimización de las reglas de prórrogaEl mecanismo de alza de la posición existente es relativamente simple, y se puede considerar la introducción de un porcentaje de alza de la posición decreciente (unidad de alza de la posición posterior disminuye gradualmente) o establecer un límite de la cantidad máxima de alzas de la posición, equilibrando la necesidad de ampliar los beneficios y controlar el riesgo.

  3. Ajuste de parámetros dinámicosSe puede ajustar el ciclo de entrada/salida y el intervalo de alza de posición en función de la volatilidad del mercado o la intensidad de la tendencia. Por ejemplo, se puede extender el ciclo de entrada en mercados de alta volatilidad y acortar el ciclo de salida en mercados de baja volatilidad, lo que hace que la estrategia sea más adaptable.

  4. Aumentar el tiempo de filtradoEn la actualidad, el sistema de filtración de la hora de negociación de la bolsa de valores es el siguiente: agregar filtros de tiempo de negociación para evitar la publicación de datos económicos importantes o períodos de menor liquidez, y reducir el riesgo de fluctuaciones anormales.

  5. Confirmación del marco temporal múltiple: La dirección de la tendencia combinada con un ciclo de tiempo más largo como condición de filtro de la operación, por ejemplo, ejecutar operaciones solo cuando la tendencia de la línea del día coincide con la dirección de la tendencia de las 4 horas, para mejorar la calidad de la señal.

  6. Optimización de la gestión de fondosSe pueden introducir modelos de gestión de fondos más complejos, como la fórmula de Kelly o el método de valor f óptimo, para optimizar aún más la curva de crecimiento de los fondos de acuerdo con la proporción de riesgo de ajuste dinámico de la probabilidad de éxito y la relación de ganancias/pérdidas esperadas.

  7. Mecanismo de frenado adicionalLas estrategias actuales solo tienen mecanismos de salida basados en reversión de la ruptura. Se puede considerar la adición de mecanismos de bloqueo de ganancias, como la liquidación de partes de las posiciones cuando se alcanza un objetivo de ganancias específico, combinando captura de tendencias y protección de ganancias.

Estas direcciones de optimización pueden mejorar la estabilidad y la rentabilidad de las estrategias, especialmente la adaptabilidad a diferentes entornos de mercado.

Resumir

El sistema de breakouts de ajuste de fluctuación de dos ciclos es una estrategia de negociación cuantitativa completa basada en las reglas de negociación de la pirámide, que combina varias técnicas de negociación cuantitativas, como entrada de breakout, gestión de posiciones de fluctuación, alza de la pirámide y ciclo de adaptación. La estrategia capta brechas de precio para entrar en la tendencia, aprovecha el riesgo de control de la fluctuación y maximiza los beneficios de la tendencia a través de la alza de la pirámide.

El valor central de la estrategia reside en su diseño integral del sistema, que incluye todos los aspectos de entrada, salida, gestión de posiciones y control de riesgos, formando un sistema de negociación autónomo. En particular, su mecanismo de posición de ajuste de volatilidad y su diseño de adaptación de doble ciclo permiten que la estrategia mantenga un rendimiento relativamente estable en diferentes entornos de mercado.

Sin embargo, como una estrategia de seguimiento de tendencias, puede no funcionar bien en un mercado convulso y necesita ser perfeccionada mediante el aumento de filtros de tendencias, la optimización de las reglas de alza de la bolsa y el ajuste de los parámetros dinámicos. Al mismo tiempo, la estrategia se adapta como parte de una cartera de inversiones y se utiliza en combinación con otros tipos de estrategias (como la estrategia de regresión a la media) para lograr una curva de ganancias más suave.

En general, se trata de una estrategia de comercio cuantitativa de diseño razonable, lógica clara, con una buena base teórica y valor práctico. Con la optimización de los parámetros adecuados y el mecanismo de complementación, la estrategia tiene el potencial de generar ganancias estables en una variedad de entornos de mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-06-16 00:00:00
end: 2025-06-15 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
//策略声明和基础设置
strategy("Turtle Trading System (Full Version)", overlay=true, pyramiding=5)

//风险控制参数
riskPercent = input.float(0.5, title="每笔交易风险占资金百分比", minval=0.1, maxval=5.0, step=0.1)
pointValue = input.float(1.0, title="点值($/点)")

//入场周期参数
entryPeriod1 = input.int(20, title="系统1入场周期")
entryPeriod2 = input.int(55, title="系统2入场周期(亏损后)")

//出场和波动性参数
exitPeriod = input.int(10, title="出场周期")
nPeriod = input.int(20, title="N周期(ATR)")
pyramidSpacing = input.float(0.5, title="每N x ...添加单位", step=0.1)

//波动性指标计算
N = ta.atr(nPeriod)//计算ATR作为市场波动性的量化标准

//系统1入场通道计算(20周期)
entryHigh1 = ta.highest(high, entryPeriod1)//计算20周期内最高价作为做多突破位
entryLow1 = ta.lowest(low, entryPeriod1)//计算20周期内最低价作为做空突破位

//系统2入场通道计算(55周期)
entryHigh2 = ta.highest(high, entryPeriod2)//计算55周期内最高价作为保守做多突破位
entryLow2 = ta.lowest(low, entryPeriod2)//计算55周期内最低价作为保守做空突破位

//出场通道计算(10周期)
exitLong = ta.lowest(low, exitPeriod)//计算10周期内最低价作为多头出场位
exitShort = ta.highest(high, exitPeriod)//计算10周期内最高价作为空头出场位

//交易状态跟踪变量
var bool lastLongLoss = false//记录上次多头交易是否亏损
var bool lastShortLoss = false//记录上次空头交易是否亏损
var float lastLongEntryPrice = na//记录上次多头入场价格
var float lastShortEntryPrice = na//记录上次空头入场价格

//账户权益和风险计算
equity = strategy.equity//获取当前账户总权益
riskDollars = equity * (riskPercent / 100)//计算每笔交易允许的风险金额
unitSize = riskDollars / (N * pointValue)//基于ATR计算标准头寸规模
positionSize = math.round(unitSize, 3)//设定最终头寸大小

//入场信号生成逻辑
useSystem1Long = close > entryHigh1[1]//系统1多头入场条件
useSystem2Long = lastLongLoss and close > entryHigh2[1]//系统2多头入场条件(仅在上次亏损后)
useSystem1Short = close < entryLow1[1]//系统1空头入场条件
useSystem2Short = lastShortLoss and close < entryLow2[1]//系统2空头入场条件(仅在上次亏损后)

//金字塔加仓条件
canAddLong = strategy.opentrades > 0 and strategy.position_size > 0 and close >= lastLongEntryPrice + (pyramidSpacing * N)
//多头加仓条件
canAddShort = strategy.opentrades > 0 and strategy.position_size < 0 and close <= lastShortEntryPrice - (pyramidSpacing * N)
//空头加仓条件

//出场信号生成
longExit = close < exitLong//多头出场条件
shortExit = close > exitShort//空头出场条件

//多头入场执行
if (useSystem1Long or useSystem2Long)
    strategy.entry("Long", strategy.long, qty=positionSize)//执行多头开仓
    lastLongEntryPrice := close//记录多头入场价格作为加仓基准
    lastLongLoss := false//重置多头亏损状态

//空头入场执行
if (useSystem1Short or useSystem2Short)
    strategy.entry("Short", strategy.short, qty=positionSize)//执行空头开仓
    lastShortEntryPrice := close//记录空头入场价格作为加仓基准
    lastShortLoss := false//重置空头亏损状态

//多头加仓执行
if (canAddLong)
    strategy.entry("Long Add", strategy.long, qty=positionSize)//执行多头加仓
    lastLongEntryPrice := close//更新多头入场价格基准

//空头加仓执行
if (canAddShort)
    strategy.entry("Short Add", strategy.short, qty=positionSize)//执行空头加仓
    lastShortEntryPrice := close//更新空头入场价格基准

//多头出场执行
if (longExit)
    strategy.close("Long")//平掉初始多头头寸
    strategy.close("Long Add")//平掉所有多头加仓头寸
    lastLongLoss := close < lastLongEntryPrice//根据出场价格更新亏损状态

//空头出场执行
if (shortExit)
    strategy.close("Short")//平掉初始空头头寸
    strategy.close("Short Add")//平掉所有空头加仓头寸
    lastShortLoss := close > lastShortEntryPrice//根据出场价格更新亏损状态

//系统1入场信号可视化
plot(entryHigh1, title="20周期高点", color=color.green)//绘制系统1多头入场线
plot(entryLow1, title="20周期低点", color=color.red)//绘制系统1空头入场线

//系统2入场信号可视化
plot(entryHigh2, title="55周期高点", color=color.lime, linewidth=1)//绘制系统2多头入场线
plot(entryLow2, title="55周期低点", color=color.maroon, linewidth=1)//绘制系统2空头入场线

//出场信号可视化
plot(exitLong, title="10周期低点(多头出场)", color=color.orange)//绘制多头出场信号线
plot(exitShort, title="10周期高点(空头出场)", color=color.blue)//绘制空头出场信号线