kabusapiで自動売買する話 part 3 | ぼったーうさぎのブログ

ぼったーうさぎのブログ

ゆるく株の話など
アイコンもゆるいうさぎにしてます
リニューアルして、ぼったーの話を中心にします。
ぼったーってのは、Botでトレードする人って意味でしょうか

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