Diskussion zum Artikel "Einführung in MQL5 (Teil 37): Beherrschung von API und WebRequest in MQL5 (XI)"

 

Neuer Artikel Einführung in MQL5 (Teil 37): Beherrschung von API und WebRequest in MQL5 (XI) :

In diesem Artikel zeigen wir Ihnen, wie Sie mit MQL5 authentifizierte Anfragen an die Binance-API senden, um Ihren Kontostand für alle Assets abzurufen. Erfahren Sie, wie Sie Ihren API-Schlüssel, die Serverzeit und die Signatur verwenden, um sicher auf Kontodaten zuzugreifen, und wie Sie die Antwort zur späteren Verwendung in einer Datei speichern können.

Eine Nachricht und ein geheimer Schlüssel sind die beiden wesentlichen Komponenten, die benötigt werden, um eine sichere Signatur für Binance zu erstellen, wie wir im letzten Beitrag beschrieben haben. Die Nachricht ist in diesem Fall der Zeitstempel, der die aktuelle Zeit auf dem Binance-Server widerspiegeln muss und nicht die Zeit auf Ihrem lokalen Computer. Um Ihre Anfragen zu sichern, ist der Zeitstempel unerlässlich. Replay-Attacken werden verhindert, indem sichergestellt wird, dass jede signierte Anfrage eindeutig ist und nicht von einer anderen Partei verwendet werden kann. Der Zeitstempel erfasst den genauen Zeitpunkt der Anfrage, da er sich ständig ändert. Binance ermöglicht eine genaue Überprüfung durch die Angabe des Zeitstempels in Millisekunden. Beim Zugriff auf private Endpunkte, z. B. bei der Überprüfung des Kontostands oder beim Ausführen von Trades, wird durch die Verwendung der richtigen Serverzeit sichergestellt, dass Ihre Signatur gültig ist.

Wir müssen eine API-Anfrage an Binance senden, um diese Serverzeit zu erhalten. Der Zeitstempel des Servers ist die offizielle Referenz, die Binance für alle authentifizierten Anfragen verwendet, im Gegensatz zur lokalen Zeit, die je nach der Uhr Ihres Computers oder Ihrer Zeitzone variieren kann. Das bedeutet, dass unsere MQL5-Software vor der Erstellung der Signatur Binance kontaktieren muss, um die Serverzeit zu erhalten. Jede Signatur ohne diesen Schritt würde abgelehnt werden, da der Zeitstempel nicht den Erwartungen von Binance entsprechen würde. Um die aktuelle Serverzeit zu erhalten, muss eine GET-Anfrage an einen bestimmten Binance-Endpunkt gesendet werden. Wir können frei auf diesen Endpunkt zugreifen, da er keine Authentifizierung erfordert. Die aktuelle Serverzeit in Millisekunden ist in einem JSON-Objekt enthalten, das Binance als Antwort auf unsere Anfrage bereitstellt. Danach wird unser Skript diesen Wert aus der Antwort extrahieren und ihn als Nachricht verwenden, während die Signatur erstellt wird.


Autor: ALGOYIN LTD