web-dev-qa-db-ja.com

Yahoo Finance経由で為替レートの履歴データを取得する方法は?

たとえば、2015年1月7日から2015年3月7日までの為替レートの時系列でJSONまたはXML応答を取得する必要があります。

この回答 を使用すると、選択した通貨の為替レートに関する最新情報を取得できます。

ここ URLを使用して特定の日付の為替レートを取得できます: http://finance.yahoo.com/connection/currency-converter-cache?date=20150307 特定の通貨について取得したJSONを解析します。

しかし、日付範囲の通貨為替レートをそのまま取得する必要があります ここ ですが、JSONまたはXML形式です。

それを行う方法はありますか?

14
user3307869

YQLを使用( https://developer.yahoo.com/yql/

次に、次のようなクエリで必要なデータを取得できます。

SELECT * 
FROM 
    yahoo.finance.historicaldata 
WHERE 
    symbol = "EUR=X" 
AND 
    startDate = "2009-09-11" 
AND 
    endDate = "2010-03-10"

ここをチェック

12
dym

以下は、データをpandas DataFrameに取得するためのソリューションです。その後、pandas.DataFrame.to_jsonなどの関数を使用して、DataFrameからJSON、XMLなどにエクスポートできます。

シンボルは、使用しているものと異なる場合もあります。

import pandas as pd
import pandas_datareader.data as web
from datetime import datetime

start = datetime(2016, 1, 1)
end = datetime(2017, 3, 31)
aud = web.DataReader('AUD=X', 'yahoo', start, end)

In [29]: aud.head(5)
Out[29]: 
              Open    High     Low   Close  Volume  Adj Close
Date                                                         
2016-01-01  1.3752  1.3752  1.3752  1.3752       0     1.3752
2016-01-04  1.3725  1.3950  1.3712  1.3723       0     1.3723
2016-01-05  1.3921  1.4017  1.3857  1.3916       0     1.3916
2016-01-06  1.3963  1.4168  1.3941  1.3961       0     1.3961
2016-01-07  1.4124  1.4322  1.4109  1.4124       0     1.4124

Pandas-datareaderをインストールする必要があります。 (私はあなたがすでにパンダを持っていると仮定しています)。

Sudo -H pip install pandas-datareader (ubuntu)
pip install pandas-datareader (windows)
2
dmdip

Yahoo APIはもう機能しませんが、JSON形式で通貨データを提供する他のAPIがあります。 FXMarketAPI は、JSON形式で履歴データを提供するPandas互換性のあるAPIを提供する唯一のAPIです。pandasエンドポイントがあります無料のユーザーのリクエスト数は1000に制限されていますが、以下の例をご覧ください。

URL = "https://fxmarketapi.com/apipandas"
params = {'currency' : 'EURUSD',
'start_date' : '2018-07-02',
'end_date':'2018-12-06',
'api_key':'**************'}

response = requests.get("https://fxmarketapi.com/apipandas", params=params)
df= pd.read_json(response.text)

api_keyへのアクセスを取得し、上記のリクエストに追加することを忘れないでください。

0
jimmy rickard