プログラミングで投資の分析ができる?
データはどこから持ってくるの?
コードはどうしたらいいの?
という悩みを解決できる記事になっています。
なぜなら、私はプログラミング言語Pythonで
投資の分析をしているからです。
結論だけ言うと、
FXのデータは無料で取得できます。
この記事ではALPHA VANTAGEからデータを取得する方法を紹介します。
読み終えていただければ、
Pythonでデータ分析ができるようになります。
※おすすめの勉強本
プログラミングで投資の分析をするなら必読の一冊!
実例やチャート付きでPythonを学べます。
Pythonのインストール方法から学べるので
これから始める人にもおすすめです。
目次
機械学習のためにFXのデータを取得したい

前の記事ではPythonの機械学習を使って
株式や仮想通貨の価格予想をしました。
これをFXに活用すれば、稼げるのではないかと
考えたのが始まりです。
でも、yahoo financeからは日足データしか取得できません。
1日単位でトレードして効率よく稼ぎたいなあ
そんな願いを叶えるために
ALPHA VANTAGEからデータを取得します。
ALPHA VANTAGEとは?

(参考:ALPHA VANTAGE)
AlphaVantageは、多くの研究者、エンジニア、ビジネス専門家が使用する無料のストックAPIです。
データは株価、為替(FX)、仮想通貨の他に
テクニカル指標、経済指標もあります。
メールアドレスを登録すればAPIが取得でき、
無料でデータを取得できます。
APIキーの取得方法
まずホーム画面にてGET YOUR FREE API KEY TODAYを開きます。

必要事項を入力して送信するだけです。
そしたらAPIキーがもらえます。

ALPHA VANTAGEの使い方
APIキーを取得したらDOCUMENTATIONを開きます。

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

ここにALPHA VANTAGEの使い方が解説されています。
じっくり読むのは面倒なので、
Examples (click for JSON output)から参考URLをコピーして
ブラウザの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のインストール方法から学べるので
これから始める人にもおすすめです。
ここまで読んでくださりありがとうございました。^^