5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Refinitiv Eikonで相場データを取得してみた

Last updated at Posted at 2021-07-19

Refinitive Eikonとは

Refinitive社が提供する有償の相場情報提供サービスです
https://www.refinitiv.com/ja/products/eikon-trading-software

コモディティ、農作物、エネルギー、メタル、株式、債権、外国為替、マクロ経済指標などを閲覧/取得できるようです。この手のサービスはだいたいそうですが、そこそこ良い値段がします。

冷やかしだとダメだと思いますが、ちゃんと使うつもりがある場合は無償トライアルのライセンスを発行してくれると思います。
https://www.refinitiv.com/ja/forms/eikon-form-overlay

使用形態

以下の3つの利用形態があるようです

  1. GUIで閲覧/取得する
  2. Excelアドインで取得する
  3. Python APIにより取得する

1. GUIで閲覧/取得する

各銘柄や指標の最新値が見られるほか、時系列グラフを確認したりできます。

公式サイトに画面のスクショがありますので、だいたいのイメージはつかめるかと思います。トレーダーがよく見てそうなアレです。
https://eikon.refinitiv.com/index.html

データについてはCSVでダウンロードすることも出来ます。

ブラウザ版とWindowsアプリ版のどちらでもだいたい同じUIが提供されていますが、Windowsアプリ版では表示レイアウトを保存しておいて呼び出せたり、起動時のレイアウトを固定しておいたり出来るので便利です。

UIの左上に検索窓があって適当なキーワードを入れると関連項目が出てくる仕組みなので直観的でなかなか良いと思います。

2. Excelアドインで取得する

Refinitiv Eikon Datastreamを使うとExcelアドインによりExcel操作のみでデータを取得できます。Excelを使ってカジュアルな分析をする方、あるいは職場の都合でExcelしか使えない方が使うイメージなんでしょうか。必要なデータ一式を取得するワークシートをつくっておけば更新をかけるだけで最新のものが手に入るので結構便利です。

インストール

EikonのインストーラーでExcelアドインのインストールを有効にしておけば一緒に入れておいてくれます。Excelを起動してリボンに「Refinitiv Eikon」タブと「Refinitiv Eikon Datastream」タブが追加されていれば正常です。

サインイン

起動した状態ではまだサインインされていないので機能は何も使えません。
Eikonタブのサインインをクリックして、IDとパスワードを入力すれば各機能が使えるようになります。

時系列データの取得

DatastreamタグのTime Series Requestをクリックすると別窓が開きます

Find Seriesボタンを押すとExcelアドインらしからぬデザインの別窓が開いて銘柄を選べるようになります。チェックをいれてUseをクリックすると選択して1つ前のウィンドウに戻ります。

銘柄が選択されているので、あとは期間などの条件を選択してSubmitをクリックすれば1銘柄選択完了です

シートのカーソル位置にデータが貼り付けられます。セルの表示がNameとなっているセルにはコマンドが書かれていて、このコマンドに応じてアドインがデータを書き出してくれます。コマンドを書き換えるとそれに応じて読み込み直してくれるので、どうやらアドインがセルの更新を監視して更新されたら読むような動作をやっているようです。

データは値で入力されているので、pythonなんかで読み込むのも特に問題ないようです

3. Python APIにより取得する

PythonからAPIでデータを取得するサービスも提供されています。

最初ウェブAPIかなと思ったんですがそれは別枠で用意されているようで、こちらはEikonアプリをpythonから動かしてデータを受け取るツールです。使用中はEikonのWindowsアプリが起動している必要があります。

Pythonパッケージはpipでインストールできますし、ドキュメンテーションもあって導入は簡単なのでpythonで分析する人は最初からこれで良いんじゃないかと思います。
https://developers.refinitiv.com/en/api-catalog/eikon/eikon-data-api

3-1. アクセス回数リミット

ここに詳しく載ってます
https://developers.refinitiv.com/en/api-catalog/eikon/eikon-data-api/documentation

リミットに達したら例外を出してくれるようですので、例外処理を無視するようなコードにしなければ大丈夫なのかなとも思いますが、何かを間違えて規約違反で迷惑かけるのはマズいのでしっかり確認しましょう

3-2. 使い方

Quickstart通りの手順で動きました
https://developers.refinitiv.com/en/api-catalog/eikon/eikon-data-api/quick-start

1. EikonアプリでApp Keyをつくる

Eikonアプリの検索窓に「app key」と入力するとgenerate app keyという項目がヒットします。application名を入力して実行すればApp Keyが発行されます。

2. pythonパッケージをインストールする

pipで入ります

pip install eikon

3. App Keyを入力する

Eikonアプリが起動した状態で以下を実行してエラーがでなければ正常です

import eikon as ek
ek.set_app_key('ここにApp Keyを入力する')

4. 時系列データを取得する

eikon.get_timeseries()で時系列データを取得できます。

以下では「MSFT.0」という銘柄(マイクロソフトの株価?)を2017年3月1日~2017年3月10日の範囲で日足で取得しています。銘柄はlistで渡せるのでここに複数まとめて入れるとまとめて取得してくれます。

req = ek.get_timeseries(["MSFT.O"], start_date = "2017-03-01",
                        end_date = "2017-03-10", interval="daily")
req

start_date, end_dateはdatetime.datetimeやdatetime.timedeltaで入れることもできますので、10日前から最新までの日付を以下のように書くこともできます。

req2 = ek.get_timeseries(["MSFT.O"], start_date=datetime.timedelta(days=-10),
                        end_date=datetime.datetime.now(), interval="daily")
req2

intervalはticks, minute, hour, daily, weekly, monthly, quarterly, yearlyが選べて、ticksは保存されているデータがそのままの密度で出てきます。

5. その他の機能

今回は時系列データの取得しかやらなかったんですが、他にもヘッドライン的なものを取得できたり指標をまとめて取得したりと色々関数が用意されているようです。

APIリファレンスがpdfで読めるのでこちらを参照してください
https://developers.refinitiv.com/en/api-catalog/eikon/datastream-web-service/Documents

まとめ

やはり高いサービスだけあって、いろんな用途に使えるよう機能が充実しています。肝心のデータ自体も多岐に渡るものが収録されていて、実際の相場の値以外にも予測値なんかもあって強力です。あまり気軽に試せるものではないですが、この手のサービスを検討するようなら候補に入れても良さそうです。

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?