if(ts<0.4 && CheckMoneyForTrade(_Symbol,lots,ORDER_TYPE_BUY)) { if(OrderSend(Symbol(),OP_BUY,lots,SymbolInfoDouble(_Symbol,SYMBOL_ASK),0,0,0,NULL,OrderMagic,Green)) { updatePolicy(ts); }; }
Puede sustituirlo por esto
if((ts<0.4) && (OrderSend(Symbol(),OP_BUY,lots,SymbolInfoDouble(_Symbol,SYMBOL_ASK),0,0,0,NULL,OrderMagic,INT_MIN) > 0)) updatePolicy(ts);
Por cierto, su variante de la comprobación if(OrderSend) siempre funcionará. Porque OrderSend no devuelve cero en caso de error.
Desafortunadamente, esto es exactamente lo que tenemos que hacer. Echa un vistazo a este artículo, tiene una forma interesante de "pasar" datos a los Agentes.
- 2018.02.27
- Aleksey Zinovik
- www.mql5.com
Por desgracia, esto es exactamente lo que tenemos que hacer. Echa un vistazo a este artículo, tiene una forma interesante de "pasar" datos a los Agentes.
Sí, lo vi, es un gran artículo. Decidí no hacer nada del otro mundo, porque el rendimiento está bien como está, no necesitaba muchos pases.
¡Respeto al autor por un gran ejemplo de implementación de ML utilizando herramientas MQL nativas y sin muletas!
Mi única opinión IMHO es sobre el posicionamiento de este ejemplo como aprendizaje por refuerzo.
En primer lugar, me parece que el refuerzo debería tener un efecto dosificado en la memoria del agente, es decir, en este caso en RDF, pero aquí sólo filtra las muestras de la muestra de entrenamiento y prácticamente no es muy diferente de la preparación de datos para el entrenamiento con un profesor.
En segundo lugar, el entrenamiento en sí no es en streaming, continuo, sino puntual, porque después de cada pasada del probador, durante el proceso de optimización, se entrena de nuevo todo el sistema, por no hablar del tiempo real.
Respeto al autor por un gran ejemplo de implementación de ML, utilizando herramientas MQL nativas y ¡sin muletas!
Mi único IMHO, con respecto al posicionamiento de este ejemplo como aprendizaje por refuerzo.
En primer lugar, me parece que el refuerzo debe afectar de forma dosificada la memoria del agente, es decir, en este caso RDF, pero aquí sólo filtra las muestras de la muestra de entrenamiento y prácticamente no es muy diferente de la preparación de datos para el entrenamiento con un maestro.
En segundo lugar, el entrenamiento en sí no es en streaming, continuo, sino ad hoc, ya que después de cada pasada del probador, durante el proceso de optimización, se vuelve a entrenar todo el sistema, no estoy hablando de tiempo real.
Así es, se trata de un ejemplo sencillo de grano grueso, más orientado a la familiarización con el andamiaje que al aprendizaje por refuerzo. Creo que merece la pena seguir desarrollando el tema y estudiar otras formas de refuerzo.
Informativo, ¡gracias!
En primer lugar, me parece que el refuerzo debería dosificar la memoria del agente, es decir, en este caso RDF, pero aquí sólo está filtrando las muestras de entrenamiento y es casi poco diferente de los datos de entrenamiento para el aprendizaje con un profesor.
En segundo lugar, el entrenamiento en sí no es en streaming, continuo, sino puntual, porque después de cada pasada del probador, en el proceso de optimización, se vuelve a entrenar todo el sistema, no estoy hablando de tiempo real.
Me gustaría añadir algo a tu respuesta. Estos 2 puntos están estrechamente relacionados. Esta versión es una variación sobre el tema de la repetición de la experiencia. Que no actualizar constantemente la tabla y no volver a entrenar el bosque (que sería más intensivo en recursos), y volver a entrenar sólo al final en una nueva experiencia. Es decir, esta es una variante completamente legítima del refuerzo y se utiliza, por ejemplo, en DeepMind para los juegos de Atari, pero allí todo es más complicado y se utilizan minilotes para combatir el sobreajuste.
Para hacer streaming del aprendizaje, estaría bien tener una NS con aprendizaje adicional, estoy mirando hacia las redes bayesianas. Si usted o alguien tiene ejemplos de este tipo de redes en pluses - Yo estaría agradecido :)
De nuevo, si no hay posibilidad de que el aproximador vuelva a entrenar - entonces para una actualización en tiempo real tendría que arrastrar toda la matriz de estados pasados, y sólo volver a entrenar en toda la muestra cada vez no es una solución muy elegante y lenta (con el aumento del número de estados y características).
Además, me gustaría combinar Q-phrase y NN con mql, pero no entiendo por qué usarlo y ciclar con probabilidades de transición de estado a estado, cuando puedo limitarme a la estimación de diferencia temporal habitual, como en este artículo. Por lo tanto, actor-crítico es más apropiado aquí.
Quiero añadir algo a la respuesta. Estos 2 puntos están estrechamente relacionados. Esta versión es una variación sobre el tema de la repetición de la experiencia. Que no actualizar constantemente la tabla y no volver a entrenar el bosque (que sería más intensivo en recursos), y volver a entrenar sólo al final en una nueva experiencia. Es decir, se trata de una variante completamente legítima del refuerzo y se utiliza, por ejemplo, en DeepMind para los juegos de Atari, pero allí todo es más complicado y se utilizan minilotes para combatir el sobreajuste.
Para hacer streaming de aprendizaje, estaría bien tener una NS con aprendizaje adicional, estoy mirando hacia las redes bayesianas. Si usted o alguien más tiene ejemplos de este tipo de redes en las ventajas - Yo estaría agradecido :)
De nuevo, si no hay posibilidad de que el aproximador se reentrene - entonces para una actualización en tiempo real tendrás que arrastrar toda la matriz de estados pasados, y simplemente reentrenar en toda la muestra cada vez no es una solución muy elegante y lenta (con un número creciente de estados y características).
Además, me gustaría combinar Q-frase y NN con mql, pero no entiendo por qué usarlo y ciclar con probabilidades de transición de estado a estado, cuando puedo limitarme a la estimación de diferencia temporal habitual, como en este artículo. Por lo tanto, actor-crítico es más sobre el tema aquí.
No discuto, tal vez la variante con la reproducción de la experiencia, en forma de aprendizaje por lotes, es una implementación legítima de RL, pero también es una demostración de una de sus principales desventajas - la asignación de créditos a largo plazo. Dado que la recompensa (refuerzo) en ella se produce con un desfase, que puede ser ineficiente.
Al mismo tiempo, otra desventaja bien conocida en la forma de violación del equilibrio - exploración vs expluatation, porque hasta el final del pasaje, toda la experiencia sólo se puede acumular y no se puede utilizar de ninguna manera en la sesión de operación actual. Por lo tanto, en mi humilde opinión, es probable que en la RL sin aprendizaje continuo, nada bueno es probable que suceda.
En cuanto a nuevos ejemplos de redes, si estamos hablando de P-net, que he mencionado aquí en el foro, es todavía NDA, así que no puedo compartir el código fuente. Técnicamente, hay, por supuesto, sus pros y sus contras, desde el positivo - alta velocidad de aprendizaje, el trabajo con diferentes objetos de datos, la formación adicional en el futuro, tal vez LSTM.
Por el momento hay una biblioteca para Python y nativo MT4 EA generador, todo en la etapa de prueba. Para la codificación directa hay una variante de utilizar intérprete de python integrado en el motor, se puede trabajar con él a través de bloques de código pasados directamente desde EA a través de canales con nombre.
En cuanto a la implementación MQL pura de RL, no sé, intuitivamente parece que debe estar en la construcción dinámica de árboles de decisión (árboles de políticas) o manipulaciones con matrices de pesos entre MLPs, tal vez modificaciones sobre la base de las clases correspondientes de Alglib....
¡Bien hecho, Mikhail! Has recorrido el 20% del camino hacia el éxito. Eso es un elogio, el otro 3% ya ha pasado. Y vas en la dirección correcta.
Muchas personas añaden 84 indicadores más a un Asesor Experto con 37 indicadores y piensan "ahora definitivamente funcionará". Ingenuos.
Y ahora al grano. Usted tiene un diálogo sólo entre la máquina y la máquina. En mi opinión, deberías añadir máquina - humano - máquina.
Te lo explicaré. En la teoría de juegos, los juegos estratégicos tienen los siguientes atributos: un gran número de factores aleatorios, regulares y psicológicos.
Psicológicos - es como: hay películas buenas, hay películas malas y hay películas indias. ¿Capta la idea?
Si te interesa, ¿preguntarás qué hacer a continuación y cómo realizarlo? Responderé: aún no lo sé, yo mismo estoy intentando encontrar una respuesta.
Pero si te fijas sólo en los coches, será como con los 84 intermitentes: añadas o no añadas, darás vueltas en círculos.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Random Decision Forest en el aprendizaje reforzado:
Random Forest (RF) (en castellano, Bosques Aleatorios) con aplicación del bagging es uno de los métodos del aprendizaje automático más fuerte, que cede un poco ante el boosting del gradiente (Potenciación del gradiente). En este artículo, se realiza el intento de desarrollar un sistema comercial autoenseñable, que toma decisiones a base de la experiencia adquirida de la interacción con el mercado.
La memoria del agente (o su experiencia) debe almacenarse en algún lugar. En la implementación clásica del aprendizaje reforzado, se usan las matrices estado-acciones. Entrando en un determinado estado, el agente tiene que acceder a la matriz a por la siguiente decisión. Esta implementación conviene para las tareas con un reducido conjunto de estados. En este caso, la matriz puede llegar a ser muy grande. Por eso, vamos a sustituir la tabla por el bosque aleatorio:
Fig. 3. Red neuronal profunda o bosque aleatorio para aproximación de la política
La política estocástica parametrizada Πθ (policy) del agente se llama el conjunto de pares (s,a), donde θ es el vector de parámetro para cada estado. La política óptima es el conjunto óptimo de acciones para cada tarea determinada. Vamos a acordar que el agente pretenderá desarrollar una política óptima. Este enfoque funciona bien para las tareas ininterrumpido con el número de estados desconocido previamente, siendo el método model-free actor-critic en el aprendizaje reforzado. Existen muchos otros enfoques en el aprendizaje reforzado. Se describen en el libro de Richard S. Sutton y Andrew G. Barto "Reinforcement Learning: An Introduction"
Autor: Maxim Dmitrievsky