4.APIでデータのやり取り(1) 「お手製 python bitflyer Trading Bot」

APIを叩いてbitcoinのデータを受け取る

まずはブラウザにアドレスを入れてデータを得る。

データは見れますが、見るかコピーするかのアナログになりますので、やはり連続的に取得するにはプログラムです。

 


Windows10 powershellでcurlを叩く

 

2018年4月に配布された Windows 10 の大型アップデート (RS4, 1803) から使えるようになったそうです。

powershellでもコマンドプロンプト(dos窓)でも両方使えますが違いがあります。

 

【DOS窓でhttps://api.bitflyer.jp/v1/markets】

marketsを叩くと、取引所のペア一覧が帰ってきます。

 

【powershell で https://api.bitflyer.jp/v1/markets】

こりゃ良いわ!

ステータス200(OK番号)も表示されるし、細かい情報も表示されてるし、行の長さまで帰ってきてるし。ただ、本体は省略されてますが、どうなんでしょうか?

 

PowershellでBitflyerのprivete APIを叩いてみると

コード-500(失敗)access-key が必要ですが空っぽですといってます。

Tikerを送らせてみるか

パラメーターで通貨ペアを指定しないとデフォルトのBTC_JPYの情報が返ってくる。

FX_BTC_JPYを指定してみる。

 

絵面的にはこうです↓

上の青い画面がpowershell、下の黒い画面がコマンドプロンプト。

以上「ノンプログラムでAPIを叩け!」でした。

 


ここから、「PythonでAPIを叩け!」です

2行のソースでtickerを取得

 

1行ずつ解析(解ってないので解説ではない)

requests というライブラリーを利用して、BFのtickerを出力してくれるAPIのアドレスを指定して中身を受け取ってもらう。

帰ってきたのは、GETが成功したという報告の番号200。

中身が見えないので、text形式で返してもらうようにする

最後に、.textをつけるとテキストで返してくれるのでprint出来る

しかし、何の区切りもないので、今後もっと大量のデータを受け取る時に、見やすい方法として、pprintという関数を使う。(クラスのメソッドかもしれないが、中身を調べる知恵と時間がない。)

見づらいので、変更①json形式で受け取って、②整形出力してくれるpprintを使う

pprintを使うのに、pprint.pprintと2回重ねないとエラーになる。
( from pprint import pprintとすれば2回重ねなくて良いようだ)

pprintは丁寧に改行してくれている。

欲しい値をキーで取り出す。

データの中から、ラストプライス’ltp’を取り出そう。

まず毎回getする必要はないので、一旦変数’tk’に代入する。

そこからキーが’ltp’のデータを取り出す。

ltpの値が取り出せました。

追記中

 


BF API エラー処理