Explorando padrões de preços do Bitcoin com Deep Learning. Assim como o OpenAI, treinamos nossos modelos em dados brutos de pixel. Exatamente como um ser humano experiente veria as curvas e agiria.
Até agora, conseguimos:
Treinamento em dados de preços de 5 minutos (Coinbase USD)
Alguns exemplos do conjunto de treinamento
price_open price_high price_low price_close volume close_price_returns close_price_returns_bins close_price_returns_labels
DateTime_UTC
2017-05-29 11:55:00 2158.86 2160.06 2155.78 2156.00 21.034283 0.000000 (-0.334, 0.015] 5
2017-05-29 12:00:00 2155.98 2170.88 2155.79 2158.53 47.772555 0.117347 (0.015, 0.364] 6
2017-05-29 12:05:00 2158.49 2158.79 2141.12 2141.92 122.332090 -0.769505 (-1.0322, -0.683] 3
2017-05-29 12:10:00 2141.87 2165.90 2141.86 2162.44 87.253402 0.958019 (0.713, 1.0623] 8
git clone https://github.com/philipperemy/deep-learning-bitcoin.git
cd deep-learning-bitcoin
./data_download.sh # will download it to /tmp/
python3 data_generator.py /tmp/btc-trading-patterns/ /tmp/coinbaseUSD.csv 1 # 1 means we want to use quantiles on returns. 0 would mean we are interested if the bitcoin goes UP or DOWN only.
Se você estiver interessado em construir um enorme conjunto de dados (coinbase.csv contém cerca de 18 milhões de linhas), é preferível executar o programa em modo de segundo plano:
nohup python3 -u data_generator.py /tmp/btc-trading-patterns/ /tmp/coinbaseUSD.csv 1 > /tmp/btc.out 2>&1 &
tail -f /tmp/btc.out
Se você vir este erro:
_tkinter.TclError: no display name and no $DISPLAY environment variable
Consulte esta solução: https://stackoverflow.com/questions/37604289/tkinter-tclerror-no-display-name-and-no-display-environment-variable
Para construir a imagem docker basta executar
docker build -t dlb .
da pasta do repositório e execute o contêiner
docker run -it --name dlb -v $PWD:/app dlb /bin/bash
a pasta atual será montada em /app
. Para verificar a montagem correta, execute dentro do contêiner
root@c11ef702a6d6:/app# mount| grep app
/dev/sda2 on /app type ext4 (rw,relatime,errors=remount-ro,data=ordered)