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

 
Maxim Dmitrievsky #:
Un análogo de python api se hizo para R, algo allí no funcionó para subirlo a un mercado local como pypi, no sé sobre el resto. El código en lenguajes interpretados se ejecuta lentamente, probablemente no tenga un gran sentido, es decir, no obtendrás pruebas rápidas :)

El sentido es un concepto relativo) En mi opinión, es mejor cuando algo está disponible y puedes elegir si usarlo o no) Las pruebas rápidas no funcionarán, pero al menos algún tipo de prueba para evaluar el sentido de seguir jugueteando.

 
Aleksey Nikolayev #:

Aún así, me gustaría entender la razón por la que no existe un análogo de mt-R para python. Me refiero a la posibilidad de lanzar un intérprete desde un programa mql5 con la capacidad de enviarle comandos e intercambiar datos en ambas direcciones. Esto es conveniente, por ejemplo, para probar rápidamente un modelo entrenado sin destilarlo en código mql5, y en general es una herramienta bastante flexible. Y parece ser exactamente lo que quiere un aficionado a "parlotear y parlotear".

Este es un desarrollo privado (no de MQL), creo que San Sanych encargó el trabajo o alguien más.
.

Si lo necesitas mucho puedes hacerlo tu mismo o encargarlo en freelance. Solo haz una copia de la funcionalidad (tambien puedes hacer una copia de los nombres de las funciones, para portabilidad de 1 a otro motor) para Python.

 
Renat Fatkhullin #:


Por favor, explique cómo trabajar con la función de pérdida
¿Cómo utilizar la función objetivo para la minimización?

Y segunda pregunta.
En Matlab la función fminsearch() utiliza el algoritmo de Nelder-Mead.
Este algoritmo no está presente en ENUM_LOSS_FUNCTION.
¿Podemos contar con añadir este algoritmo?

Документация по MQL5: Методы матриц и векторов / Машинное обучение / Loss
Документация по MQL5: Методы матриц и векторов / Машинное обучение / Loss
  • www.mql5.com
Loss - Машинное обучение - Методы матриц и векторов - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksey Nikolayev #:

En mi opinión, es mejor cuando algo está disponible y puedes elegir si usarlo o no) Las pruebas rápidas no funcionarán, pero al menos algún tipo de prueba para evaluar el significado de seguir jugueteando.

Bueno, no estamos considerando las pruebas relativistas, cuyos partidarios inundan el foro. Las pruebas sólo deben ser rápidas y correctas, para ello se puede hacer un probador de un ciclo para evaluar el alboroto. Además, puede participar en el proceso de aprendizaje indirectamente.
 
Roman #:

Tal vez no se trate de seguridad, sino de la complicada api de Py para arrays.
Y simplemente no se molestaron en hacerlo.
Hay una api de numpy realmente penosa.

No es aburrido, sólo inusual. Cuando te acostumbras a ella, se convierte en un aguafiestas. Yo votaría por una api así de arrays en lenguajes tipo C como MQL.

 
sibirqk #:

No es doloroso, sólo inusual. Cuando te acostumbras, se convierte en una emoción. Yo votaría por tal api de matrices en lenguajes tipo C como MQL.

No, no lo tengas en lenguajes tipo C ))
Transmisión en bytes, no hay nada mejor.
El resto son todo wrappers, con la imaginación del desarrollador del wrapper.

 

Busco compañeros para un interesante y emocionante viaje por senderos desconocidos en busca de misteriosos predictores/características/señales.

Tengo un mapa por el que encontrarlos, necesito manos para tender trampas y reflexionar sobre los hábitos y el halo de estos asombrosos fenómenos.

El camino no es fácil, es largo, pero fascinante, ¡y estoy seguro de que no nos quedaremos sin trofeos!

En caso de duda, ¡pregunte!

 

¿Otra vez?

)

 
Roman #:

Por favor, explique cómo trabajar con la función de pérdida
¿Cómo utilizar la función objetivo para la minimización?

Y la segunda pregunta.
En Matlab la función fminsearch() utiliza el algoritmo de Nelder-Mead.
Este algoritmo no está presente en ENUM_LOSS_FUNCTION.
¿Podemos contar con añadir este algoritmo?

La tarea de entrenar una red neuronal es encontrar un algoritmo que minimice el error sobre la muestra de entrenamiento, para ello se utiliza una función de pérdida. Para calcular la desviación se utiliza el métodoLoss, que permite especificar 1 de los 14 tipos de la enumeraciónENUM_LOSS_FUNCTION.

Los valores de desviación obtenidos se utilizan entonces para refinar los parámetros de la red neuronal, esto se hace utilizando el métodoDerivativo, que calcula los valores de la derivada de la función de activación y lo escribe en el vector/matriz pasado.

Gracias a la posibilidad de ampliar las enumeraciones, podemos añadir nuevos algoritmos según sea necesario.

 
Renat Fatkhullin #:

La tarea de entrenar una red neuronal es encontrar un algoritmo que minimice el error sobre la muestra de entrenamiento, para ello se utiliza una función de pérdida. Para calcular la desviación se utiliza el método dePérdida, que permite especificar 1 de los 14 tipos de enumeraciónENUM_LOSS_FUNCTION.

Los valores de desviación obtenidos se utilizan entonces para refinar los parámetros de la red neuronal, esto se hace utilizando el métodoDerivativo, que calcula los valores de la derivada de la función de activación y la escribe en el vector/matriz pasado.

Gracias a la posibilidad de ampliar las enumeraciones, podemos añadir nuevos algoritmos según sea necesario.


Me di cuenta por el ejemplo de MAPE.

Pensé que era una función de pérdida que minimiza la función objetivo.
Y esto es sólo un cálculo métrico.

vector Forecast = {28.252177870295327, 1.386017247821653, 1.321279511381957};
vector Fact     = {45.979999999999997, 1.710000000000000, 1.340000000000000};

double MAPE = Forecast.Loss(Fact,LOSS_MAPE);

Print(DoubleToString(MAPE,2) + " %");
19.63 %


Que es lo mismo en el código

vector Forecast = {28.252177870295327, 1.386017247821653, 1.321279511381957};
vector Fact     = {45.979999999999997, 1.710000000000000, 1.340000000000000};

vector loss = {0.,0.,0.};

for(int i=0; i<3; i++)
   loss[i] = fabs(Forecast[i] - Fact[i]) / Fact[i];

double MAPE = loss.Mean()*100;

Print(DoubleToString(MAPE,2) + " %");
19.63 %



Entonces hay una pregunta a la descripción de la documentación.

¿Hay algún error en la descripción?

ll

Tal vez sería más correcto:
Calcula el valor de las pérdidas como una métrica MSE, MAE, etc...?
Después de todo, la función de minimizar las pérdidas debe ser escrita por uno mismo.


Y aquí hay alguna descripción extraña.

i

Документация по MQL5: Методы матриц и векторов / Машинное обучение / Loss
Документация по MQL5: Методы матриц и векторов / Машинное обучение / Loss
  • www.mql5.com
Loss - Машинное обучение - Методы матриц и векторов - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Razón de la queja: