Esta estrategia calcula las líneas de media móvil del canal y establece posiciones largas o cortas cuando el precio rompe las líneas del canal para seguir la tendencia del precio de la acción.
La estrategia primero calcula el promedio alto de 20 días como el rieles superior del canal, el promedio bajo de 20 días como el rieles inferior del canal, y calcula la línea media del canal. La línea media del canal representa la tendencia de precio promedio reciente. Cuando el precio rompe la línea media del canal hacia arriba, se establece una posición larga. Cuando el precio rompe la línea media del canal hacia abajo, se establece una posición corta. Siga la tendencia del precio hasta que el precio vuelva a caer al lado opuesto del rango del canal, cierre la posición.
En general, esta estrategia es relativamente simple y directa. Juzga las tendencias del precio de las acciones a través de canales básicos de precios y pertenece al tipo de tendencia siguiente. Las ventajas son la fácil operación, el uso completo de las oportunidades de inversión traídas por las tendencias de precios y evitar el bloqueo de fondos. Las desventajas son que la configuración inadecuada de parámetros puede afectar el rendimiento y hay ciertos riesgos de pruebas de retroceso. A través de una optimización razonable, se puede mejorar la estabilidad de la estrategia y mejorar el rendimiento comercial real.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2) //stock strategy strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2019, "Backtest Start Year") testEndMonth = input(3) testEndDay = input(31, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = 20 dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 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) strategy.close("simpleBuy",when=close < dcLower) strategy.entry("simpleSell", strategy.short,when=close < dcAverage) strategy.close("simpleSell",when=close > dcAverage)