AnyTrading - ビットコイン投資を強化学習で実行① [事前準備]ビットコインデータを用意する。

AnyTradingを使ってビットコインの投資シミュレーションを行います。

まず下記のサイトから、ビットコインの日足データをダウンロードできます。

ビットコインCSVデータ - http://nipper.work/btc/index.php?market=bitFlyer&coin=BTCJP

1時間足や日足などのタイムスパンは、好みで選択できます。

今回は 2017/05/22 から 2020/08/06 までの 1時間足データ をダウンロードしました

AnyTrading用にフォーマット変換

上記でダウンロードしたCSVデータを、AnyTradingのフォーマットに合せてフォーマット変換します。

以下は変換のサンプルコードなので必要であれば、参考にして下さい。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1行分のデータをフォーマット変換する関数
def fmt(line):
ss = line.strip().split(',')
dt1, dt2 = ss[0].split()
y, m, d = dt1.split('-')
return '{}.{}.{} {}.000,{},{},{},{},{}'.format(m, d, y, dt2,
ss[1], ss[2], ss[3], ss[4], ss[5])

with open('btc.csv', 'r') as f: # ダウンロードしたCSVデータを指定する。
lines = f.readlines()

with open('(AnyTradingのインストール・ディレクトリ)/gym_anytrading/datasets/data/FOREX_EURUSD_1H_ASK.csv', 'w') as f:
f.write('Time,Open,High,Low,Close,Volume\n') # AnyTrading用の見出しを出力
for line in lines[1:]:
f.write(fmt(line) + '\n') # フォーマット変換したデータを出力

次回は、このデータを使ってAnyTradingを実行し投資成績を検証していきます。