web-dev-qa-db-fra.com

Comment obtenir des données historiques sur les taux de change via Yahoo Finance?

Je souhaite obtenir une réponse JSON ou XML avec la chronologie des taux de change, par exemple du 2015-01-07 au 2015-03-07.

Avec cette réponse , nous ne pouvons obtenir que les dernières informations sur les taux de change des devises choisies.

Ici nous pouvons obtenir les taux de change pour certaines dates en utilisant l'URL: http://finance.yahoo.com/connection/currency-converter-cache?date=20150307 et analyser le JSON obtenu pour certaines devises.

Mais je dois obtenir les taux de change pour la plage de dates telle qu'elle est ici mais au format JSON ou XML. 

Y-a-t-il un moyen de faire ça?

14
user3307869

Utilisez YQL ( https://developer.yahoo.com/yql/ )

Ensuite, vous pouvez récupérer les données dont vous avez besoin avec une requête comme celle-ci:

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

Vérifier ici

12
dym

Voici une solution pour obtenir vos données dans un DataFrame pandas. Vous pouvez ensuite exporter du DataFrame au format JSON, XML, etc. à l’aide de fonctions telles que pandas.DataFrame.to_json.

Les symboles peuvent également être différents de ceux que vous utilisez.

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

Vous devrez installer pandas-datareader. (Je suppose que vous avez déjà des pandas).

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

L'API Yahoo ne fonctionne plus, mais il existe d'autres API qui fournissent des données monétaires au format JSON. FXMarketAPI est la seule API qui offre une API compatible Pandas qui fournit des données historiques au format JSON. Il existe un point final de pandas qui vous aide à extraire des données. Bien qu'il y ait une limite de 1000 demandes pour les utilisateurs gratuits. vous pouvez voir un exemple ci-dessous.

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)

n'oubliez pas d'accéder à api_key et d'ajouter à la requête ci-dessus. 

0
jimmy rickard