Una estrategia de trading de tortugas que sigue el impulso de ruptura


Fecha de creación: 2023-12-25 17:12:05 Última modificación: 2023-12-25 17:12:05
Copiar: 0 Número de Visitas: 774
1
Seguir
1623
Seguidores

Una estrategia de trading de tortugas que sigue el impulso de ruptura

Descripción general

La estrategia de negociación de tortugas es una estrategia de seguimiento de tendencias para rastrear la dinámica de las rupturas. Fue desarrollada por el famoso comerciante Richard Dennis en la década de 1980 para verificar si los comerciantes pueden ser cultivados por las reglas, no por la naturaleza. La idea central de la estrategia es rastrear las rupturas de precios y seguir la tendencia, mientras se cumple estrictamente con los principios de administración de fondos para limitar el riesgo de caída.

Principio de estrategia

La estrategia de negociación de la criba utiliza dos parámetros N y N / 2 para construir canales. En concreto, se calcula el precio más alto y el precio más bajo de los últimos N días y N / 2 días respectivamente. Se establecen posiciones de más cabeza cuando el precio supera el canal de N días, y se establecen posiciones cerradas cuando el precio cae por debajo del canal de N / 2 días. Se establecen posiciones de cabeza en el aire cuando el precio cae por debajo del canal de N días y se establecen posiciones cerradas cuando el precio supera el canal de N / 2 días.

En el código, N correspondeenter_slowN/2 corresponde aenter_fast│ │ │ │ │ │ │ │ │ │ │slowLyfastLPrecio mínimolowest(slowSfastS)。当价格超过55天通道时做多(enterL2),当价格跌破20天通道时平多仓(exitL1);当价格跌破55天通道时做空(enterS2),当价格超过20天通道时平空仓(exitS1`)。

Análisis de las ventajas

La mayor ventaja de la estrategia de comercio de la playa reside en el control del riesgo. Se puede controlar eficazmente la pérdida individual mediante la creación de posiciones en el momento de la ruptura del precio y el rápido cierre en el momento de la retirada del precio. Al mismo tiempo, se adopta el principio de gestión de fondos de cuotas fijas, lo que reduce aún más el riesgo.

Otra ventaja es que la selección de parámetros es sencilla. La estrategia completa tiene solo 4 parámetros y es fácil de entender y ajustar. Los parámetros en sí mismos son relativamente estables y no necesitan ser optimizados con frecuencia.

Análisis de riesgos

El mayor riesgo de una estrategia de comercio de criptomonedas es no poder seguir una tendencia a largo plazo. Cuando la tendencia comienza a formarse, la estrategia puede perder la oportunidad de entrar. Además, la estrategia abre con frecuencia posiciones cerradas en una tendencia de fluctuación de precios, lo que aumenta los costos de negociación y el riesgo de deslizamiento.

Además, la configuración de parámetros fijos también puede variar mucho en función de la variedad y el entorno del mercado. Esto requiere un ajuste de la experiencia manual.

Dirección de optimización

Las estrategias de negociación de las tortugas se pueden optimizar en los siguientes aspectos:

  1. La función de adaptación de parámetros se ha añadido. Permite que los parámetros de N, N/2 se ajusten automáticamente según la volatilidad del mercado y la frecuencia de la señal, para adaptarse a más escenarios.

  2. Aumentar las reglas de juicio de tendencias. Para juzgar la dirección de las tendencias antes de entrar en el mercado, se evita la entrada errónea en situaciones de fluctuación de precios.

  3. Combinación de varias estrategias de unidad de período de tiempo. Determina la dirección de la tendencia en el período de tiempo más alto y entra en juego en el período de tiempo más bajo.

  4. Optimización de la estrategia de parada de pérdidas.

Resumir

Las estrategias de trading de mariscos permiten un seguimiento eficaz de las tendencias a través de un simple sistema de ruptura. El control del riesgo es la mayor ventaja de la estrategia, gracias a los rápidos paros y la gestión de fondos fijos. Al mismo tiempo, también vemos que la estrategia puede ampliarse y optimizarse desde múltiples dimensiones para adaptarse a más variedades y entornos de mercado. En general, las estrategias de trading de mariscos ofrecen una forma de controlar el riesgo para capturar las tendencias de precios y son una referencia importante para el trading cuantitativo.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-24 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//oringinally coded by tmr0, modified by timchep
//original idea from «Way of the Turtle: The Secret Methods that Turned Ordinary People into Legendary Traders» (2007) CURTIS FAITH
strategy("Turtles", shorttitle = "Turtles", overlay=true, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100)
//////////////////////////////////////////////////////////////////////
// Component Code Start
testStartYear = input(2011, "Backtest Start Year")
testStartMonth = input(12, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=false)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop
//////////////////////////////////////////////////////////////////////

shortingEnabled = input(title="Enable Shorting?", type=bool, defval=true)

enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
enter_slow = input(55, minval=1)
exit_slow = input(20, minval=1)

fastL = highest(enter_fast)
fastLC = lowest(exit_fast)
fastS = lowest(enter_fast)
fastSC = highest(exit_fast)

slowL = highest(enter_slow)
slowLC = lowest(exit_slow)
slowS = lowest(enter_slow)
slowSC = highest(exit_slow)

enterL1 = high > fastL[1] 
exitL1 = low <= fastLC[1] 
enterS1 = low < fastS[1]
exitS1 = high >= fastSC[1]

enterL2 = high > slowL[1] 
exitL2 = low <= slowLC[1] 
enterS2 = low < slowS[1]
exitS2 = high >= slowSC[1]


if testPeriod()
    strategy.entry("fast L", strategy.long, when = enterL1) 
    
    if not enterL1
        strategy.entry("slow L", strategy.long, when = enterL2)
        
    strategy.close("fast L", when = exitL1)
    strategy.close("slow L", when = exitL2)

if shortingEnabled and testPeriod()
    strategy.entry("fast S", strategy.short, when = enterS1)
    if not enterS2
        strategy.entry("slow S", strategy.short, when = enterS2)
        
    strategy.close("fast S", when = exitS1)
    strategy.close("slow S", when = exitS2)