Estrategia de pronóstico de precios logarítmicos

El autor:¿ Qué pasa?, Fecha: 2023-12-20 14:40:23
Las etiquetas:

img

Resumen general

Esta estrategia utiliza funciones logarítmicas para modelar cambios de precios basados en la desviación estándar y la media del volumen de negociación para calcular el puntaje z como parámetros de entrada a la función logarítmica para predecir precios futuros.

Principios de estrategia

  1. Calcular el valor ROC del precio de cierre, acumular valores positivos en volume_pos y valores negativos en volume_neg
  2. Calcular la diferencia entre el volumen_pos y el volumen_neg como volumen_net
  3. Calcular la desviación estándar net_std y la media net_sma del volumen net_
  4. Calcular el puntaje z dividiendo net_sma por net_std
  5. Utilice el precio de cierre, la desviación estándar de 20 días del precio de cierre y el puntaje z como parámetros en la función logística para predecir el precio del próximo período
  6. Posición larga cuando el precio previsto está por encima del precio real actual * 1.005, posición cerrada cuando está por debajo de * 0.995

Análisis de ventajas

Esta estrategia combina la información estadística del volumen de operaciones y la predicción de precios utilizando funciones logarítmicas.

Las ventajas son:

  1. Utiliza la diferencia de largo y corto en el volumen de operaciones para medir el sentimiento del mercado
  2. La función logarítmica encaja bien con la curva de cambio de precios para la predicción
  3. Estrategia sencilla y directa, fácil de aplicar

Análisis de riesgos

También existe cierto riesgo en esta estrategia:

  1. Los indicadores de volumen de negociación tienen retraso, no pueden reflejar los cambios del mercado a tiempo
  2. La predicción logarítmica no siempre es precisa, puede ser engañosa
  3. No existen medidas de detención de pérdidas, no se pueden controlar pérdidas

Los riesgos pueden reducirse:

  1. Combinar otros indicadores para juzgar la fiabilidad de las señales de volumen
  2. Optimizar los parámetros de la función logarítmica para mejorar la precisión de la predicción
  3. Establecer líneas de stop loss para limitar la pérdida máxima por operación y en general

Direcciones de optimización

Esta estrategia se puede optimizar aún más mediante:

  1. Adopte el aprendizaje automático para optimizar dinámicamente la función logarítmica
  2. Incorporar indicadores de volatilidad para ajustar el tamaño de las posiciones
  3. Añadir filtro bayesiano para filtrar señales no válidas
  4. Combinar con estrategias de escape para entrar en los puntos de escape
  5. Usar reglas de asociación para detectar señales de divergencia volumen-precio

La combinación de múltiples métodos puede mejorar aún más la estabilidad y la rentabilidad.

Conclusión

Esta estrategia integra indicadores estadísticos del volumen de operaciones y predicción logarítmica en una metodología de operaciones cuantitativa única. Con la optimización continua, puede convertirse en un sistema de operaciones automatizado eficiente y estable. Al aprovechar el aprendizaje automático y las teorías de optimización de cartera, confiamos en mejorar aún más su rendimiento comercial.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Logistic", overlay=true )

volume_pos = 0.0
volume_neg = 0.0
roc = roc(close, 1)

for i = 0 to 100
    if (roc > 0)
        volume_pos := volume
    else
        volume_neg := volume
    
volume_net = volume_pos - volume_neg
net_std    = stdev(volume_net, 100)
net_sma    = sma(volume_net, 10)
z          =  net_sma / net_std
std        = stdev(close, 20)

logistic(close, std, z) =>
    m = (close + std)
    a = std / close
    pt = m / ( 1 + a*exp(-z))
    pt
    
    
pred = logistic(close, std, z)

buy = pred > close * 1.005
sell = pred < close * 0.995

color = strategy.position_size > 0? #3BB3E4 : strategy.position_size == 0? #FF006E : #6b6b6b
barcolor(color)


if (buy == true)
    strategy.entry("Long", strategy.long, comment="Open L")
    
if (sell == true)
    strategy.close("Long", comment="Close L")


Más.