AnyTrading - Bitcoinデータの更新

今まで検証していたデータはビットコインの日足データで「2017-05-21」から「2020-08-17」までだったのですが、新しい投資検証を行う前に一旦更新しておきます。

ビットコインデータのダウンロードサイトやAnyTrading用のデータを更新する方法は以前ご紹介していますが、復習として一通り記載していきます。

CSVデータをサイトからダウンロード

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

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

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

今回は 2017/05/21 から 2020/11/19 までの 1日足データ をダウンロードしました

AnyTradingでオリジナルデータを使う

簡易的な方法としてAnyTradingがデフォルトで参照しているCSVデータに、フォーマットを合わせてオリジナルデータを上書きします。

AnyTradingではデフォルトで下記のcsvデータを参照しています。

(AnyTradingインストール先)/datasets/data/FOREX_EURUSD_1H_ASK.csv

このCSVデータは下記のようなフォーマットです。

[FOREX_EURUSD_1H_ASK.csv]

1
2
3
4
5
6
7
8
9
10
Time,Open,High,Low,Close,Volume
01.01.2017 22:00:00.000,1.05236,1.05253,1.05221,1.05227,143539993.3
01.01.2017 23:00:00.000,1.05227,1.05426,1.05226,1.05282,253139999.4
02.01.2017 00:00:00.000,1.05283,1.05283,1.05268,1.05281,131399993.9
02.01.2017 01:00:00.000,1.05282,1.05286,1.05225,1.0524,273940002.4
02.01.2017 02:00:00.000,1.05239,1.0524,1.05164,1.0522,258140014.6
02.01.2017 03:00:00.000,1.05219,1.05244,1.05184,1.05226,2288179932
02.01.2017 04:00:00.000,1.05226,1.05232,1.05181,1.05193,711799987.8
02.01.2017 05:00:00.000,1.05195,1.05197,1.05136,1.05161,288209991.5
02.01.2017 06:00:00.000,1.05163,1.05176,1.05113,1.05172,390880004.9

例えば下記のようなデータを自分で用意したとします。

(このデータはダウンロードしたCSVファイルの形式となります。)

[btc.csv]

1
2
3
4
5
6
7
8
2017-05-21 00:00:00,232660,242460,231962,242460,231.863
2017-05-22 00:00:00,243915,343303,236510,254214,309.532
2017-05-23 00:00:00,256994,276003,256994,276002,4.94
2017-05-24 00:00:00,284989,284989,275603,275603,0.002
2017-05-25 00:00:00,302146,302146,300000,301050,1.05
2017-05-26 00:00:00,303000,340000,270002,270002,17.01
2017-05-27 00:00:00,349998,349998,194003,281061,21.613
2017-05-28 00:00:00,269998,269999,210000,269999,2.1200001

このデータをAnyTrading用に変換する処理を簡単に書いてみました。

[AnyTrading用にデータを変換する処理]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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:
lines = f.readlines()

with open('(AnyTradingインストール先)/datasets/data/FOREX_EURUSD_1H_ASK.csv', 'w') as f:
f.write('Time,Open,High,Low,Close,Volume\n')
for line in lines:
f.write(fmt(line) + '\n')

確認のために今回変換したデータを使って、AnyTradingの処理を実行してみます。

実行結果


問題なく自分で用意したデータでAnyTradingが実行できることを確認できました。

本来のやり方とは違うと思いますが、この方法を使っていろいろなデータでAnyTradingを実行することができるようになります。