板一覧をGET
ブラウザのアドレスバーにアドレスを入れてデータを得る
アドレスバーに貼り付けるだけ→https://api.bitflyer.jp/v1/getboard
何やらもの凄いデータ量です、赤丸のスクロールバーから推測して30画面スクロールくらいありそう。
ではプログラムでデータを取りましょう
import requests import pprint def getdata(): url="https://api.bitflyer.com" path="/v1/getboard" return (requests.get(url+path).json()) pprint.pprint(getdata())
結果は無限に続いてるようなデータの山
{'asks': [{'price': 797449.0, 'size': 0.679}, {'price': 797488.0, 'size': 0.5644}, {'price': 797490.0, 'size': 0.214998}, {'price': 797500.0, 'size': 2.3447}, {'price': 797519.0, 'size': 0.1}, {'price': 797539.0, 'size': 0.1}, {'price': 797565.0, 'size': 0.1}, ・・・・・・・・・・・・続く
データ形式は{辞書[リスト{辞書データ2個}]}が基本形のようです。
‘asks’というキーで{‘price’: 797449.0, ‘size’: 0.679}が大量に入った
リスト[]が得られるようです。
‘asks’以外にもキーはあるか調べます。
import requests def getdata(): url="https://api.bitflyer.com" path="/v1/getboard" return (requests.get(url+path).json()) board=getdata()#後処理用に一旦変数に入れる for keys in board.keys(): #**1 データ群{board}にキーが有るだけ繰り返す print(keys) #キーをprint
mid_price bids asks
3種類あるようです。
次にそれぞれの個数を調べる。
mid_priceはデータが1個しかなく、lenでカウントできない
import requests import pprint def getdata(): url="https://api.bitflyer.com" path="/v1/getboard" return (requests.get(url+path).json()) board=getdata() print('midprice =',board['mid_price']) print('asks 件数',len(board['asks'])) print('bids 件数',len(board['bids']))
midprice = 797820.0 asks 件数 1283 bids 件数 1604
真ん中のmidprice=中値810053を挟んで
上側にasks=売り板が1283件
下側にbids=買い板が1604件
ボットで扱うデータ、{‘price’: 797449.0, ‘size’: 0.679},が3000件も出力されるんじゃ訳和歌山県
しかし、勝てるBOTプログラマーはこのデータをプログラム中で使いこなしているのだ。
板とは
板が厚い方に値は動きやすい。(株など、BTCは無法者なので?)
板が薄い方に大量の売買を仕掛けられると値段が吹っ飛ぶ。
#**1 : データ群{board}にキーが有るだけ繰り返す
for keys in board.keys():
boadというJsonデータの中に、辞書のキーを調べる(探す)関数(正確にはオブジェクトのメソッド)で、辞書のキーがあればkeysに代入して
print(keys) それをprintする
これをboardデータ内にキーがなくなるまで繰り返す。
mid_price
bids
asks
ここでは3つ見つかった。