バツイチとインケンのエンジニアブログ
プログラムやプログラムじゃないこと

Real-Time Google Finance API を使って株価を取得する

2017-03-16
書いた人 : バツイチ
カテゴリ : API | タグ : Google Finance API, 株

日本ではフリーでオンラインの株価取得APIが全然ありません。
オンラインで株価を取得しようとすると下記のような状況です。

  • Yahooファイナンスをスクレイピング -> Yahooファイナンスに禁止されている
  • Google Finance API -> 公式ページに「今はもう使えないよ」
  • kabu.com API -> 法人向け。個人には未提供
  • 楽天証券RSS, 岡三RSS -> アカウントとExcelが必要
  • k-db.com -> CSV。リアルタイム性はなし

しかしGoogle Financeのドキュメントなし非公式APIが存在しており、こちらを使ってリアルタイムに株価を取得することができそうです。

Google Finance

https://www.google.com/finance/getprices?q=6420&x=TYO&i=86400&p=1Y&f=d,c,v,o,h,l&df=cpct&auto=1&ts=1489550582260&ei=4rrIWJHoIYya0QS1i4IQ

このAPI、実はGoogle Financeで使われています。

ということは、恐らくGoogle Financeで利用しているデータと同じものが得られるはず。
上記のURLをブラウザで開くと、ヘッダー部分とCSV部分で構成されているようなテキストが返ってきます。

APIの使い方

パラメータ

パラメータ 意味 備考
q 銘柄コード インデックス系は特殊なのでGoogle Financeで要確認。
x 市場 日本の株式はほぼTYO。
マザーズも大証もTYO。
日経225インデックスはNDEXNIKKEI
i ティックの長さ(秒) ローソクの期間。日足だったら86400、5分足なら300。
p 期間 データ取得期間。1年=1Y、2ヶ月=2M、3日=3d、40分=40m
f 取得する値 d=日時,c=終値,o=始値,h=高値,l=安値,v=出来高
df わかりません
auto わかりません
ts 開始日時?
ei セッションキー?

このAPI、実際に使ってみると結構クセがあることがわかります。

まず◯日〜◯日まで取得、みたいな期間開始指定での値取得ができません。
常にリアルタイムな日時からの指定期間分を返します(要はrealtime apiなんですね)。
また分足で10年、みたいな大量データが返って来そうなパラメータを指定すると、途中でデータが切れます。
ページング機能もありません。
過去データの取得は別のものを使った方が良さそうです。

レスポンスの見方

APIを叩くと下記のようなレスポンスが返ってきます。

データの意味は図に記した通りなのですが、時刻部分だけ少し変わっています。
時刻のデータは a で始まるタイプと数字のみのものがあります。

どのように見るかといいますと、
a で始まる時刻の先頭 a を取るとUNIX時刻になるのでこちらを基準にします。
a で始まらない時刻は 時刻列の数値に INTERVAL を掛けたものを a で始まる時刻
に足した値が当該時刻となります。

つまり・・・

  • a で始まる時刻: aを取った文字列がUNIX時刻
  • a で始まらない時刻:
    a で始まる時刻 + INTERVAL × この列の数値

です。
1つのデータ内に複数の a 始まりの時刻が出現するケースもあるので、a 始まりの時刻が出現する毎に基準となる時刻を変更する必要があります。

まとめ

少々クセはあるものの、リアルタイムで株価を取得できる貴重なAPIです。
ティック(ローソク)の種類が多いのも良いです。
次回、これを使ってslack-botを作ってみたいと思います。

このエントリーをはてなブックマークに追加
Tweet

← RustのWebフレームワークIronでWebサービスをつくる
Tableauタブロー で競馬の格言を検証する part2 →

 

最近書いた記事

  • Ryzen7 3800XT でmini ITXオープンフレームPCを作る
  • Pythonで機械学習入門 競馬予測
  • HP ENVY 15 クリエイターモデルレビューとRAID0解除
  • JRA-VAN データラボを使って、競馬データを収集する
  • Surface Pro 3 にubuntu18.04を入れる

カテゴリー

  • Android
  • Apache Flink
  • API
  • AWS
  • bazel
  • BigQuery
  • Cassandra
  • Docker
  • Druid
  • Elasticsearch
  • Git
  • Golang
  • gradle
  • HDFS
  • JavaScript
  • jvm
  • Linux
  • MongoDB
  • MySQL
  • Nginx
  • Nodejs
  • PaaS
  • PHP
  • Python
  • RabbitMQ
  • Raspberry Pi
  • React Native
  • Redis
  • Riak
  • rust
  • scala
  • Scheme
  • SEO
  • solr
  • Spark
  • spray
  • Sublime Text
  • Swift
  • Tableau
  • Unity
  • WebIDE
  • Wordpress
  • Youtube
  • ひとこと
  • カンファレンス
  • スケジューラ
  • マイクロマウス
  • 広告
  • 技術じゃないやつ
  • 株
  • 機械学習
  • 競馬
  • 自作キーボード
  • 自然言語処理

アーカイブ

  • 2021年4月
  • 2021年2月
  • 2021年1月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年5月
  • 2018年3月
  • 2018年2月
  • 2017年9月
  • 2017年8月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年1月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年8月
  • 2015年6月
  • 2015年5月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年9月
  • 2014年6月
  • 2014年5月
  • 2014年3月
  • 2014年2月
  • 2014年1月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月

書いた人

  • バツイチちゃん
  • インケンくん

このブログについて

エンジニアとしての考え方が間逆な2人がしょーもないこと書いてます。

バツイチ

アイコン

IT業界で働くエンジニアです。名前の通りバツイチです。
理論や抽象的概念が好きだけど人に説明するのが下手。

インケン

アイコン

バツイチちゃんと同じ業界で働いています。
理論とか開発手法とかは正直どうでもよくて、
生活する上で役に立つことに使いたい

Copyright 2025 バツイチとインケンのエンジニアブログ