
La estrategia utiliza el pensamiento de las ondas de Kalman y la regresión de la media para capturar las fluctuaciones anormales a corto plazo en el precio de las acciones y lograr una negociación orientada a las acciones. La estrategia primero establece un modelo de la relación de precios de las acciones con el índice de mercado, y luego utiliza la técnica de ondas de Kalman para hacer predicciones y ondas. La estrategia genera transacciones cuando la relación se desvía del nivel normal.
La idea central de esta estrategia es la creación de un modelo de proporción entre el precio de las acciones en sí y el precio del índice de mercado. Esta proporción puede reflejar el nivel de precios de las acciones en relación con el mercado en general. Cuando la proporción es alta, se considera que las acciones están sobrevaloradas, lo que genera una señal de venta; cuando la proporción es baja, se considera que las acciones están infravaloradas, lo que genera una señal de compra.
Para suavizar las ondas de filtración de la señal de la tasa de contraste, la estrategia utiliza el algoritmo de las ondas de Carman. Las ondas de Carman se ponderan entre el valor real observado de la tasa y el valor previsto, actualizando la tasa de previsión en tiempo real. Y se calcula un suavizado valor de las ondas de Carman.
Además, la estrategia también tiene en cuenta el factor volumen. La verdadera señal de transacción se produce solo cuando el volumen de transacción es grande, lo que puede evitar que se produzcan transacciones erróneas.
La mayor ventaja de esta estrategia es que utiliza el algoritmo de las ondas de Carman para suavizar y predecir con eficacia la relación de precios. En comparación con el modelo simple de regreso a la media, las ondas de Carman pueden reflejar mejor los cambios dinámicos en los precios, especialmente cuando los precios fluctúan fuertemente. Esto permite a la estrategia detectar las anomalías en los precios a tiempo y generar señales de negociación precisas.
En segundo lugar, la combinación de volúmenes de transacción también aumenta la aplicabilidad práctica de la estrategia. Un filtro de volumen de transacción razonable ayuda a evitar algunas señales erróneas y reduce los costos de transacción innecesarios.
En general, la estrategia combina con éxito varias técnicas, como las ondas de Kalman, la regresión de la media y el análisis de volumen de transacciones, para formar una estrategia de comercio cuantitativa más robusta.
A pesar de que la estrategia es muy buena en teoría y técnica, existen algunos riesgos potenciales que requieren atención en la práctica.
En primer lugar, el riesgo del modelo. Algunos parámetros clave en el modelo de filtración de Kármán, como la diferencia de ruido de proceso, la diferencia de ruido de observación, etc., requieren una estimación basada en datos históricos. Si la estimación es inexacta o si el entorno del mercado cambia significativamente, esto provocará un desvío en las predicciones del modelo.
El segundo es el riesgo de costos de deslizamiento. Las operaciones frecuentes generan más costos de deslizamiento, lo que perjudica los beneficios de la estrategia. La optimización de parámetros y el filtro de volumen de transacciones pueden reducir las transacciones innecesarias en cierta medida.
Por último, existe un cierto riesgo sistémico de mercado al seguir un índice de mercado como referencia. Cuando el mercado en su conjunto está en una situación de gran volatilidad, el precio de las acciones individuales en relación con el mercado también puede ser anormal. En este caso, la estrategia puede generar una señal errónea.
La estrategia también tiene margen para una mayor optimización:
El uso de modelos de aprendizaje profundo más complejos para ajustar y predecir las tasas de precios puede mejorar la precisión y robustez de los modelos.
Optimización de las reglas de filtración de volumen de transacciones para lograr una configuración de umbral de volumen de transacciones más dinámica e inteligente. Esto puede reducir la probabilidad de transacciones erróneas.
Prueba diferentes índices de mercado como referencia estratégica, elige índices con menor volatilidad y más estabilidad. Esto puede reducir el impacto del riesgo sistémico en el mercado.
En combinación con el análisis de los fundamentos de las acciones, se evita la negociación de acciones con un deterioro evidente de los fundamentos. Esto permite seleccionar las mejores ofertas de calidad.
El uso de datos intraday de alta frecuencia para la detección y optimización de estrategias puede mejorar el rendimiento de las estrategias en el mercado.
La estrategia utiliza con éxito el modelo de las ondas de Kármán para capturar las fluctuaciones anormales a corto plazo de los precios de las acciones. Al mismo tiempo, la introducción de señales de volumen de transacción también aumenta la practicidad de la estrategia. Aunque todavía existen ciertos riesgos de modelo y de mercado, es una estrategia de comercio cuantitativa muy prometedora.
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 1m
basePeriod: 1m
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/
// © xXM3GAXx
//@version=5
strategy("My strategy", overlay=true)
//SPY or QQQ
context = request.security("BTC_USDT:swap", timeframe.period, input(close))
//our stock
particular = input(close)
//ratio
src = ta.roc(particular, 1) / math.abs(ta.roc(context, 1))
//kalman calculation
Sharpness = input.float(1.0)
K = input.float(1.0)
greencolor = color.lime
redcolor = color.red
velocity = 0.0
kfilt = 0.0
Distance = src - nz(kfilt[1], src)
Error = nz(kfilt[1], src) + Distance * math.sqrt(Sharpness*K/ 100)
velocity := nz(velocity[1], 0) + Distance*K / 100
kfilt := Error + velocity
//2 std devs up and down
upper = kfilt[1] + 2 * ta.stdev(kfilt, input(20))
lower = kfilt[1] - 2 * ta.stdev(kfilt, input(20))
//plotting for visuals
plot(kfilt, color=velocity > 0 ? greencolor : redcolor, linewidth = 2)
plot(upper)
plot(lower)
//plot(ta.ema(ta.roc(particular, 1)/ta.roc(context, 1), 5), color = #00ffff, linewidth=2)
//volume data
vol = volume
volema = ta.ema(volume, 10)
//buy when ratio too low
longCondition = kfilt<=lower and vol>=volema
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
//sell when ratio too high
shortCondition = kfilt>=upper and vol>=volema
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)