Encontrou em tensorflow-js o que você precisa para os primeiros passos em ML e negociação.
Este é o treinamento dqn, onde o agente recebe recompensas e penalidades pelas ações.
https://github.com/tensorflow/tfjs-examples/tree/master/snake-dqn
https://storage.googleapis.com/tfjs-examples/snake-dqn/index.html
Acontece que temos uma cobra que aprende a se mover por experiência própria. Ela tem um certo número de movimentos (virar ou continuar) e sua tarefa é chegar até a fruta. Inicialmente, a cobra não sabe fazer nada, mas com o decorrer do treinamento ganha a habilidade de encontrar frutas e se esquivar. Muito semelhante ao comércio, não é?
Bem, pelo menos para a nossa tarefa, quando temos dados em execução e o robô precisa tomar uma decisão de comprar ou vender.
A desvantagem da cobra é que ele foi escrito para node.js e precisamos ser capazes de treinar em um navegador (para que qualquer usuário possa fazer isso). Portanto, foi necessário iniciar o mesmo no cliente.
Levei a cobra como está para minha página com o gráfico e tentei iniciá-la. Não foi assim!
A cobra resistiu de todas as maneiras possíveis,
pacotes primeiro,
então argumentos. (a propósito, eu também fiz uma solicitação de pull ao lado da correção https://github.com/tensorflow/tfjs-examples/pull/353),
então %% Rejeição não tratada (TypeError): Não é possível chamar uma classe como uma função %%. Que é reparado aqui https://github.com/tensorflow/tfjs/pull/3906/files, mas desde não há liberação ainda, então eu tive que substituir minhas mãos. Aqui, a propósito, muitas pessoas têm um problema https://github.com/tensorflow/tfjs/issues/3384.
Depois, havia os menores, como substituir fs por indexeddb. O trabalho que eu espiei aqui, aliás. Bem, em geral, cart-pole inicialmente inspirado para fazer tudo no cliente.
https://github.com/tensorflow/tfjs-examples/tree/master/cart-pole
https://storage.googleapis.com/tfjs-examples/cart-pole/dist/index.html
no final, foi o que aconteceu:
https://github.com/pskucherov/opexflow/pull/16/files
Bem, isso é tudo, a próxima etapa será:
- Ajustar aos gráficos
- Visualização
- Treine um robô em dados conhecidos para mostrar o resultado máximo
Abaixo no vídeo está uma demonstração do trabalho-treinamento de robôs no cliente. Algum dia, eles também negociarão futuros do Sberbank em vez de mim.