
La estrategia de seguimiento de tendencias del canal de Dongxian es una estrategia de seguimiento de tendencias basada en el indicador del canal de Dongxian. La estrategia determina la dirección de la tendencia del mercado y realiza operaciones de seguimiento de tendencias mediante el cálculo de los precios máximos y mínimos de los diferentes períodos, formando trayectorias superiores, inferiores y medias.
La estrategia primero establece un rango de tiempo de retracción y luego define las reglas de apertura de posiciones de más y de menos.
En el caso de los polinomios, se abren polinomios cuando el precio sube por el carril de la ruta de Dongxian; se abren polinomios cuando el precio baja por el carril de la ruta.
En el caso de la posición en blanco, se abre la posición en blanco cuando el precio se desvía por la baja del canal de Dongxian; se abre la posición en blanco cuando el precio se desvía por la alta.
La estrategia también introdujo el indicador ATR para configurar el mecanismo de salida de stop loss. El valor de ATR se multiplica por un factor como punto de stop loss.
En concreto, el stop multiple es el precio de apertura de la posición menos el stop ATR; el stop en blanco es el precio de apertura de la posición más el stop ATR.
Esta estrategia traza al mismo tiempo la subida y bajada de las vías de acceso a Dongxian y las líneas de stop loss de ATR, formando un sistema de negociación completo.
El uso del canal de Dongxian para determinar la dirección de la tendencia, tiene cierta capacidad de seguimiento de tendencias.
Los parámetros de Smoother en el canal de Dongxian son ajustables y se pueden optimizar para encontrar la combinación de parámetros óptima.
La combinación de los indicadores ATR con el mecanismo de suspensión de pérdidas permite un control efectivo del riesgo.
Las reglas para el trading de divisas son claras y fáciles de entender, y son adecuadas para el aprendizaje inicial.
La estructura del código es clara, fácil de entender y de reutilizar.
En el caso de la ruta de Dongcheng, existe un riesgo de transacciones erróneas en el caso de fluctuaciones de precios dentro del rango de la consolidación.
La configuración incorrecta del rango de detención ATR puede hacer que la detención sea demasiado amplia o demasiado sensible.
Las posiciones con más vacantes pueden estar demasiado concentradas, por lo que es necesario establecer reglas de gestión de posiciones.
Se requiere verificación de la adecuación de las variedades de comercio, y los parámetros de las diferentes variedades necesitan ser optimizados de forma independiente.
También hay que tener en cuenta los costos de transacción, que se deben ajustar en un entorno de altos costos.
Optimización de los parámetros de ciclo de la vía de Dongxian para encontrar la combinación óptima de parámetros.
Prueba diferentes configuraciones de coeficientes ATR para encontrar el mejor límite de pérdida.
En el caso de que se utilice el método de la pérdida móvil para bloquear ganancias basado en el ATR, se puede utilizar el método de la pérdida móvil.
Ajuste adecuado de la proporción de las posiciones de más de un eje vacante en función de la situación del mercado.
Prueba la robustez de los parámetros de las diferentes variedades, buscando combinaciones de parámetros generales.
Investiga la introducción de filtros como el indicador de la horquilla para mejorar la estabilidad de la estrategia.
Adaptabilidad de los diferentes parámetros de prueba de costos de transacción.
En resumen, la estrategia en su conjunto es una estrategia de seguimiento de tendencias más simple, centrada en la aplicación de la vía de Dongxian. La estrategia tiene la ventaja de ser fácil de entender y adecuada para el aprendizaje, pero aún debe optimizarse para los parámetros y el riesgo.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © kriswaters
//@version=4
strategy("Donchian Channels Strategy by KrisWaters", overlay=true )
// Date filter
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2017, title = "From Year", minval = 1900)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// Strategy Settings
canEnterLong = input(true, title="Can Enter Long Position")
canEnterShort = input(false, title="Can Enter Short Position")
showLongChannel = input(true, title="Show Donchian Long Channels")
showShortChannel = input(false , title="Show Donchian Short Channels")
useAtrAsStopRule = input(false, title="Enable ATR Stop Rule")
// DonCcian Channel Lengths
longUpperLength = input(20, minval=1)
longLowerLength = input(10, minval=1)
shortUpperLength = input(10, minval=1)
shortLowerLength = input(20, minval=1)
// Donchian indicator calculations
longUpperValue = highest(high,longUpperLength)
longLowerValue = lowest(low,longLowerLength)
shortUpperValue = highest(high,shortUpperLength)
shortLowerValue = lowest(low,shortLowerLength)
// Plot Donchian Channels
uLong = plot(showLongChannel ? longUpperValue : na, color=color.green, offset=1)
lLong = plot(showLongChannel ? longLowerValue : na, color=color.green, offset=1)
uShort = plot(showShortChannel ? shortUpperValue : na, color=color.red, offset=1)
lShort = plot(showShortChannel ? shortLowerValue : na, color=color.red, offset=1)
// Styling
fill(uLong,lLong, color=color.green, transp=95, title="Long Arkaplan")
fill(uShort,lShort, color=color.red, transp=95, title="Short Arkaplan")
// Stop-loss value calculations
atrMultiplier = 2.0
atrValue = atr(20)
longStopValue = open - (atrMultiplier*atrValue)
shortStopValue = open + (atrMultiplier*atrValue)
// Plot stop-loss line
plot(useAtrAsStopRule ? longStopValue : na, color=color.red, linewidth=2, offset=1)
plot(useAtrAsStopRule ? shortStopValue : na, color=color.red, linewidth=2, offset=1)
// Long and Short Position Rules
if canEnterLong and na(longUpperValue) != true and na(longLowerValue) != true and window()
strategy.entry("Long", true, stop=longUpperValue)
strategy.exit("Long Exit", "Long", stop=useAtrAsStopRule ? max(longLowerValue,longStopValue) : longLowerValue)
if canEnterShort and na(shortUpperValue) != true and na(shortLowerValue) != true and window()
strategy.entry("Short", false, stop=shortLowerValue)
strategy.exit("Short Exit", "Short", stop=useAtrAsStopRule ? min(shortUpperValue,shortStopValue) : shortUpperValue)