Lors de la création d'un bot de trading automatique pour FX, il est nécessaire de considérer le type de stratégie à utiliser pour le trading automatique. Et la stratégie doit être évaluée pour sa performance. Cet article sert également de rappel comment collecter des données FX à l'aide de l'API OANDA REST pour vérifier les performances de votre stratégie.
L'API REST OANDA fait référence à un groupe d'API publiées par un fournisseur FX appelé Oanda. Il y a très peu d'entreprises qui publient des API FX, et compte tenu de la quantité d'informations sur le net, je pense qu'il est préférable d'utiliser l'API OANDA REST pour les API liées aux FX. Pour utiliser l'API, vous devez vous inscrire auprès d'OANDA et obtenir une clé API émise. Vous pouvez vous inscrire en environ 5 minutes à partir du lien ci-dessous
Inscrivez-vous sur OANDA, et une fois la clé API émise, créons un environnement dans lequel vous pouvez accéder à l'API. Il est pratique de placer la clé API dans un fichier séparé.
pip install oandapyV20
oanda_access_key.py
ACCOUNT_ID = "xxxxxxxxxxx"
PERSONAL_ACCESS_TOKEN = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
instruments_candles.py
from oandapyV20.endpoints.instruments import InstrumentsCandles
import oandapyV20
import oanda_access_key as oak
account_id = oak.ACCOUNT_ID
access_token = oak.PERSONAL_ACCESS_TOKEN
api = oandapyV20.API(access_token = access_token, environment = "practice")
Utilisez Instruments Candles pour obtenir des données historiques. Document officiel Documentation Oandapy V20 En gros, c'est un échantillon qui acquiert des données de 15 minutes et plonge dans la base de données ↓ Après cela, vous pouvez cuisiner librement en vous plongeant dans la base de données ou en utilisant les données telles quelles.
ic = InstrumentsCandles(
instrument="USD_JPY", #Sélectionnez une paire de devises
params={
"granularity": "M15", #Sélectionnez le type de pied de bougie
"alignmentTimezone": "Japan", #Fuseau horaire
# "count": 5000 #Nombre de données à acquérir, à partir de-Si to est spécifié, count n'est pas spécifié
"from": start_datetime.strftime(datetime_format),
"to": (start_datetime + relativedelta(days=date_window) - relativedelta(seconds=1)).strftime(datetime_format)
}
)
api.request(ic)
data = []
for candle in ic.response["candles"]:
data.append(
[
candle['time'],
candle['volume'],
candle['mid']['o'],
candle['mid']['h'],
candle['mid']['l'],
candle['mid']['c']
]
)
df = pd.DataFrame(data)
Recommended Posts