Bei der Erstellung eines automatischen Handelsbots für FX muss berücksichtigt werden, welche Strategie für den automatischen Handel verwendet werden soll. Und die Strategie muss dahingehend bewertet werden, wie gut sie ist. Dieser Artikel dient auch als Erinnerung daran, wie Sie FX-Daten mithilfe der OANDA REST-API erfassen, um die Leistung Ihrer Strategie zu überprüfen.
Die OANDA REST-API bezieht sich auf eine Gruppe von APIs, die von einem FX-Anbieter namens Oanda veröffentlicht wurden. Es gibt nur sehr wenige Unternehmen, die die FX-API veröffentlichen. Angesichts der Menge an Informationen im Internet ist es meiner Meinung nach besser, die OANDA REST-API für die FX-bezogene API zu verwenden. Um die API verwenden zu können, müssen Sie sich bei OANDA registrieren und einen API-Schlüssel erhalten. Sie können sich in ca. 5 Minuten über den unten stehenden Link registrieren
Registrieren Sie sich bei OANDA und erstellen Sie nach der Ausgabe des API-Schlüssels eine Umgebung, in der Sie die API aufrufen können. Es ist praktisch, den API-Schlüssel in einer separaten Datei abzulegen.
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")
Verwenden Sie Instrumentenkerzen, um historische Daten abzurufen. Offizielles Dokument Oandapy V20-Dokumentation In etwa handelt es sich um eine Stichprobe, die 15-Minuten-Daten erfasst und in den Datenrahmen ↓ eintaucht Danach können Sie frei kochen, indem Sie in die Datenbank eintauchen oder die Daten so verwenden, wie sie sind.
ic = InstrumentsCandles(
instrument="USD_JPY", #Wählen Sie ein Währungspaar
params={
"granularity": "M15", #Wählen Sie die Art des Kerzenfußes
"alignmentTimezone": "Japan", #Zeitzone
# "count": 5000 #Anzahl der zu erfassenden Daten von-Wenn to angegeben ist, wird count nicht angegeben
"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