Discusión sobre el artículo "Análisis angular de los movimientos de precios: un modelo híbrido para predecir los mercados financieros"

 

Artículo publicado Análisis angular de los movimientos de precios: un modelo híbrido para predecir los mercados financieros:

¿Qué es el análisis angular de los mercados financieros? ¿Cómo usar los ángulos de precios y el aprendizaje automático para predecir con una exactitud de 67? ¿Cómo combinar un modelo de regresión y clasificación con características angulares y obtener un algoritmo que funcione? ¿Qué tiene que ver Gann con esto? ¿Por qué los ángulos de movimiento de los precios son una buena señal para el aprendizaje automático?

Cada día nacen miles de velas en los gráficos de pares de divisas, acciones y futuros. Estas se pliegan en patrones, forman tendencias, crean apoyos y resistencias. Pero bajo estas imágenes familiares se esconde una esencia matemática que rara vez notamos: los ángulos entre los sucesivos puntos de precio.

Eche un vistazo al gráfico normal del EURUSD. ¿Qué ve? ¿Líneas y barras? Imagine ahora que cada segmento entre dos puntos consecutivos forma un determinado ángulo con el eje horizontal. Este ángulo tiene un significado matemático preciso. Un ángulo positivo indica un movimiento ascendente, mientras que un ángulo negativo indica un movimiento descendente. Cuanto mayor sea el ángulo, más pronunciado será el movimiento del precio.

¿Suena fácil? Pues en esa sencillez reside una sorprendente profundidad, porque los ángulos no son iguales entre sí: forman su propio patrón, su propia melodía, y resulta que esa melodía encierra las claves del futuro movimiento del mercado.


Autor: Yevgeniy Koshtenko

 

3 publicaciones seguidas, me asombra, "los tontos tienen pensamientos parecidos" :-)

hacemos aproximadamente lo mismo, simultánea e independientemente.

peleas similares con las esquinas, pero sólo el caballo antes que el carro (lo único previsto es el equilibrio personal, las comillas no les importa):

No voy a pantallazo sobre Gan, pero en mi opinión - no todo es malo allí y allí ángulo = volatilidad típica de los ciclos naturales.
intuitivamente, por experiencia personal y tener lo que está a la mano, Gan dedujo lo que dedujo. pero más objetivo que el MACD :-)

 
¿y 24 compases es sólo un ejemplo?
 

Una pregunta más, por si me la pueden responder.

Al subir los resultados a ONNX e implementar el EA ha surgido un problema. Al transferir los datos con dimensión {1,31} al primer modelo de clasificación no hay problemas, obtengo los valores

2025.04.22 19:47:28.268 test_gann (ORDIUSDT,M5) directionUpDn = 1 directionStrength=0.44935011863708496


Pero al pasar los mismos datos al segundo modelo, sigo obteniendo el siguiente error: ONNX: parameter is empty, inspect code '° :àh½5E' (705:10). Ninguno de los parámetros pasados es 0.

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 0, input_matrix[0][i] = -12.92599868774414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 1, input_matrix[0][i] = -12.92599868774414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 2, input_matrix[0][i] = -42.55295181274414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 3, input_matrix[0][i] = 72.71257781982422

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 4, input_matrix[0][i] = 74.29901123046875

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 5, input_matrix[0][i] = -61.42539596557617

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 6, input_matrix[0][i] = 56.164878845214844

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 7, input_matrix[0][i] = -80.11347198486328

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 8, input_matrix[0][i] = 79.91580200195312

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 9, input_matrix[0][i] = -48.93017578125

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 10, input_matrix[0][i] = 80.48663330078125

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 11, input_matrix[0][i] = -79.71015930175781

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 12, input_matrix[0][i] = -45.92404556274414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 13, input_matrix[0][i] = -82.36412048339844

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 14, input_matrix[0][i] = -56.164878845214844

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 15, input_matrix[0][i] = -10.630552291870117

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 16, input_matrix[0][i] = 62.323272705078125

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 17, input_matrix[0][i] = 13.0

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 18, input_matrix[0][i] = 10.0

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 19, input_matrix[0][i] = -12.92599868774414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 20, input_matrix[0][i] = -61.48434829711914

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 21, input_matrix[0][i] = -36.735313415527344

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 22, input_matrix[0][i] = -23.80649185180664

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 23, input_matrix[0][i] = 0.3333333432674408

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 24, input_matrix[0][i] = 6.955999851226807

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 25, input_matrix[0][i] = 0.029581977054476738

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 26, input_matrix[0][i] = -0.5281187295913696

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 27, input_matrix[0][i] = 0.4025301933288574

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 28, input_matrix[0][i] = 420.0

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 29, input_matrix[0][i] = 641.6666870117188

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 30, input_matrix[0][i] = 0.6545454263687134

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) ONNX: el parámetro está vacío, inspeccionar código '° :àh½5E' (705:10)

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) Error de ejecución: 5805

Tal vez puedas ayudarme con el error (la inmensidad de Internet no ayudó)




 

en netrona el propio modelo se muestra normalmente

Archivos adjuntos:
 

Métrica de la barra atrás = 60, adelante = 30

Precisión de entrenamiento: 0,9200 | Precisión de prueba: 0,8713 | GAP: 0,0486

Puntuación F1 tren: 0,9187 | Puntuación F1 prueba: 0,8682 | GAP: 0,0505


En distancias cortas, CatBoost no funciona, el modelo está sobreentrenado.

 
Al ejecutar el código, se requiere que seaborn esté instalado:
import seaborn as sns