Python お金の健康

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

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

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

なぜなら、私はプログラミング言語Pythonで
投資の分析をしているからです。

結論だけ言うと、

FXのデータは無料で取得できます。

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

読み終えていただければ、

Pythonでデータ分析ができるようになります。

※おすすめの勉強本

プログラミングで投資の分析をするなら必読の一冊!

実例やチャート付きでPythonを学べます。

Pythonのインストール方法から学べるので

これから始める人にもおすすめです。

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

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

前の記事ではPythonの機械学習を使って

株式や仮想通貨の価格予想をしました。

これをFXに活用すれば、稼げるのではないかと

考えたのが始まりです。

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

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

そんな願いを叶えるために

ALPHA VANTAGEからデータを取得します。

ALPHA VANTAGEとは?

alphavantageとは?

(参考:ALPHA VANTAGE

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

データは株価、為替(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) 

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

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

※おすすめの勉強本

プログラミングで投資の分析をするなら必読の一冊!

実例やチャート付きでPythonを学べます。

Pythonのインストール方法から学べるので

これから始める人にもおすすめです。

ここまで読んでくださりありがとうございました。^^

-Python, お金の健康
-