PythonでOANDA APIを使って、過去レートを5000件以上取得する方法

2019年8月11日

スポンサードリンク
スポンサードリンク

FxのAPIを使うなら絶対にOANDA!!

Pythonを使って為替情報の過去データを5000件以上取得する方法をご紹介します。

まず、Pythonで為替の値を得るためには、まずWeb APIを知っておく必要があります。

Web APIとは「Application Programming Interface(アプリケーション・プログラミング・インターフェイス)」の略語であり、

「ある1つの機能に特化したプログラムで共有可能なもの」や「ソフトウェアの機能を共有する仕組み」のことです。

 

つまり、APIを提供しているWebサービスが特定の情報を公開しており、APIを使用することでその情報を取得することができるということです。

そして、そのAPIを公開しているFx会社は、今回ご紹介するOANDAの他にもFx APIを公開しているFx会社あります。以下にFx APIの比較をしている記事をご紹介します。

http://trade-learner.com/comparison-fx-api/

 

上記記事ではOANDAのAPIは本番では、スプレッドが比較的大きいようなのですが、

読者のほとんどは、Pythonを使ってFxのトレードはできないだろうか?というのをデモ口座を使って行おうと画策しているものと思います。

 

なので、今回はOANDA APIを使って、為替情報を取得する方法をご紹介します。

 

OANDA APIキーの取得方法

 

・デモ口座の解説

まず、APIキーを取得するためにOANDAのデモ口座を開設しましょう。開設自体は必要事項を記入すれば、即座に開設されます。

以下のURLにアクセスして『新規口座開設』ボタンを押して、デモ口座を開設を選択しましょう。

https://www.oanda.jp

 

・APIの取得

デモ口座を開設できたら、ログインして以下の『APIアクセスの管理』を選択しましょう。

そして、APIの発行を選択すると、以下のような赤枠で囲ってある部分がAPIキーです。

ここをコピーして『config』というフォルダを作成し、テキストファイルに先ほどコピーしたAPIキーとアカウントIDを以下のように記入しておきましょう。アカウントIDは、ログインした時の画面にありますので、それも必要です。

ファイル名は『config_v1.txt』という名前にしておきましょう。

 

上記のようにファイルを保存できれば、APIキーの使用設定が完了しました。

 

・oandapyをインストール

OANDA APIをPythonで使用するために、Pythonにoandapyというパッケージをインストールしましょう。

ターミナルまたはコマンドプロンプトを起動させて、以下のコマンドを入力しましょう。

インストールが完了したら、これから紹介するコードで必要なパッケージがインストールされていなければ、随時『pip install [パッケージ名]』でインストールしましょう。

 

スポンサードリンク

本題:Pythonを使って為替レートを取得しよう!

それでは、OANDAのデモ口座と、OANDA APIキーの取得、oandapyのインストールが完了したら、いよいよ為替情報を取得しましょう。

 

・現在レートの取得

以下のコードをコピペして『scraping.py』という名前のPythonファイルを作成しましょう。

ちなみに、基本は以下の記事を参考にして作成しているので、コードの詳細は参照記事をご覧ください。

参照記事:http://www.algo-fx-blog.com/python-oanda-api-v1/

 

それでは、このファイルを『$ python scraping.py』と実行して、上記コードの出力結果を得られれば成功です。

 

また、このAPIで取得してきた為替レートの時間表示というのは、確かロンドンの時間に設定されていると思います。

なので、以下のコードを追記して、時間表示を日本時間に変更しましょう。

 

これで取得したデータを、日本時間に変換できました。

ちなみに、『res[‘prices’][0][‘time’] = date_to_str(iso_to_jp(res[‘prices’][0][‘time’]))』を入力することで、resの中身の時間を変更することができます。

 

・為替レートの過去レートを5000件取得する方法

oandapy を使えば、現在のレートから指定した時間足でのレート情報を、最大で5000件取得することができます。

以下のコードを実行すると、5000件取得することができます。試しに1時間足を現在レートから5000件取得するコードを紹介します。

ファイル名を『scraping_h1.py』としておきましょう。

 

では、以上のコードを記入したPythonファイルをターミナル等で『python scraping_h1.py』と実行してみて、同様の出力結果を得られたら成功です。

また、注意なのですが、指定できる時間足は最小で5秒足だと思われます。取得できる件数も最大で5000件までです。

今後パイソンを使って、為替情報を機械学習したいと思っている人にとっては、データが5000件というのは少々心もとないと思いますので、

次の項目で、過去レートを5000件以上取得する方法をご紹介します。

 

・過去レートを5000件以上取得する方法

それでは、過去レートを5000件以上取得する方法をご紹介します。

コードの中に『get_history()』がありますが、これの引数に『end』というのがあり、その時間を指定すると、その時間よりも過去のレートを取得していってくれます。

 

それも意識した上で、以下のコードで、1時間足を3万件取得するコードを紹介します。

 

以上のコードを実行した時に、同様の出力結果を得られ、30000という表示がされれば成功です。

時間表示も見てみると、2013年まで遡れていることがわかります。

 

このように、for文と引数:end を用いれば5000件以上の過去レートを取得できることができます。

また、もっと期待値の高い稼ぐ方法を知りたい方はこちらまで↓

 

総括

今回はoandapy のご紹介と、レートの取得方法をご紹介しました。

近々、oandapy を用いて、注文を出したり、決済したりできるプログラムをご紹介しようかと思います。

 

また、このコードじゃ上手くいかない!!という方は、以下の少しバージョンアップさせたコードお試しください。おそらくOANDA APIがV20になってると思いますので…

【V20版】PythonでOANDA APIを使って、指定した期間の過去レートを取得する方法

 

報告!!実際に利益の出たプログラムをnoteにて販売中!!

自分が長いこと研究して実際に1週間に3%ほどの利益を上げれている自動取引BOTを下記のリンク先にて公開中です!気になるかたはぜひご覧ください!

FxトレーダーでOANDA使ってる方、Pythonで作ったこの自動売買BOTを試して欲しいです。

また、新しく人工知能の知識を用いた線形回帰をベースとした特殊な強化学習のモデルを作成しました。かなりのパフォーマンスを上げることができたいますので、是非お試しください。

【論文実装編】線形回帰モデルのFx自動売買ー学習パート+取引モデルのパート統合

 

 

スポンサードリンク