En tensorflow-js encontrará lo que necesita para los primeros pasos en ML y trading.
Este es el entrenamiento dqn, donde el agente recibe recompensas y penalizaciones por sus acciones.
https://github.com/tensorflow/tfjs-examples/tree/master/snake-dqn
https://storage.googleapis.com/tfjs-examples/snake-dqn/index.html
Resulta que tenemos una serpiente que aprende de su propia experiencia a moverse. Tiene una cierta cantidad de movimientos (girar o continuar) y su tarea es llegar a la fruta. Inicialmente, la serpiente no sabe cómo hacer nada, pero en el curso del entrenamiento gana la habilidad de encontrar frutas y esquivar. Muy similar al trading, ¿no?
Bueno, al menos para nuestra tarea, cuando tenemos datos en ejecución y el robot necesita tomar la decisión de comprar o vender.
La desventaja de la serpiente es que fue escrito para node.js, y necesitamos poder entrenar en un navegador (para que cualquier usuario pueda hacerlo). Por lo tanto, era necesario iniciar el mismo en el cliente.
Llevé la serpiente tal cual a mi página con el gráfico e intenté iniciarla. ¡No fue así!
La serpiente resistió de todas las formas posibles,
paquetes primero,
luego argumentos. (por cierto, también hice una solicitud de extracción junto a la solución https://github.com/tensorflow/tfjs-examples/pull/353),
luego %% Rechazo no controlado (TypeError): No se puede llamar a una clase como función %%. Que se repara aquí https://github.com/tensorflow/tfjs/pull/3906/files, pero desde aún no hay liberación, entonces tuve que sustituir mis manos. Aquí, por cierto, muchas personas tienen un problema https://github.com/tensorflow/tfjs/issues/3384.
Luego estaban los menores, como sustituir fs por indexeddb. El trabajo con el que espiaba aquí, por cierto. Bueno, en general, cart-pole inicialmente se inspiró para hacer todo en el cliente.
https://github.com/tensorflow/tfjs-examples/tree/master/cart-pole
https://storage.googleapis.com/tfjs-examples/cart-pole/dist/index.html
al final, esto es lo que pasó:
https://github.com/pskucherov/opexflow/pull/16/files
Bueno, eso es todo, la siguiente etapa será:
- Ajustar a gráficos
- Visualización
- Entrene a un robot con datos conocidos para mostrar el resultado máximo
A continuación, en el video, se muestra una demostración del entrenamiento de trabajo de los robots en el cliente. Algún día también negociarán futuros de Sberbank en mi lugar.