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

 
Vladimir Perervenko:

Es mucho trabajo desmontar el código de otra persona. Sólo miramos la función custom_tester() y sólo la parte resaltada.

¿Cuál es el error de cálculo del resultado? Se calcula el resultado en cada iteración sumando resultado += testpr[i] - lastpr al valor anterior. Es la diferencia entre el Cierre de la barra actual y la anterior. Lo ideal sería usar Cerrar - Abrir, pero no importa. Lo importante es que habiendo recibido una señal al cierre de la barra actual, la considerará como una señal diff(Close) de la misma barra. Esto es incorrecto. La prima de la señal de la barra actual es diff(Close) de la barra siguiente. La señal debe desplazarse una barra hacia la derecha para calcular correctamente el resultado. p = model.predict_proba(X) a la derecha por una barra. Mostraré más cálculos en R ya que me resulta más fácil.

En la primera línea, convertir las predicciones a nominal (1,-1), desplazar a la derecha una barra, eliminar NA, obtener un vector de señales. La segunda línea resume acumulativamente el producto del vector señales y el vector diff(Close), habiéndolo alineado previamente con el vector señales en longitud. Eso nos dará el resultado correcto.

Buena suerte

Al abrir una posición se guarda el precio actual. En el ciclo, si la señal no cambia, seguimos avanzando el precio, manteniendo la operación abierta.

Si la señal cambia en la siguiente barra, invierta la operación (lastdeal) y reste del precio actual el precio de apertura de la operación, la diferencia = beneficio o pérdida, añádalo a la cantidad total acumulada de saldo

Para la compra, reste el precio de apertura del precio actual, para la venta - viceversa. No hay ningún error

Dado que la señal se toma para la barra actual, no debe desplazarse

1 - vender, 0 - comprar. La leyenda. El comprobador es muy sencillo

Tal vez se pueda acortar el código, yo no me he molestado en hacerlo

 
Maxim Dmitrievsky:

al abrir una operación, se mantiene el precio actual. En el ciclo, si la señal no ha cambiado, seguimos avanzando el precio, manteniendo la operación abierta.

Si la señal cambia en la siguiente barra, invierta la operación (lastdeal) y reste del precio actual el precio de apertura de la operación, la diferencia = beneficio o pérdida, añádalo a la cantidad total acumulada de saldo

Para la compra, reste el precio de apertura del precio actual, para la venta - viceversa. No hay ningún error

Dado que la señal se toma para la barra actual, no debe desplazarse

1 - vender, 0 - comprar. La leyenda. El comprobador es muy sencillo

Tal vez se pueda acortar el código, yo no me he molestado en hacerlo

Este es otro enfoque. Con esta variante parece que todo es correcto. Retiro mi comentario.

Buena suerte

 

Para los interesados en los retornados - alguna información en los cammats

https://smart-lab.ru/blog/569692.php#comments

Тестирование модели на машинном обучении. Часть четвертая.
Тестирование модели на машинном обучении. Часть четвертая.
  • smart-lab.ru
Тестирование модели на машинном обучении. Часть четвертая.
 
Maxim Dmitrievsky:

Para los interesados en los retornados - alguna información en los cammats

https://smart-lab.ru/blog/569692.php#comments

sólo el nombre ya da miedo :-)

 
Hombre, estoy atascado como siempre. Quién iba a pensar que hacer un array único en Java iba a ser un dolor de cabeza. :-(
 
Grigoriy Chaunin:

Se ha publicado una nueva versión de la biblioteca para conectar Python a MT5. Recordando el enlace https://github.com/RandomKori/Py36MT5 Pero hay problemas. En Visual Studio el proyecto de prueba funciona como debería, pero en MT hay algunos problemas poco claros. Ahora la biblioteca funciona bien con el directorio donde se encuentra el script de Python. No sé cómo depurar el enlace a MT. La MT está protegida del depurador. ¿Tal vez alguien sepa cómo depurar?

Hola,

Por favor, indíqueme cómo conectar la biblioteca.

El script puede estar ubicado en cualquier directorio? Según el código, está conectado a "C:\cal\Scripts\"

Al colocar la dll en la carpeta "MQL5\Libraries" la librería se incluye pero el resto de librerías, "python36.dll, kernell32.dll etc." no son visibles.

En la ruta de acceso a la prescripción de python.

¿Cómo conectar correctamente pymt.dll?

 
 
 
Maxim Dmitrievsky:

Hay un claro exceso de entrenamiento a primera vista. Se ve que hoy actúan igual que ayer, por lo que los 200 años de experiencia que supuestamente adquieren en el proceso de formación están muy lejos de lo que se necesita :-(

 
Mihail Marchukajtes:

Hay un claro exceso de entrenamiento a primera vista. Se puede ver que actúan hoy de la misma manera que actuaron ayer. Así que los 200 años de experiencia que supuestamente ganan en el proceso de formación no es lo que necesitas - por desgracia :-(

Sí, cero inteligencia