Знайшов у tensorflow-js те що потрібно для перших кроків у ML та трейдингу.
Це навчання, коли агенту видаються нагороди і штрафи за дії.
https://github.com/tensorflow/tfjs-examples/tree/master/snake-dqn
https://storage.googleapis.com/tfjs-examples/snake-dqn/index.html
Виходить, у нас є змійка, яка навчається на власному досвіді рухатися. Вона має певну кількість хід (повернути чи продовжити) і її завдання дістатися фруктів. Спочатку змійка нічого не вміє, але по ходу навчання вона набуває можливості знаходити фрукти і ухилятися. Дуже схоже на трейдинг, чи не так?
Ну, як мінімум для нашого завдання, коли в нас біжать дані, а роботу потрібно ухвалити рішення купувати чи продавати.
Мінус змійки в тому, що він написаний для node.js, а нам потрібно вміти можливість навчати у браузері (щоб будь-який користувач міг це робити). Тому це треба було завести на клієнта.
Затягнув змійку як є до себе на сторінку з графіком і спробував запустити. Не тут то було!
Змійка всіляко чинила опір,
спочатку пакети,
потім аргументи. (до речі ще й пуллреквест поруч зробив із фіксом https://github.com/tensorflow/tfjs-examples/pull/353),
потім %%Unhandled Rejection (TypeError): Cannot call a class as a function%%. Який лагодиться тут https://github.com/tensorflow/tfjs/pull/3906/files, але т.к. релізу ще немає, то довелося руками підставити. Ось тут, до речі, проблема у багатьох виникає https://github.com/tensorflow/tfjs/issues/3384.
Далі вже пішли мінори на кшталт заміни роботи з fs на indexeddb. Роботу з якою підглянув тут, до речі. Ну і взагалі cart-pole спочатку надихнув зробити все на клієнта.
https://github.com/tensorflow/tfjs-examples/tree/master/cart-pole
https://storage.googleapis.com/tfjs-examples/cart-pole/dist/index.html
в результаті ось що вийшло:
https://github.com/pskucherov/opexflow/pull/16/files
Ну і все власне, наступним етапом будуть:
- Приладнати до графіків
- Візуалізація
- Навчити робота на відомих даних показати максимальний результат
Нижче на відео демка роботи-навчання роботів на клієнта. Колись вони так само торгуватимуть ф’ючерсами ощадбанку замість мене.