Подтвердить что ты не робот

Как получить исторические данные для курсов обмена валют через Yahoo Finance?

Мне нужно получить ответ JSON или XML с хронологией обменных курсов валют, например, с 2015-01-07 по 2015-03-07.

Используя этот ответ, мы можем получить самую последнюю информацию о курсах обмена валют для выбранных валют.

Здесь мы можем получить обменные курсы валют на определенную дату, используя URL-адрес: http://finance.yahoo.com/connection/currency-converter-cache?date=20150307 и разбора полученного JSON для определенной валюты.

Но мне нужно получить обменные курсы валют для диапазона дат, так как это здесь, но в формате JSON или XML.

Есть ли способ сделать это?

4b9b3361

Ответ 1

Используйте 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"

Проверить здесь

Ответ 2

Вот решение, чтобы получить ваши данные в pandas DataFrame. Затем вы можете экспортировать из DataFrame в JSON, XML и т.д., Используя такие функции, как pandas.DataFrame.to_json.

Символы также могут отличаться от символов, которые вы используете.

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. (Я предполагаю, что у вас уже есть pandas).

sudo -H pip install pandas-datareader (ubuntu)
pip install pandas-datareader (windows)

Ответ 3

Yahoo API больше не работает, однако есть другие API, которые предоставляют данные о валютах в формате JSON. FXMarketAPI является единственным API, который предлагает Pandas-совместимый API, который предоставляет исторические данные в формате JSON. Существует конечная точка 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 и добавить к вышеуказанному запросу.