O desenvolvimento desta biblioteca desacelerou, em favor do trabalho no TensorTrade - uma estrutura para negociação com RL: https://github.com/notadamking/tensorrade
Se você quiser saber mais sobre como criamos este agente, confira o artigo do Medium: https://towardsdatascience.com/creating-bitcoin-trading-bots-that-dont-lose-money-2e7165fb0b29
Posteriormente, otimizamos este repositório usando engenharia de recursos, modelagem estatística e otimização Bayesiana, confira: https://towardsdatascience.com/using-reinforcement-learning-to-trade-bitcoin-for-massive-profit-b69d0e8f583b
Servidor Discord: https://discord.gg/ZZ7BGWh
Conjuntos de dados: https://www.cryptodatadownload.com/data/northamerican/
Linux:
sudo lspci | grep -i --color ' vga|3d|2d ' | grep -i nvidia
Se isso retornar alguma coisa, você deverá ter uma placa nVIDIA.
A primeira coisa que você precisa fazer para começar é instalar os requisitos. Se o seu sistema tiver uma GPU nVIDIA, você deve começar usando:
cd " path-of-your-cloned-rl-trader-dir "
pip install -r requirements.txt
Mais informações sobre como você pode aproveitar as vantagens de sua GPU ao usar o docker: https://github.com/NVIDIA/nvidia-docker
Se você possui outro tipo de GPU ou simplesmente deseja usar sua CPU, use:
pip install -r requirements.no-gpu.txt
Atualize seus arquivos estáticos atuais, que são usados por padrão:
python ./cli.py update-static-data
Depois você pode simplesmente ver as opções atualmente disponíveis:
python ./cli.py --help
ou simplesmente execute o projeto com opções padrão:
python ./cli.py optimize
Se você tiver um conjunto padrão de configurações com as quais deseja executar o trader, poderá especificar um arquivo de configuração para carregar a configuração. Renomeie config/config.ini.dist para config/config.ini e execute
python ./cli.py --from-config config/config.ini optimize
python ./cli.py optimize
Inicie a caixa vagante usando:
vagrant up
O código estará localizado em /vagrant. Jogue e/ou teste com qualquer pacote que desejar. Nota: Com o vagrant você não pode aproveitar ao máximo sua GPU, portanto é principalmente para fins de teste
Se você deseja executar tudo dentro de um contêiner docker, basta usar:
./run-with-docker (cpu | gpu) (yes | no) optimize
python ./ cli.py --params-db-path " postgres://rl_trader:rl_trader@localhost " optimize
O banco de dados e seus dados são mantidos em data/postgres
localmente.
Se você deseja girar um ambiente de teste do Docker:
./run-with-docker (cpu | gpu) (yes | no)
Se você deseja executar testes existentes, basta usar:
./run-tests-with-docker
./dev-with-docker
conda create --name rltrader python=3.6.8 pip git conda ativar rltrader conda instalar tensorflow-gpu git clone https://github.com/notadamking/RLTrader pip install -r RLTrader/requirements.txt
Embora você pudesse simplesmente deixar o agente treinar e operar com os hiperparâmetros PPO2 padrão, seu agente provavelmente não seria muito lucrativo. A biblioteca stable-baselines
fornece um grande conjunto de parâmetros padrão que funcionam para a maioria dos domínios de problemas, mas precisamos melhorar.
Para fazer isso, você precisará executar optimize.py
.
python ./optimize.py
Isso pode demorar um pouco (horas ou dias, dependendo da configuração do seu hardware), mas com o tempo ele será impresso no console à medida que os testes forem concluídos. Assim que um teste for concluído, ele será armazenado em ./data/params.db
, um banco de dados SQLite, do qual podemos extrair hiperparâmetros para treinar nosso agente.
A partir daí, os agentes serão treinados utilizando o melhor conjunto de hiperparâmetros e posteriormente testados em dados completamente novos para verificar a generalização do algoritmo.
Sinta-se à vontade para fazer qualquer pergunta no Discord!
Insira e execute o seguinte snippet na primeira célula para carregar o RLTrader em um ambiente Google Colab. Não se esqueça de definir a aceleração de hardware para GPU para acelerar o treinamento!
!git init && git remote add origin https://github.com/notadamking/RLTrader.git && git pull origin master
!pip install -r requirements.txt
Normalmente isso é causado pela falta do módulo mpi. Você deve instalá-lo de acordo com sua plataforma.
As contribuições são incentivadas e sempre farei o meu melhor para implementá-las na biblioteca o mais rápido possível. Este projeto pretende crescer à medida que a comunidade ao seu redor cresce. Deixe-me saber se há algo que você gostaria de ver no futuro ou se há algo que você sente que está faltando.
Trabalhando em sua primeira solicitação pull? Você pode aprender como nesta série gratuita Como contribuir para um projeto de código aberto no GitHub
Quer mostrar seu apoio a este projeto e ajudá-lo a crescer?
Vá para a estrutura sucessora: https://github.com/notadamking/tensorrade
Apoiadores: