
La estrategia de doble línea de paridad 360° es una estrategia de comercio cuantitativa que combina doble línea de paridad y la determinación de la fuerza de la tendencia. La estrategia determina la tendencia de los precios calculando la media de los diferentes períodos; al mismo tiempo, combina la acumulación de la angularidad de la línea de corte para determinar la fuerza de la tendencia, lo que permite una selección más precisa de la hora de comprar y vender.
La lógica central de la estrategia 360o de doble línea es:
Concretamente, la estrategia define una media original de 1 minuto y una media después de pasar por el filtro de Kalman. El filtro de Kalman puede eliminar parte del ruido de la media, lo que la hace más suave. Luego se calcula el ángulo de corte de las dos medias, que refleja el cambio de tendencia en el precio. Por ejemplo, cuando el ángulo de corte es positivo, indica que el precio está subiendo; al contrario, indica que ha bajado.
La estrategia elige 30 minutos como ciclo de cálculo, real summed todos los ángulos de corte positivos y negativos en ese ciclo. Cuando el ángulo de corte es superior a 360 grados, la tendencia es muy fuerte y emite una señal múltiple; por el contrario, cuando el ángulo de corte es menor a 360 grados, la tendencia se invierte y emite una señal de vacío.
Las principales ventajas de la estrategia de 360o de doble línea son:
La estrategia de 360o de doble línea también tiene algunos riesgos:
Para reducir los riesgos mencionados anteriormente, se puede acortar el ciclo de la línea media, optimizar la combinación de parámetros, aumentar el mecanismo de detención de pérdidas, etc.
La estrategia de 360o de doble línea recta tiene más posibilidades de optimización:
La estrategia de doble línea 360 ° utiliza el filtro uniforme y el ángulo de corte para determinar la tendencia, lo que permite una estrategia de negociación cuantitativa más sólida. En comparación con un solo indicador técnico, la estrategia tiene una consideración más completa y una mayor utilidad. Sin embargo, se debe prestar atención a la adaptación de los parámetros y el control del riesgo, que se puede optimizar en el futuro para que la estrategia funcione mejor.
/*backtest
start: 2024-01-25 00:00:00
end: 2024-01-30 08:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//@library=math
strategy("策略360°(测试)", overlay=true)
// 定义1分钟均线
ma1 = request.security(syminfo.tickerid, "1", ta.sma(close, 1)) // 在这里使用了 math.sma() 函数
//plot(ma1, color=color.yellow, title="原始均线")
// 定义卡尔曼滤波函数,参考了[1](https://www.tradingview.com/pine-script-docs/en/v5/language/Methods.html)和[2](https://www.tradingview.com/pine-script-docs/en/v5/language/Operators.html)的代码
kalman(x, g) =>
kf = 0.0
dk = x - nz(kf[1], x) // 在这里使用了 nz() 函数
smooth = nz(kf[1], x) + dk * math.sqrt(g * 2) // 在这里使用了 math.sqrt() 函数
velo = 0.0
velo := nz(velo[1], 0) + g * dk // 在这里使用了 nz() 函数
kf := smooth + velo
kf
// 定义卡尔曼滤波后的均线
ma2 = kalman(ma1, 0.01)
plot(ma2, color=color.blue, title="卡尔曼滤波后的均线")
// 定义切线角
angle = math.todegrees(math.atan(ma2 - ma2[1])) // 在这里使用了 math.degrees() 和 math.atan() 函数
// 定义累加的切线角
cum_angle = 0.0
cum_angle := nz(cum_angle[1], 0) + angle // 在这里使用了 nz() 函数
// 定义30分钟周期
period = 30 // 您可以根据您的需要修改这个参数
// 定义周期内的切线角总和
sum_angle = 0.0
sum_angle := math.sum(angle, period) // 在这里使用了 math.sum() 函数,把周期内的切线角总和改成简单地把 5 个切线角相加
// 定义买入和卖出条件
buy = sum_angle > 360// 在这里使用了 math.radians() 函数
sell = sum_angle < -360
// 执行买入和卖出操作
strategy.entry("Long", strategy.long, when=buy)
strategy.close("Short", when=buy)
strategy.entry("Short", strategy.short, when=sell)
strategy.close("Long", when=sell)
// 绘制曲线图
plot(sum_angle, color=color.green, title="周期内的切线角总和")
plot(angle, color=color.red, title="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角