[Python]無料かつ制限なしで過去の任意の為替銘柄の4本値(OHLC)を取得する方法

どうもふうやです。

つい最近まではBitFlyerで自動売買Botを運用して一週間で5倍という記録を叩き出したのですが、物足りなさを感じて次は為替で自動取引Botを作っています。

為替といっても自分はバイナリオプションでの自動取引を想定しているので、どうしても4本値(OHLC)が必要なので何かしらのサイトをスクレイピングしたりAPI使って、取得できないかと探していました。

ほとんどのAPIは有料プランを利用しないと、WebSocketに対応しなかったり、そもそもの話で過去の任意の期間の4本値を取得できるサービスが少なかったりと難点ばかりでした。

ちなみに自分がバイナリオプションのハイローオーストラリアでBotを開発していく上で、ヘッドレスブラウザでの操作を行うPython製のスクリプト等はnoteで公開しています。

参考 Pythonのヘッドレスブラウザでハイローオーストラリアを自動操作するnote | ふうや@Fwww

色々模索した結果下記のサイトで有力な情報を手に入れ、

参考 みんかぶ FX のチャートのレートを取得してみましたEspresso & Onigiri

みんかぶというチャートサイトの登録不要の完全無料で制限なし且つ任意の期間で任意の為替銘柄の4本値を取得できるAPIの存在を知り、これを利用することとしました。

ヤフーファイナンスのデータと比べても、みんかぶのデータのほうが遅延がほとんどなかったため採用しました。

Pythonで任意の為替銘柄で任意の期間の4本値(OHLC)を完全無料で制限無しで取得できるみんかぶAPI上でのデータ取得方法を紹介する

リクエスト先URL

https://fx.minkabu.jp/api/v2/bar/銘柄名/時間.json?count=取得件数

銘柄名

例:

  • USDJPY
  • GBPJPY
  • EURUSD
  • AUDJPY

時間

例:

  • 1m(1分足)
  • 5m(5分足)
  • 15m(15分足)
  • 30m(30分足)
  • 1h(1時間足)
  • daily(日足)
  • weekly(週足)
  • monthly(月足)

取得件数

例:

  • 10
  • 100
  • 300

構造

取得したデータの構造は以下のようになっています。

  1. UNIX Timeスタンプ
  2. 始値
  3. 高値
  4. 安値
  5. 終値

みんかぶのOHLCを取得するソースコード

Python
import requests

def kawase(symbol) :
	count = 150 #取得件数
	leg = "5m" #足
	res = requests.get("https://fx.minkabu.jp/api/v2/bar/{0}/{1}.json?count={2}".format(symbol,leg,count)).json()
	return res
USDJPY = kawase("USDJPY")
GBPJPY = kawase("GBPJPY")
EURUSD = kawase("EURUSD")
AUDJPY = kawase("AUDJPY")

取得する足や件数をその都度変更する場合は、kawase関数に引数を設けて利用してください。

以上になります。

まとめ

今回記事にしたように無料かつ制限なしで為替銘柄の過去のOHLCを取得できるAPIは今の所これしか見つけていません笑

なので他にも今回のように”ここにリクエスト投げれば取得できるよ”というAPIを御存知の方はコメントにて教えてください!

ありがとうございました!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です