前回はBitmexからOHLCVデータを読み込むVBAプログラムを公開し、noteでメクセル君というExcelアプリケーションの作り方をお伝えしました。
Pythonなど他のプログラミング言語でもデータを取得できますが、今回もこのブログでは硬派にVBAにこだわっていきたいと思います。
・Cryptowatchとは
About Cryptowatch
Cryptowatch is a cryptocurrency charting and trading platform owned by Kraken. Our system serves live data on 400+ markets to clients around the world.
CryptowatchはKrakenが所有する暗号化チャートと取引プラットフォームです。当社のシステムは世界中の顧客に400以上の市場に関するライブデータを提供しています。
bitflyer、bitfinex, bithumb, binance, Kraken, poloniex, mtgox, quoineなど他多数の仮想通貨取引所のローソク足のOHLCVデータを取得できます。
当VBAプログラムでもCryptowatchから取得できる全取引所のOHLCVデータを取得できます。
・今回利用するAPI
Market Data REST API・OHLCVとは
始値(OPEN)、高値(HIGH)、安値(LOW)、終値(CLOSE)、出来高(VOLUME)の頭文字をつなげたものです。
ローソク足では、1日、1週間、1ヶ月などの期間を定め、期間の開始時に付いた値段を始値、期間中の最も高い値段を高値、最も安い値段を安値、期間の最後に付いた値段を終値としています。
株式投資や、暗号通貨投資などで過去のOHLCVデータから将来の価格を予想するために使われたりします。
それでは、早速Cryptowatchの公式APIからOHLCVデータを取得するプログラムをお伝えします。
VBAコード
JSON形式データを取得する処理のところから見ていきましょう。url = "https://api.cryptowat.ch/markets/" & Exchanges & "/" & pair & "/ohlc?periods=" & periods
Set HttpReq = CreateObject("MSXML2.XMLHTTP")
HttpReq.Open "GET", url, False
HttpReq.send
TradeJSON = HttpReq.responseText
Set HttpReq = Nothing
Set js = CreateObject("ScriptControl")
js.Language = "JScript"
'jsonにパースする関数を追加
js.AddCode "function jsonParse(s) { return eval('(' + s + ')'); }"
'追加した関数を実行して、結果を変数に格納する
Set CryptoJSON = js.CodeObject.jsonParse(TradeJSON)
・API URL
(urlの例)
url = "https://api.cryptowat.ch/markets/binance/btcusdt/ohlc?periods=3600&after=1304287200"
APIのURLについてですが、periods=のあとに時間足の分数を入れます。1分足なら60, 1時間足なら3600といった感じです。
periodsの後ろにafterかbeforeを加えることもできます。=のあとにunixtimeを入れます。
afterとbeforeの両方を入れて試みましたが、エラーが出てしまいダメでした。ここからここまでという期間指定はできないようです。
JSON形式データを読み込む処理については、Bitmexの時に読み込んだ方法と同じになります。解説も書きましたので今回は省略します。
こちらの記事です。↓
第1回 仮想通貨取引所BitmexからOHLCVデータを取得するVBAプログラム -Excel VBA
次回は当プログラムのVBAコード全体をお伝えします。
次回に続く
他にもエクセルツールを作成しています!
どんなに小さな額でもチップをいただけると嬉しいです!
Donate BTC: 1LcULwCQPjxLGXdpEJkhNkPpqCwG5csasU
Donate LTC: LSXEG7tjeCCGWuzvf5eFvJUZM6Xpvsdc4f
当エクセルツールから表示される情報は、
内容の正確性、信頼性等を保証するものではありません。
これらの情報に基づいて被ったいかなる損害についても、当サイトは一切の責任を負いません。