Canal de Donchian con estrategia de trailing stop


Fecha de creación: 2023-12-07 16:53:10 Última modificación: 2023-12-07 16:53:10
Copiar: 0 Número de Visitas: 854
1
Seguir
1619
Seguidores

Canal de Donchian con estrategia de trailing stop

Descripción general

La estrategia es una estrategia de seguimiento de tendencias basada en el indicador de la vía de Tongan, combinada con el stop loss dinámico del indicador ATR para bloquear ganancias, y pertenece a la clase de estrategias de seguimiento de tendencias.

Principio de estrategia

La estrategia utiliza un indicador de la vía de Dongxian de 20 ciclos de longitud, donde la línea media de la vía es el promedio de los precios más altos y más bajos. Cuando el precio cruza la línea media de la vía por encima, hace más, y cuando el precio cruza la línea media de la vía por debajo, hace un vacío. La condición de equilibrio es que el precio toque la línea de parada dinámica, y la línea de parada se calcula con el precio más bajo de las 3 líneas K más recientes, menos un tercio del valor del indicador ATR, como una parada adicional, y el precio más alto de las 3 líneas K más recientes, más un tercio del valor del indicador ATR, como un vacío.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El uso del canal de Dongxian para determinar la dirección de las tendencias del mercado permite capturar las tendencias de manera efectiva.
  2. Combinado con el ATR para el seguimiento de pérdidas dinámicas, para controlar el riesgo de manera efectiva y garantizar la rentabilidad
  3. El factor ATR se incluye en el cálculo de la línea de stop loss para que el stop loss sea más razonable teniendo en cuenta la volatilidad del mercado.
  4. El cálculo de la línea de parada es más estable y confiable, evita que la parada se acerque demasiado y reduce la probabilidad de que la parada sea procesada

Análisis de riesgos

El principal riesgo de esta estrategia es:

  1. El artefacto de Dongji Antong tiene un cierto retraso, y puede haber perdido la oportunidad de una línea corta.
  2. La configuración incorrecta de los parámetros ATR puede causar que el stop loss sea demasiado relajado o demasiado cercano
  3. El mecanismo de determinación de tendencias es relativamente simple, y es probable que haya más señales erróneas en los mercados consolidados.
  4. La falta de mecanismos eficaces de soporte y resistencia a los juicios puede llevar a una mala elección del momento de entrada en el mercado.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Aumentar el criterio de otros indicadores y evitar el comercio frecuente en mercados sin tendencias claras
  2. Aumentar el apoyo al juicio de la resistencia y optimizar el tiempo de entrada
  3. Prueba otros métodos de cálculo de pérdidas dinámicas para optimizar aún más las estrategias de pérdidas
  4. Prueba de la influencia de los diferentes parámetros de ciclo de la vía de Dongxian en la eficacia de la estrategia
  5. Añadir condiciones de filtro como volumen de transacciones o incremento para reducir la entrada de señales erróneas

Resumir

La estrategia en su conjunto es una estrategia de seguimiento de tendencias sencilla y práctica, que determina la dirección de la tendencia a través del canal de Dongxian y utiliza un stop loss dinámico para bloquear las ganancias. La estrategia es muy práctica, pero se puede optimizar aún más de varias maneras, lo que permite que la estrategia mantenga un rendimiento estable en un entorno de mercado más complejo.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "dc",  overlay = true)
atrLength = input(title="ATR Length:", defval=20, minval=1)

testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = input(20, "Period")

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2
atrValue=atr(atrLength)


useTakeProfit   = na
useStopLoss     = na
useTrailStop    = na
useTrailOffset  = na
//@version=1
Buy_stop = lowest(low[1],3) - atr(20)[1] / 3
plot(Buy_stop, color=red, title="buy_stoploss")
Sell_stop = highest(high[1],3) + atr(20)[1] / 3
plot(Sell_stop, color=green, title="sell_stoploss")

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage))
strategy.close("simpleBuy",when= ( close< Buy_stop))
    
strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) )
strategy.close("simpleSell",when=( close > Sell_stop))
    
//strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
//strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)