last modified 2022.8.20
ゆるいブログ3回目です
-- 板情報の取得 --
板情報というのは、こんなやつです
売気配 | 気配値 | 買気配 |
200 | 1010 | |
1200 | 1000 | |
100 | 990 | |
200 | 980 | |
200 | 970 | |
960 | 100 | |
950 | 200 | |
940 | 100 | |
930 | 300 | |
920 | 200 | |
910 | 100 |
990円に200株の売り注文があって、960円に100株の買い注文があります。
そういうのが板情報です。
kabusapiではこの板情報を取得できます。
REST APIというのとPUSH配信と二つの方法で取得できます。
PUSH配信は少し敷居が高いので最初はREST APIがよいかも。
REST APIには情報取得を毎秒何回までという制限があるので、3銘柄から5銘柄くらいをやるのが簡単でよいかも。
制限回数を超えるとAPI実行回数エラーというのが発生して、都合が悪い。
PUSH配信の場合は人気銘柄の監視をすると大量の板情報が送られてきて、処理落ちするような事もあります。
この板情報から疑似的にTick情報やあゆみ値を作って、チャートを作成していきます。
**** 以下スクリプト
def get_board(ipport, x_api_key, symbol, market): # RESTにて指定銘柄の板情報と現値を取得する url = f'http:{ipport}/kabusapi/board/{symbol}@{market}' req = urllib.request.Request(url, method='GET') req.add_header('Content-Type', 'application/json') req.add_header('X-API-KEY', f'{x_api_key}') # msg = {} try: with urllib.request.urlopen(req) as res: tt = datetime.datetime.now().strftime('%H%M%S.%f') print(f'{tt} GET board {symbol}') print() msg = json.loads(res.read()) except urllib.error.HTTPError as e: print(e) msg = json.loads(e.read()) except Exception as e: print(e) msg = json.loads(e.read()) return msg