PythonでFXのデータを取得する方法【ALPHA VANTAGE】

2024-07-18 by 内田裕之

  • プログラミングでFXの分析ができる?
  • データはどこから持ってくるの?
  • コードはどうしたらいいの?

このような悩みを解決できる記事になっています。

こんにちは。

Pythonで投資のチャート分析をしているうっちゃんです。

結論からいえば、FXのデータは無料で取得できます。

この記事ではALPHA VANTAGEからデータを取得する方法を紹介します。

投資とプログラミング学習に役立つと嬉しいです。

この記事は内容に広告・プロモーションを含みます。

機械学習のためにFXのデータを取得したい

機械学習のためにFXのデータを取得したい

プログラミング言語Pythonを使って投資でひと儲けしたいと考え、読み始めたこちらの本。

そしてYouTubeで機械学習による株価の予想を学びました。

機械学習をFXに活用すれば稼げるのではないかと考えたのが始まりです。

でも、yahoo financeからは日足データしか取得できません。

1日単位でトレードして効率よく稼ぎたいなあ

そんな願いを叶えるためにALPHA VANTAGEからデータを取得することを思いつきました。

ALPHA VANTAGEとは?

alphavantageとは?

AlphaVantageは、多くの研究者、エンジニア、ビジネス専門家が使用する無料のストックAPIです。

(参考:ALPHA VANTAGE

データは株価、為替(FX)、仮想通貨の他にテクニカル指標、経済指標もあります。

メールアドレスを登録すればAPIが取得でき、無料でデータを取得できます。

APIキーの取得方法

まずホーム画面にてGET YOUR FREE API KEY TODAYを開きます。

alphavantageでAPIキーを取得する

必要事項を入力して送信するだけです。

そしたらAPIキーがもらえます。

alphavantageでAPIを取得した後

ALPHA VANTAGEの使い方

APIキーを取得したらDOCUMENTATIONを開きます。

alphavantageのドキュメンテーション

今回はFXの過去レートが欲しいのでForex(FX)のintradayを開きます。

ALPHA VANTAGのFX過去データ

ここにALPHA VANTAGEの使い方が解説されています。

じっくり読むのは面倒なので、Examples (click for JSON output)から参考URLをコピーしてブラウザのURL欄に貼り付けます。

alphavantageの参考URL alphavantageの参考URLを開いた画面

過去データの一覧が表れました。

このURLのパラメーターを変えることでさまざまなデータが取得できます。

例えばサンプルURLは次のようになっています。

https://www.alphavantage.co/query?function=FX_INTRADAY&from_symbol=EUR&to_symbol=USD&interval=5min&apikey=demo

function=FX_INTRADAY

1日内でのデータを見る。

from_symbol=EUR

ユーロから

to_symbol=USD

米ドルへの為替レート

interval=5min

5分足

apikey=demo

APIキーはデモになっています。

これを自分のAPIキーに変更して使用します。

 

他の項目はDOCUMENTATIONの説明に従って変更します。

pythonのpandasにデータを渡す方法

APIでデータが取得できたので、Pythonで分析できる形に作り変えます。

json形式のデータをpandasのデータフレームに入れていきます。


	#ライブラリのインポート
	import csv
	import requests
	import json
	import pandas as pd
	
	# replace the "demo" apikey below with your own key from https://www.alphavantage.co/support/#api-key
	#EURUSDの15分足
	url = 'https://www.alphavantage.co/query?function=FX_INTRADAY&from_symbol=EUR&to_symbol=USD&interval=15min&apikey=YOURAPIKEY'
	r = requests.get(url)
	data = json.loads(r.text)
	
	#過去データのみにする(概要説明を除く)
	data = data['Time Series FX (15min)']
	
	#データを入れるリスト
	fx_data = []
	
	#FXデータをfx_dataに入れていく
	for i,df in enumerate(data):
			column = []
			fx = data
			column.append(df) #日時
			column.append(fx[df]['1. open']) #始値
			column.append(fx[df]['2. high']) #高値
			column.append(fx[df]['3. low']) #安値
			column.append(fx[df]['4. close']) #終値
			fx_data.append(column)
	
	#リストをpandas形式に作り変える
	fx_df = pd.DataFrame(fx_data)
	#列名の変更
	fx_df = fx_df.set_axis(['Datetime', 'open', 'high', 'low', 'close'], axis=1)

					

これで機械学習の前準備ができました。

次回は機械学習で為替を予測できるか、検証します。

おすすめ記事

ロバートキヨサキが「2023年に金(ゴールド)は2倍に値上がりする」と予想した理由とは?

2023年iDeCoのベストな投資先は【コモディティ】Pythonで投資分析した話

【知らないと損】2023年にレバナスに投資してはいけない理由