
La estrategia se basa en el cálculo de la línea media de la vía, la creación de posiciones de más o de menos cuando el precio rompe la línea media de la vía, y el seguimiento de la tendencia de los precios de las acciones.
La estrategia primero calcula el promedio del punto más alto de 20 días como la trayectoria ascendente del canal, el promedio del punto más bajo de 20 días como la trayectoria descendente del canal, y calcula la línea media del canal. La línea media del canal representa la tendencia media de precios reciente.
La estrategia en general es más simple y directa, para determinar la tendencia del precio de las acciones a través del canal de precios básico, pertenece al tipo de estrategia de seguimiento de tendencias. La ventaja es que es fácil de operar, aprovechar al máximo las oportunidades de inversión que trae la tendencia de los precios, evitar que los fondos se bloqueen. La desventaja es que la configuración inadecuada de los parámetros puede afectar el efecto, y existe el riesgo de una cierta prueba de ajuste.
/*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)