Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 2956

 
Aleksey Nikolayev #:

La ayuda de OnnxTypeInfo carece de explicaciones sobre el campo dimensions[]. Sería bueno explicar el significado de esta matriz al menos en el ejemplo del proyecto ONNX.Price.Prediction, donde (MT5 versión 3621) resulta así:

En términos python, es la forma del objeto.

 
Rashid Umarov #:

En python, es la forma del objeto.

Entonces los números negativos y el hecho de que la longitud del array sea una unidad mayor que el número de dimensiones de los parámetros son confusos.

Además, la forma de los parámetros se establece en el script, no se toma de las propiedades del modelo. ¿Es esto un error o una característica?

 
Aleksey Nikolayev #:

Entonces, los números negativos y el hecho de que la longitud de la matriz sea una unidad mayor que el número de medidas del parámetro son confusos.

Además, la forma de los parámetros se establece en el script, no se toma de las propiedades del modelo. ¿Es esto un error o una característica?

Sí, me olvidé de los valores negativos. Lo comprobaré.

 

Hola a todos

Consigo operar con cierto éxito en modo manual, pero me gustaría automatizar el proceso. Pensando en ello, decidí tratar de consultar sobre el tema del aprendizaje automático. ¿Quién utiliza qué modelos y con qué éxito? La forma en que veo el problema es la siguiente:

La idea fundamental es que no hay que predecir la dirección de la tendencia, sino los tres puntos: comprar, vender y esperar. Es decir, 1 (comprar), -1 (vender), 0 (mantener la operación actual si la hay o no hacer nada si no hay operaciones). Es deseable trabajar con series temporales en minutos, que aún no he resuelto. Es importante que se tengan en cuenta las series temporales de algún número de barras pasadas, para que se tengan en cuenta los indicadores del histórico, de lo contrario no se verá clara su dinámica. Tengo alrededor de 30 de ellos, es probablemente difícil de mantener en mi mente, pero todavía de alguna manera me las arreglo para el comercio con las manos.

Según he entendido, en el aprendizaje automático hay tareas de clasificación, por ejemplo, si la tendencia será alcista o bajista, o predecir un valor específico como el precio estará aquí con tal error. Pero en los mercados financieros la tarea es un poco diferente: maximizar el beneficio minimizando las detracciones. Y no he visto este tipo de modelos de pequeño aprendizaje.

Es decir, más beneficios cuando se maximiza su tamaño para cada operación posible y se minimizan las pérdidas, alta precisión de entrada y salida de una operación:

Beneficio = operaciones positivas - operaciones perdedoras, cuando se tiene en cuenta el spread,

donde la suma de las operaciones positivas debe tender al máximo, y la suma de las operaciones perdedoras debe tender a cero. Entonces el beneficio tenderá al máximo por definición, a igualdad de otros factores (por ejemplo, el tamaño del lote).

Es decir, en mi opinión, debería existir tal modelo, entonces las entradas y salidas serán más precisas.

 
Aleksey Nikolayev #:

Entonces, los números negativos y el hecho de que la longitud de la matriz sea una unidad mayor que el número de medidas del parámetro son confusos.

Además, la forma de los parámetros se establece en el script, no se toma de las propiedades del modelo. ¿Es esto un error o una característica?

Un valor negativo de dimensión significa que esta dimensión no es fija y se establece a través de un parámetro externo. Por lo tanto, el script debería especificar explícitamente la dimensionalidad

 

Está claro que el ejemplo de utilizar el modelo ONNX en MQL5 es sólo una ilustración de esto y nada más. Pero aún así, me gustaría llamar la atención sobre un error muy importante. En el aprendizaje automático, la primera etapa es el preprocesamiento. Esto incluye muchas cosas, desde la normalización trivial hasta la reducción de la dimensionalidad y otros trucos de ingeniería. La regla principal de cualquier predictor y transformación de objetivos en esta etapa es que todos los parámetros de transformación (como media, mediana, sd, mad, etc.) se calculan en el conjunto de entrenamiento. El conjunto de prueba y los nuevos datos se procesan utilizando los parámetros obtenidos en el conjunto de entrenamiento.

Así que en el ejemplo era necesario calcular media/sd en el tren, pasar estos datos a la parte donde se hace el predicado, procesar los nuevos datos con estos parámetros. Después, desnormalizar y obtener los valores reales del precio predicho. Esta secuencia es importante.

Está claro que nadie alimenta los precios reales a la entrada del modelo, pero esto ya es específico.

Suerte

 
Slava #:

Un valor de dimensión negativo significa que esta dimensión no es fija y se establece a través de un parámetro externo. Por lo tanto, el script debe especificar explícitamente la dimensión

Gracias, ahora está más claro.

 
Elvin Nasirov #:

Según tengo entendido, en el aprendizaje automático hay tareas de clasificación, por ejemplo, si la tendencia será alcista o bajista, o predecir un valor específico como que el precio estará aquí con tal o cual error. Pero en los mercados financieros la tarea es un poco diferente: maximizar los beneficios minimizando las caídas. Y no he visto este tipo de modelos de aprendizaje de Raspberry.

Este problema se resuelve mediante el uso de una función de pérdida adecuada al entrenar modelos MO. Hay dos problemas asociados con esto. En primer lugar, técnico - las funciones de pérdida estándar en los paquetes MO están relacionadas con la maximización de beneficios sólo indirectamente, lo que lleva a la necesidad de crear otras personalizadas. Esto es bastante difícil de hacer - se necesita tener un buen conocimiento de los paquetes MO a nivel de código. Si se resuelve este problema, puede haber un segundo problema matemático en el que la función de pérdida personalizada sea mala para el entrenamiento del modelo.

Si alguien resuelve un problema tan difícil, es poco probable que comparta la solución.

 
Optimiza tu estrategia (si te da pereza hacer otro margen) según el criterio de máximo beneficio, y luego entrénate con esta TS. O tome cualquier TS rentable del mercado. Este es el mismo entrenamiento con un profesor.

Si usted está interesado en derivar un TS basado sólo en NS, puedo ofrecer una variante de mi último artículo. Usted puede hacerlo de una manera similar. Inicialmente me preguntaba cómo hacer tal cosa. Exclusivo.
 
Aleksey Nikolayev #:

Si alguien resuelve un problema tan difícil, es poco probable que comparta la solución.

Ya la he compartido tantas veces, que en algún momento me aburrí....

La gente empieza a pensar y a hablar de lo que discutí aquí hace años, pero nadie entiende