FXの板情報を入手する方法

為替の動向を分析するために必要な情報として板情報を入手したいのだが、それを適切なデータで提供しているサービスが見当たらなかったので、Webから入手する方法を考える。(OandaのAPIから何とか取得できないかな?とも思ったもののそのような機能もないらしい。。)



まずは外為どっとコムのサイトを訪れ、https://www.gaitame.com/markets/tool/ このページに入ると各通貨の現在の板情報が掲示されていることが分かる。最初はこのページをスクレイピングすればデータが得られると思っていたところ、データはおそらくJavaScriptでやり取りされているようでスクレイピングすることがどうもできなさそう。(ここら辺は詳しくないので自信はないですが。。)そこでデベロッパーツールからNetworkを開くと、https://navi.gaitame.com/v3/info/tools/order?pairs=(通貨ペア名小文字、usdjpyなど)というページから板情報のJSONが受け渡されていることが分かるので、それを取得する方法を考えます。

import requests
import json

url = "https://navi.gaitame.com/v3/info/tools/order?pairs=usdjpy"

response = requests.get(url)

jsonData = response.json()

print(jsonData["data"])

#Result

[{'ask': 105.24,
  'bid': 105.23,
  'boards': [{'buy': {'limit': 0,
     'stop': 1,
     'total_limit': '0',
     'total_stop': '1000Lot以内'},
    'range': 105.7,
    'sell': {'limit': 8,
     'stop': 0,
     'total_limit': '8000Lot以内',
     'total_stop': '0'}},
   {'buy': {'limit': 0,
     'stop': 1, 
(中略)
{'buy': {'limit': 4,
     'stop': 0,
     'total_limit': '4000Lot以内',
     'total_stop': '0'},
    'range': 104.7,
    'sell': {'limit': 0,
     'stop': 3,
     'total_limit': '0',
     'total_stop': '3000Lot以内'}}],
  'datetime': '2021-02-23 19:30:00.000',
  'pair': 'USDJPY',
  'scale': 1000}]
〜

このデータは10分ごとに更新されるので、あとは10分置きににデータを取得しそれをイイ感じにまとめてどこかに保管すればよい。
その方法についてはいずれ書きます。