![見出し画像](https://assets.st-note.com/production/uploads/images/6646511/rectangle_large_a2283d2984f8ce1b6d59c2c99e051f3c.jpg?width=1200)
[メクセル君] BitmexからOHLCVデータを取得するExcelアプリケーションの作り方
仮想通貨取引所「Bitmex」から価格情報であるOHLCVデータをExcelで取得するExcelアプリケーション「メクセル君」の作り方を公開したいと思います。
・環境設定とVBAコード
OHLCVデータを取得するVBAプログラムについては既に私のブログで公開しています。Excelの設定の仕方も書いてますのでご覧ください。
webサイトからExcelにJSON形式データを読み込むための下準備
第4回 仮想通貨取引所BitmexからOHLCVデータを取得するVBAプログラム -Excel VBA
今回の作成例ではclearボタンとjsonプリントボタンを使用します。コードはこちらです。
・clearボタン
Sub clearbutton()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("F:K").Clear
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
・jsonボタン
Sub JSON_Print()
Dim arrs
Dim len_row
Dim len_col
Dim c
Dim r
Dim json
Dim fnsave
arrs = Cells(1, 6).CurrentRegion
len_row = UBound(arrs, 1) '行数
len_col = UBound(arrs, 2) '列数
ReDim heads(len_col - 1)
ReDim recs(len_row - 1)
For r = 1 To len_row
ReDim temps(len_col - 1)
For c = 1 To len_col
If c <> 6 Then
temps(c - 1) = arrs(r, c)
ElseIf c = 6 Then
temps(c - 1) = Chr(34) & arrs(r, c) & Chr(34)
Else: End If
Next
recs(r - 1) = "[" & Join(temps, ",") & "]"
Next r
json = "[" & Join(recs, ",") & "]"
'ファイルの出力
fnsave = Application.GetSaveAsFilename("ohlc_store.json", "JSON(*.json),*.json")
If fnsave = False Then Exit Sub
With CreateObject("ADODB.Stream")
.Type = 2
.Charset = "utf-8"
.Open
.WriteText json, 1
.SaveToFile fnsave, 2
.Close
End With
End Sub
環境設定を終えたら、VBAプログラムをVBEのMicrosoft Excel Objectsのシートをクリックしてコード画面にプログラムをペーストします。
(処理速度は環境によるかと思いますが、私が計ったところ1分足70万本を約2分で取得しました。)
・シート作成
Excelのシートを操作しやすいように作成します。
私がデザインしたシートを例に説明します。
私は下の画像のようにデザインしました。できるだけシンプルにすることを心がけて、入力欄を少なくし、色は白、グレー、黒のグラデーションとしました。マクロのトリガーとなるボタンを上部に設置し、botトレードのバックテスト用にjsonボタンを付けました。B6~B8セルにプルダウンメニューを付けました。
開発タブからボタンを設置し、右クリックでマクロ登録をします。プルダウンメニューのセルとunixtimeのstart, endのセルがプログラムの変数と対応するようにします。
・操作方法
入力欄はbinsize, reverse, time, Japan timeのstart, endのセルとなります。B6,B7,B8セルとB11,C11セルです。
1・binsize, reverse, timeをB6,B7,B8セルのプロダウンメニューから選択
2・時間はJapan timeのstart, endを入力
worksheet関数でUTC timeとunixtimeが自動的に算出されるようになっています。
3・入力が終わったらupdateボタンを押す。するとOHLCVデータがF~K列に表示される。
clearボタンでOHLCVデータのF~K列が削除されます。
jsonボタンでOHLCVデータのF~K列がjsonファイルとしてexportされます。
以上です。
最後に
最後まで読んでいただきありがとうございます。
botトレードをするにあたり、プログラミング上級者にとってはわざわざExcelでデータを取得する必要は無く、既にOHLCVデータを取得する手段を持っていると思いますが、プログラミング初心者にとっては環境構築から始まり、やることがたくさんありなかなか前に進まず、色々と大変なことが多いと思います。私自身はPython初心者で環境構築や構文に慣れるのに苦労したこともあり、慣れていたVBAでOHLCVデータくらいは取得してみようと思ったのが当Excelツールを作るきっかけとなりました。
当Excelツールで皆様のbacktest用のjsonファイル作成の手間が省ければ幸いです。
投稿者 プログラム作成者
VB-エイ
ブログ
https://yare-excel-google-spreadsheet.blogspot.jp/
Donate BTC: 1LcULwCQPjxLGXdpEJkhNkPpqCwG5csasU
Donate LTC: LSXEG7tjeCCGWuzvf5eFvJUZM6Xpvsdc4f
どんなに少額であってもサポートをいただけるとうれしいです!
いいなと思ったら応援しよう!
![VBエイ](https://assets.st-note.com/production/uploads/images/6549138/profile_1f3c3c722f44d17b365757f5ac23c873.jpg?width=600&crop=1:1,smart)