Mettez le taux de change obtenu à partir de l'API REST Oanda en Python dans MongoDB

Remarque. Les deux utilisent le format JSON, ils sont donc très compatibles.

Environnement

D'ici pour le moment. Omettre la construction d'environnement de python

Installez MongoDB sur Windows

N'oubliez pas de mettre le bac dans votre PATH. (J'ai oublié) http://qiita.com/yoh-nak/items/f0c429f10347ae7ec98b http://qiita.com/t-koyama/items/9b8804cbec59b3c93eb0

Installez pymongo

pip install pymongo

Installer oandapy (wrapper python pour l'API REST oanda)

pip install oandapy

Instructions

Apprêt MongoDB

http://qiita.com/saba1024/items/f2ad56f2a3ba7aaf8521 http://www.cuspy.org/diary/2012-04-17/the-little-mongodb-book-ja.pdf

Comment utiliser l'API Oanda

http://developer.oanda.com/docs/jp/ En passant, je n'ai pas essayé d'utiliser l'environnement sandbox, je recommande donc d'utiliser l'environnement fxTrade Practice depuis le début.

Comment utiliser pymongo

http://api.mongodb.com/python/

Comment utiliser oandapy

https://github.com/oanda/oandapy

Exemple de code

Frappez l'API en utilisant oandapy

import oandapy

oanda = oandapy.API(environment="practice", access_token="your_token")
response = oanda.get_history(instrument="EUR_USD",granularity="D",count=500)
EUR_USD_D = response.get("candles")

Avec cela seul, il est possible d'obtenir des données quotidiennes passées euro-dollar (500 pas). Vous pouvez également spécifier le début et la fin.

Mettre les données dans MongoDB

from pymongo import MongoClient

client = MongoClient('localhost',27017)
db = client.ex_rate
collection = db.eur_usd_d
collection.insert_many(d for d in EUR_USD_D)

Avec cela seul, les données quotidiennes (500 étapes) acquises ci-dessus au format JSON peuvent être stockées dans la collection (table) [eur_usd_d] de la base de données MongoDB [ex_rate]. Même si le contenu de MongoDB est vide, ils créent des bases de données et des collections sans autorisation.

Obtenez une liste des stocks disponibles

import oandapy
import pandas as pd

oanda = oandapy.API(environment="practice", access_token="your_token")

Entrez l'identifiant du compte dans #account_id (pas l'identifiant lors de la connexion) response = oanda.get_instruments(account_id="xxxxxxx") insts = response.get("instruments") #In Pandas pour une visualisation facile df = pd.DataFrame(list(insts)) df.head()

↓ Sortie

displayName	instrument	maxTradeUnits	pip
0	AUD/CAD	AUD_CAD	10000000	0.0001
1	AUD/CHF	AUD_CHF	10000000	0.0001
2	AUD/HKD	AUD_HKD	10000000	0.0001
3	AUD/JPY	AUD_JPY	10000000	0.01
4	AUD/NZD	AUD_NZD	10000000	0.0001

Si vous souhaitez obtenir des données de 5000 pas ou plus

Vous pouvez l'obtenir en continu même si le nombre que vous souhaitez obtenir dépasse la limite supérieure de 5000 par la procédure suivante. Il existe peut-être un moyen plus intelligent. -Obtenir le dernier groupe de données et obtenir le "temps" supérieur (le plus ancien) -Reformater les données "heure" et émettre à nouveau une demande comme "fin"

import oandapy
import datetime as dt

oanda = oandapy.API(environment="practice", 
access_token="your_token")

response1 = oanda.get_history(instrument="EUR_USD",granularity="D",count=2)
EUR_USD_H1 = response1.get("candles")

Obtenir l'heure des premières données et convertir le format RFC3339 en format datetime python

dtime = dt.datetime.strptime(EUR_USD_H1[0]['time'],'%Y-%m-%dT%H:%M:%S.%fZ')

#Convertir à nouveau au format RFC3339 rfc_endtime = dtime.isoformat('T')

response2 = oanda.get_history(instrument="EUR_USD",granularity="D",end=rfc_endtime,count=2)
EUR_USD_H2 = response2.get("candles")

for d in EUR_USD_H2:
    print(d)
for d in EUR_USD_H1:
    print(d)

↓ Sortie

{'time': '2017-08-28T21:00:00.000000Z', 'openBid': 1.19762, 'openAsk': 1.19787, 'highBid': 1.20698, 'highAsk': 1.20712, 'lowBid': 1.19451, 'lowAsk': 1.19471, 'closeBid': 1.19709, 'closeAsk': 1.19728, 'volume': 73642, 'complete': True}
{'time': '2017-08-29T21:00:00.000000Z', 'openBid': 1.19697, 'openAsk': 1.19731, 'highBid': 1.19839, 'highAsk': 1.19853, 'lowBid': 1.18803, 'lowAsk': 1.18821, 'closeBid': 1.18828, 'closeAsk': 1.18856, 'volume': 56980, 'complete': True}
{'time': '2017-08-30T21:00:00.000000Z', 'openBid': 1.18827, 'openAsk': 1.18857, 'highBid': 1.19119, 'highAsk': 1.19139, 'lowBid': 1.18225, 'lowAsk': 1.18238, 'closeBid': 1.19079, 'closeAsk': 1.19102, 'volume': 59987, 'complete': True}
{'time': '2017-08-31T21:00:00.000000Z', 'openBid': 1.19078, 'openAsk': 1.19103, 'highBid': 1.19794, 'highAsk': 1.19807, 'lowBid': 1.18485, 'lowAsk': 1.18508, 'closeBid': 1.18572, 'closeAsk': 1.18625, 'volume': 76954, 'complete': True}

Recommended Posts

Mettez le taux de change obtenu à partir de l'API REST Oanda en Python dans MongoDB
Obtenir l'API arXiv en Python
Frappez l'API Sesami en Python
Accédez à l'API Web en Python
Utilisez l'API Flickr de Python
Implémentez rapidement l'API REST en Python
Accéder à l'API Twitter avec Python
Obtenez des taux de change à partir des taux de change ouverts en Python
Essayez d'utiliser l'API Kraken avec Python
Tweet à l'aide de l'API Twitter en Python
MongoDB avec Python pour la première fois
Appuyez sur les exemples v20-python-samples de la bibliothèque d'encapsuleurs d'API REST OANDA v20 pour Python
Mettez du texte récupéré en Python dans une feuille de calcul Google
Essayez d'utiliser l'API BitFlyer Ligntning en Python
Conseils pour accéder à l'API ATND avec Python
[WP REST API v2] Télécharger des images avec Python
Accédez à l'API Firebase Dynamic Links en Python
Essayez d'accéder à l'API YQL directement depuis Python 3
Essayez d'utiliser l'API DropBox Core avec Python
Importez le calendrier obtenu à partir de "Schedule-kun" dans Google Agenda
Un débutant Python a essayé d'implémenter l'API REST en un jour
Faire fonctionner mongoDB à partir de python dans l'environnement ubuntu ① Introduction de mongoDB
Traduire de Visual Studio 2017 vers Python (API Microsoft Translator Text)
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
Paramètres initiaux lors de l'utilisation de l'API foursquare avec python
Obtenez des données LEAD à l'aide de l'API REST de Marketo en Python
Trouvez la partie 575 de Wikipedia en Python
Hit API REST de Watson à partir de Python avec IBM Bluemix
Utiliser l'API de recherche de la Bibliothèque du Parlement national en Python
Mettez Ubuntu dans Raspi, mettez Docker dessus et contrôlez GPIO avec python à partir du conteneur
API C en Python 3
J'ai essayé de créer une API list.csv avec Python à partir de swagger.yaml
La première API à créer avec le framework Python Djnago REST
Obtenez la valeur tout en spécifiant la valeur par défaut de dict en Python
Manipulez le presse-papiers en Python et collez le tableau dans Excel
Appuyez sur REST en Python pour obtenir des données de New Relic
Génération de spécifications et génération de code dans le développement d'API REST (édition Python)