Discusión sobre el artículo "Random Decision Forest en el aprendizaje reforzado" - página 5
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Hola, aún no está listo. Cuando esté terminado, te escribiré.
Gracias por su respuesta.
¿Has pensado alguna vez en implementar Q-learning como función de recompensa en tu implementación actual de Random Forest?
Quiero decir, ¿quieres usar la "ecuación de Bellman" como una forma de recompensar al agente por actualizar la matriz de recompensa para cada vela cerrada por decisiones, y es eso posible?
Sólo tengo un ejemplo de código MQL5 de la fórmula Q para implementar, y si usted está interesado voy a publicar aquí. Traté de implementar yo mismo, pero no soy muy bueno en la implementación de la matriz y todavía no estoy 100% seguro de cómo utilizar la matriz correctamente.
Por cierto, tengo que admitir que EA a veces da algunos resultados prometedores y sorprendentes en ciertas condiciones de mercado, pero no siempre cuando el mercado cambia. Así que también estoy tratando de implementar algo para que EA cambie inmediatamente los predictores (indicadores) automáticamente si ocurre una pérdida. Vi que mencionaste esta idea de seleccionar automáticamente los predictores en uno de tus comentarios, que creo que es también la parte más importante.
Gracias por su respuesta.
¿Has pensado alguna vez en implementar Q-learning como función de recompensa en tu implementación actual de Random Decision Forest?
Quiero decir, ¿quieres usar la "ecuación de Bellman" como una forma de recompensar al agente por actualizar la matriz de recompensa para cada vela cerrada por decisiones, y es eso posible?
Sólo tengo un ejemplo de código MQL5 de la fórmula Q para implementar, y si usted está interesado voy a publicar aquí. Traté de implementar yo mismo, pero no soy muy bueno en la implementación de la matriz y todavía no estoy 100% seguro de cómo utilizar la matriz correctamente.
Por cierto, tengo que admitir que EA a veces da algunos resultados prometedores y sorprendentes en ciertas condiciones de mercado, pero no siempre cuando el mercado cambia. Así que también estoy tratando de implementar algo para que EA cambie inmediatamente los predictores (indicadores) automáticamente si ocurre una pérdida. Vi que mencionaste esta idea de seleccionar automáticamente los predictores en uno de tus comentarios, que creo que es también la parte más importante.
Sí, estaba pensando en Q-learning. Lo que pasa es que el propio bosque aleatorio aproxima la política, así que no hace falta la ecuación de Bellman. Además, el aprendizaje q está muy sobredimensionado.
Ahora estoy buscando soluciones para transformaciones automáticas de funciones, como "trucos de kernel". Entonces, iterativamente, podemos entrenar el modelo y seleccionar un modelo con características transformadas con un pequeño error de clasificación en un subconjunto de prueba.
Sí, estaba pensando en el aprendizaje Q. La cuestión es que el propio bosque aleatorio aproxima la política, por lo que no es necesaria la ecuación de Bellman. Además, el aprendizaje q está muy sobredimensionado.
Ahora estoy buscando soluciones para transformaciones automáticas de funciones, como "trucos de kernel". Entonces, iterativamente, podemos entrenar el modelo y seleccionar un modelo con características transformadas con un pequeño error de clasificación en un subconjunto de prueba.
Sí, estoy de acuerdo contigo sobre la convergencia de políticas. Pero con la implementación actual de política a política, la política no tiene en cuenta la pérdida consistente de historial de operaciones, flotación de operaciones, etc. Y por lo tanto, mediante la aplicación de Q, me refiero a que el agente tendrá una comprensión completa de la ganancia flotante actual de cada comercio abierto y las pérdidas y ganancias consecutivas anteriores y por lo tanto se aproximará a la política para maximizar los beneficios y NO apuntar sólo a maximizar el número de operaciones rentables que se vuelven irrelevantes cuando se producen grandes pérdidas.
Lo que quiero decir es que los beneficios de una serie de operaciones rentables se verán anulados por una gran pérdida, pero esto es irrelevante para el agente, ya que su objetivo es simplemente maximizar el número de operaciones rentables. Así que en Q-value podemos dar una recompensa inmediata al agente con el beneficio flotante actual, que el agente comprobará en cada vela abierta para tomar la siguiente decisión para maximizar los beneficios y minimizar las pérdidas, independientemente del número de operaciones rentables o de la finalización de las operaciones.
De todos modos, si planeas implementar algo para entrenar el modelo de forma iterativa y automática en sucesivas pérdidas, esto podría ser muy útil. Estaré mirando algo como esto en mi próximo artículo.
También, basado en mi entrenamiento EA y pruebas en el último par de semanas, me he dado cuenta de que sólo tiene que cambiar a un modelo diferente (diferentes valores de los indicadores o indicadores) de forma automática cuando se produce una pérdida, de lo contrario EA da una serie de operaciones rentables cuando los mercados golpean la estrategia para una cierta cantidad de tiempo. Pero una vez que ocurre una pérdida, la misma serie de pérdidas sigue ocurriendo durante bastante tiempo.
FxTrader562 :
Sí, estoy de acuerdo con usted sobre la convergencia de las políticas. Pero con la implementación actual de política a política, la política no tiene en cuenta las pérdidas sucesivas del historial de operaciones, los ingresos flotantes de las operaciones, etc. Y por lo tanto, al implementar Q, me refiero a que el agente tendrá pleno conocimiento del beneficio flotante actual de cada operación abierta y de las pérdidas y beneficios consecutivos anteriores, y por lo tanto aproximará la política para maximizar los beneficios y NO tendrá como único objetivo maximizar el número de operaciones rentables que se vuelven irrelevantes cuando se producen grandes pérdidas.
Lo que quiero decir es que los beneficios de una serie de operaciones rentables se verán anulados por una gran pérdida, pero esto es irrelevante para el agente, ya que su objetivo es simplemente maximizar el número de operaciones rentables. Así que en Q-value podemos dar una recompensa inmediata al agente con el beneficio flotante actual, que el agente comprobará en cada vela abierta para tomar la siguiente decisión de maximizar el beneficio y minimizar la pérdida, independientemente del número de operaciones rentables o de la finalización de las operaciones.
De todas formas, si planeas implementar algo para entrenar el modelo de forma iterativa y automática en sucesivas pérdidas, esto podría ser muy útil. Estaré mirando algo como esto en mi próximo artículo.
También, basado en mi entrenamiento EA y pruebas en el último par de semanas, me he dado cuenta de que sólo tiene que cambiar a un modelo diferente (diferentes valores de los indicadores o indicadores) de forma automática cuando se produce una pérdida, de lo contrario EA da una serie de operaciones rentables cuando los mercados golpean la estrategia para una cierta cantidad de tiempo. Pero tan pronto como se produce una pérdida, la misma serie de pérdidas sigue ocurriendo durante bastante tiempo.
Así que creo que la optimización automática sería útil para implementar en este caso. Creo que ya existe un artículo para la optimización automática y si puedes implementarlo para tu EA actual, la tarea estará completa.
Sí, estoy de acuerdo con usted sobre la convergencia de las políticas. Pero con la implementación actual de política a política, la política no tiene en cuenta las pérdidas sucesivas del historial de operaciones, los ingresos flotantes de las operaciones, etc. Y por lo tanto, al implementar Q, quiero decir que el agente tendrá pleno conocimiento del beneficio flotante actual de cada operación abierta y de las pérdidas y beneficios consecutivos anteriores, y por lo tanto aproximará la política para maximizar los beneficios y NO tendrá como único objetivo maximizar el número de operaciones rentables que se vuelven irrelevantes cuando se producen grandes pérdidas.
Lo que quiero decir es que los beneficios de una serie de operaciones rentables se verán anulados por una gran pérdida, pero esto es irrelevante para el agente, ya que su objetivo es simplemente maximizar el número de operaciones rentables. Así que en Q-value podemos dar una recompensa inmediata al agente con el beneficio flotante actual, que el agente comprobará en cada vela abierta para tomar la siguiente decisión para maximizar el beneficio y minimizar las pérdidas, independientemente del número de operaciones rentables o de la finalización de las operaciones.
De todos modos, si planeas implementar algo para entrenar el modelo de forma iterativa y automática en sucesivas pérdidas, esto podría ser muy útil. Voy a estar mirando algo como esto en mi próximo artículo.
También, basado en mi entrenamiento EA y pruebas en el último par de semanas, me he dado cuenta de que sólo tiene que cambiar a un modelo diferente (diferentes valores de los indicadores o indicadores) de forma automática cuando se produce una pérdida, de lo contrario EA da una serie de operaciones rentables cuando los mercados golpean la estrategia para una cierta cantidad de tiempo. Pero tan pronto como se produce una pérdida, la misma serie de pérdidas sigue ocurriendo durante bastante tiempo.
Así que creo que la optimización automática sería útil para implementar en este caso. Creo que ya existe un artículo para la optimización automática y si puedes implementarlo para tu EA actual, la tarea está completa.
Por ejemplo, puede cambiar la función de recompensa para acercarse a la relación de Sharpe. U otras métricas. Probé diferentes funciones y me di cuenta de que hacerlo más complicado no da mucha ventaja.
También puedes leer esto: https: //github.com/darden1/tradingrrl
La optimización automática es una buena idea, pero ahora estoy trabajando en mejorar el algoritmo actual.
Por ejemplo, puede cambiar la función de recompensa para aproximarse al ratio de Sharpe. U otras métricas. He probado diferentes funciones y me he dado cuenta de que hacerlo más complicado no da mucha ventaja.
También puedes leer esto: https://github.com/darden1/tradingrrl
La optimización automática es una buena idea, pero ahora estoy trabajando en mejorar el algoritmo actual.
Gracias por el artículo. Lo estudiaré.
No hay duda de que en términos de facilidad de codificación, velocidad de aprendizaje y precisión de los resultados, la implementación actual sigue siendo la mejor que he visto en aprendizaje automático, y añadiendo algunos indicadores más, es probable que los resultados puedan incluso mejorarse mucho.
Estoy completamente de acuerdo contigo en que las pequeñas complicaciones empeoran los resultados, y el EA aprende mejor por sí solo. Intenté aplicar stop loss y takeprofit para limitar la cantidad de pérdidas, y los resultados empeoraron con un stop loss ajustado.
Pero lo único que falta es el aprendizaje iterativo. Quiero decir que el algoritmo aprende sólo durante la optimización y después de que es totalmente dependiente de los datos entrenados y por lo tanto en un caso no podemos llamarlo "aprendizaje de refuerzo", ya que no aprende durante el comercio y sólo aprende durante el entrenamiento ,
Así que estoy buscando alguna solución sólo para automatizar la optimización en cada pérdida. Me refiero a cada pérdida y también la actualización de la recompensa, la EA debe llamar al optimizador para entrenarlo de nuevo para los datos del mes pasado. O podemos hacer una pausa por un tiempo después de una pérdida, y más tarde después de la optimización se completa EA reanudará el comercio de nuevo. De esta manera los árboles entrenados (archivo de texto Mtrees) siempre contendrán la última política basada en el mercado actual.
Probablemente hay algunos artículos sobre la optimización automática, pero yo no soy un programador de EA y por lo tanto no he encontrado una manera de integrarlo en su EA hasta el momento.
Dado que su implementación actual ya está utilizando la política de los datos preparados y por lo tanto a diferencia de otros EAs, su automatizador no necesita guardar los valores después de la optimización automática. Basta con ejecutar el optimizador y hacer clic en el botón de inicio junto con la fecha de inicio y fin para automatizar la optimización.
Gracias por el artículo. Lo estudiaré.
No hay duda de que en términos de facilidad de codificación, velocidad de aprendizaje y precisión de los resultados, la implementación actual sigue siendo la mejor que he visto en aprendizaje automático, y añadiendo algunos indicadores más, es probable que los resultados puedan incluso mejorar mucho.
Estoy completamente de acuerdo contigo en que las pequeñas complicaciones empeoran los resultados, y el EA aprende mejor por sí solo. Intenté aplicar stop loss y takeprofit para limitar la cantidad de pérdidas, y los resultados empeoraron con un stop loss ajustado.
Pero lo único que falta es el aprendizaje iterativo. Quiero decir que el algoritmo aprende sólo durante la optimización y después de que es totalmente dependiente de los datos entrenados y por lo tanto en un caso no podemos llamarlo "aprendizaje de refuerzo", ya que no aprende durante el comercio y sólo aprende durante el entrenamiento ,
Así que estoy buscando alguna solución sólo para automatizar la optimización en cada pérdida. Me refiero a cada pérdida y también la actualización de la recompensa, la EA debe llamar al optimizador para entrenarlo de nuevo para los datos del mes pasado. O podemos hacer una pausa por un tiempo después de una pérdida, y más tarde después de la optimización se completa EA reanudará el comercio de nuevo. De esta manera los árboles entrenados (archivo de texto Mtrees) siempre contendrán la última política basada en el mercado actual.
Probablemente hay algunos artículos sobre la optimización automática, pero yo no soy un programador de EA y por lo tanto no he encontrado una manera de integrarlo en su EA hasta el momento.
Dado que su implementación actual ya está utilizando la política de los datos preparados y por lo tanto a diferencia de otros EAs, su automatizador no necesita guardar los valores después de la optimización automática. Basta con ejecutar el optimizador y hacer clic en el botón de inicio junto con la fecha de inicio y fin para automatizar la optimización.
Entiendo lo que quieres decir, necesitas un back tester virtual para esto. No es difícil escribirlo en absoluto, tal vez lo añada en los próximos artículos.
Entiendo tu punto de vista, esto requiere un probador virtual. No es difícil de escribir, probablemente lo añadiré a los próximos artículos.
Muchas gracias. Lo tendré en cuenta en sus próximos artículos.
Sí, yo también creo que no debería ser una tarea difícil, especialmente para su EA como no hay mucho que hacer, excepto utilizar el optimizador de la fecha de inicio hasta la fecha de hoy y el período de optimización se puede especificar en la configuración de entrada EA, quiero decir que no hay lectura y escritura de los archivos optimizados como que ya está hecho por su EA. Pero no sé exactamente cómo hacerlo y por lo tanto voy a esperar a su actualización.
Por cierto, la cosa más inusual que me atrajo a Randomised Decision Forest (RDF) es que me di cuenta de que el modelo básico de la aplicación RDF es muy similar al juego GO, aunque podría estar equivocado en mis observaciones. Así que si el aprendizaje automático de algo "ALPHAGO" puede vencer a un juego complejo como el go, RDF definitivamente puede vencer al mercado de divisas. Quiero decir, creo firmemente que es muy fácil obtener 99% - operaciones precisas utilizando RDF si suficientes variables de entrada (indicadores) son alimentados y continuamente alimentados para desarrollar y mantener políticas óptimas, mientras que el comercio está en.
Gracias de nuevo por su tiempo.
Buenas tardes,
Os pongo los resultados de algunos experimentos (obtenidos sobre árboles puros sin lógica difusa, pensaba adjuntarlos a un nuevo artículo, pero como la discusión sobre las funciones de recompensa continúa, los pongo como información para su comprensión y discusión).
1.No me pareció del todo correcto que digamos que en la VENTA el valor aleatorio se fije en todo el intervalo 0..1, porque ya sabemos que las ventas no son rentables
Limitando los rangos a valores opuestos e inciertos, la velocidad de aprendizaje aumenta muchas veces. Con 2-3 carreras (creo que con un pase en datos aleatorios) la calidad de la formación como con 4-6 de edad (la dispersión es amplia, porque una gran cantidad de factores adicionales, pero la eficiencia ha aumentado ni siquiera en decenas de por ciento).
2. En la implementación inicial, me pareció extraño que el valor obtenido al azar es un factor de refuerzo. Esto crea fácilmente una situación en la que una tendencia fuerte tiene una recompensa menor.
Primer intento de escapar de esto
Idea: a partir de 100 pips taken profit- 1, si es menor - uniformemente creciente (en este caso a partir de 0,61). Priper pdl para la venta, para la compra de manera similar con otros niveles. Teóricamente para una tendencia más fuerte - mayor recompensa. Los resultados han mejorado, pero un poco más que el error estadístico. Al mismo tiempo, el archivo con el árbol para las mismas condiciones ha disminuido significativamente en tamaño. Aparentemente, una ordenación tan peculiar de los resultados permitió describir las reglas de forma más sencilla.
Para probar el conjunto de árboles, decidí cargar la estimación de un árbol.
y, por costumbre, ejecuté el entrenamiento. Cuál fue mi sorpresa, en un entrenamiento similar con una función de recompensa más gruesa mostró una mejora significativa - en el sitio entrenado, en igualdad de condiciones, el beneficio durante 4 meses superó el beneficio durante 6 meses de la variante antigua (estoy operando con comparaciones, porque las cifras específicas varían mucho de las condiciones de entrenamiento, par, curvatura de las asas del codificador) y lo que es más interesante, los resultados en el intervalo de control mejoraron. ¡Cargar la función de evaluación mejoró la predicción! Probablemente para un pro-estadístico no hay nada nuevo aquí y puede demostrar con fórmulas que debería ser así, pero para mí es un shock, como dicen es necesario acostumbrarse. Y se plantea la cuestión de seguir seleccionando y evaluando las funciones de predicción.
Espero que el tiempo que he pasado en las pruebas ayudará a alguien a reducir al menos el tiempo de su búsqueda (bueno, o dar la oportunidad de cometer nuevos errores, que será compartida con nosotros).
y ¿cómo de realista es enseñar este código, amablemente proporcionado por el autor del artículo, a los patrones más simples de 3-5 bares?
SZY: hmm, incluso bajo el alcohol que estoy escribiendo como en Aliexpress a un vendedor chino ))))