Diskussion zum Artikel "Bondrenditen aus dem Web kratzen"

 

Neuer Artikel Bondrenditen aus dem Web kratzen :

Automatisiertes Erfassen von Zinsdaten, um die Leistung eines Expert Advisors zu verbessern.

Der automatisierte Handel basiert fast ausschließlich auf technischen Indikatoren, die vergangene Preisaktionen nutzen, um zukünftige Preisbewegungen vorherzusagen. Der Händler, der fundamentale Kräfte ignoriert, die die Märkte bewegen, ist jedoch im Nachteil gegenüber Händlern, die fundamentale Daten in ihre Handelsentscheidungen einbeziehen. Ein Indikator, der auf automatisch erfassten Fundamentaldaten basiert, kann die Leistung eines Expert Advisors verbessern. Die fundamentalen Daten, die sich am stärksten auf die Wechselkurse auswirken, sind die Zinssätze, die den wahrgenommenen Wert der Währungen beeinflussen. Während die Leitzinsen selbst nicht so volatil sind, schwanken die Renditen der Staatsanleihen wie den 10-jährige Treasury Note der USA auf allen Zeitrahmen an den globalen Anleihemärkten. Diese Renditen spiegeln die Erwartung des Marktes wider, wohin die zukünftigen Zentralbankzinsen gehen werden. Anleiherenditen sind oft ein wichtiger Indikator für Zinsen und Wechselkurse. Im Devisenmarkt ist die Metrik, die für ein Währungspaar gilt, die Zinsdifferenz, insbesondere das Delta, oder die Änderung der Zinsdifferenz in verschiedenen Zeitrahmen. Abbildung 1 zeigt einen Fall, in dem die Bewegung der Zinsdifferenz, ausgedrückt in Basispunkten, in die positive Richtung ein Frühindikator für die Bewegung des Währungspaares EUR/USD in die gleiche Richtung war. Dieser Artikel zeigt, wie man die Renditen aus dem Internet sammelt und daraus abgeleitete Daten wie Zinsdifferenz und Delta ermittelt.

Die Zinsdifferenz als Frühindikator

Bild 1. Der Indikator der Zinsdifferenz auf dem Chart H1 EUR/USD

Autor: Steven Brown

 

So sieht es aus, wenn ich script05 anhänge

und nichts wird auf dem Diagramm oder im Indikatorbereich gedruckt...

Was übersehe ich?


2019.04.14 17:11:18.623 Scripts script bonds (EURUSD,Daily) erfolgreich geladen

2019.04.14 17:11:18.984 Skripte Skript Anleihen (EURUSD,Daily) entfernt



 
jimjack:

So sieht es aus, wenn ich script05 anhänge

und nichts auf dem Diagramm oder im Indikatorbereich gedruckt wird...

Was übersehe ich?


2019.04.14 17:11:18.623 Skripte Skript Anleihen (EURUSD,Daily) erfolgreich geladen

2019.04.14 17:11:18.984 Skripte Skript Anleihen (EURUSD,Daily) entfernt



ScraperBot06.mq4 funktioniert im MT5 einwandfrei und tut dasselbe wie ScraperBot05.mq5. Der Unterschied ist, dass ScraperBot05 WebRequest() verwendet, während ScraperBot06 die Funktionen in WinINet.dll verwendet, die zuverlässiger zu sein scheinen als WebRequest(). Ich werde das Problem untersuchen, um zu sehen, ob ScraperBot05.mq5 mit WebRequest() zum Laufen gebracht werden kann. Als ich den Artikel im Oktober 2018 einreichte, funktionierte er einwandfrei.

Edit: Der Aufruf von WebRequest() in ScraperBot05.mql und anderen Skripten funktioniert nur, wenn der in der Webanfragegenannte Server in den Metatrader-Optionen zugelassen ist. Dies wird im Artikel erklärt.

 
Die an diese Nachricht angehängte Datei ScraperBot06.mq5 ist identisch mit ScraperBot05.mq5, verwendet aber die Funktionen in WinINet.dll anstelle von WebRequest(). Ich habe ScraperBot06.mq5 hochgeladen, weil WebRequest() in ScraperBot05.mq5 jetzt den Fehlercode -1 zurückgibt, woraufhin GetLastError() den Code 4014 zurückgibt,

ERR_FUNCTION_NOT_ALLOWED

4014

Funktion ist für Aufruf nicht erlaubt

Möglicherweise hat Metatrader 5 die Implementierung von WebRequest() geändert, seit ich den Artikel im Oktober 2018 eingereicht habe, aber die Dokumentation für WebRequest() hat sich nicht geändert.

Edit: das Problem ist auf meinem Computer gelöst, nachdem ich in den Metatrader-Optionen Anfragen an den Webserver "https://api.wsj.net" erlaubt habe . Offenbar wurde die Erlaubnis durch ein Metatrader-Update entfernt.

Dateien:
 
Steven Brown:
Die an diese Nachricht angehängte Datei ScraperBot06.mq5 ist identisch mit ScraperBot05.mq5, verwendet aber die Funktionen in WinINet.dll anstelle von WebRequest(). Ich habe ScraperBot06.mq5 hochgeladen, weil WebRequest() in ScraperBot05.mq5 jetzt den Fehlercode -1 zurückgibt, woraufhin GetLastError() den Code 4014 zurückgibt,

ERR_FUNCTION_NOT_ALLOWED

4014

Funktion ist für Aufruf nicht erlaubt

Metatrader 5 hat möglicherweise die Implementierung von WebRequest() geändert, seit ich den Artikel im Oktober 2018 eingereicht habe, aber die Dokumentation für WebRequest() hat sich nicht geändert.




Vielen Dank für Ihre Antwort.

Ich habe es noch einmal kompiliert und es gibt eine Reihe von Warnungen, die besagen, dass "möglicher Datenverlust aufgrund der Typkonvertierung".

immer noch kein Glück, etwas im Terminal zu sehen. dll ist erlaubt.

Brauche ich noch andere Pakete von Microsoft, .net etc...?


danke



 
WICHTIG! Der Aufruf von WebRequest() in ScraperBot04.mq5 und ScraperBot05.mq5 funktioniert nur, wenn der in der Webanfrage genannte Server in den Metatrader-Optionen zugelassen ist. Um einen Webserver zu aktivieren, klicken Sie auf Extras\Optionen, und klicken Sie in dem daraufhin angezeigten Dialogfeld auf die Registerkarte Expert Advisors. Aktivieren Sie "Webanforderung für aufgelistete URL zulassen", klicken Sie auf "Neue URL hinzufügen", und geben Sie die Basis-URL des Webservers ein. Im Fall von ScraperBot05 lautet diese URL"https://api.wsj.net". Wenn Sie dies nicht tun, wird der Aufruf von WebRequest() fehlschlagen und die Fehlercodes -1 und 4014 melden. Die Notwendigkeit, einen Webserver ausdrücklich zuzulassen, wird in dem Artikel unter der Überschrift "ScraperBot04" erwähnt. Ich schrieb: "Damit WebRequest funktioniert, muss die Basis-URL des Servers, in diesem Fall'https://api.wsj.net', in der Liste der zulässigen Server unter "Tools\Options\Expert Advisors" in der MetaTrader-Plattform enthalten sein."

In meiner Kopie von Metatrader 5 war der Webserver"https://api.wsj.net" zugelassen, aber er wurde durch ein Update auf eine neue Version von Metatrader 5 aus der Liste entfernt. Das sollte nicht passieren, und es scheint ein Fehler zu sein, der von Metaquotes behoben werden sollte. Wenn ein Webserver einmal zugelassen ist, sollte er durch Updates hindurch zugelassen bleiben.
 
jimjack:




Ich danke Ihnen für Ihre Antwort.

Ich habe es noch einmal kompiliert und es gibt eine Warnung, die besagt, dass es zu Datenverlusten aufgrund der Typkonvertierung kommen kann.

immer noch kein Glück auf etwas in das Terminal zu sehen. dll ist erlaubt.

Brauche ich noch andere Pakete von Microsoft, .net etc...?


danke



Die Compiler-Warnungen über Datenverluste können ignoriert werden, da sie auf die Verwendung des Typs float anstelle des Typs double zurückzuführen sind. Ich habe mich für den Typ float entschieden, weil die Genauigkeit des Typs double in dieser Anwendung nicht erforderlich ist. Nach den Warnungen gelingt die Kompilierung ohne Fehler. Haben Sie das Skript mit dem Namen ScraperBot06.mq5, das ich meiner Antwort beigefügt habe, heruntergeladen, kompiliert und ausprobiert? Es verwendet WinINet.dll anstelle von WebRequest(). Was den fehlgeschlagenen Aufruf von WebRequest() in ScraperBot05 betrifft, haben Sie den Webserver in den Metatrader-Optionen aktiviert? Siehe meinen vorherigen Beitrag, der mit"WICHTIG!" beginnt. Ich habe in dem Artikel geschrieben, dass WebRequest() fehlschlägt, wenn der Webserver nicht ausdrücklich in den Optionen zugelassen ist.
 

hmmm,

lassen Sie mich Metatrader neu installieren, denn die Url war von Anfang an erlaubt. ja, ich habe wininet.dll erlaubt und meine Win (10) Verzeichnisse überprüft... es ist da.

 
Vielen Dank für den Artikel, sehr interessant! Bitte berichten Sie die Ergebnisse der Verwendung dieses Systems im realen Handel.
 
Vielen Dank für den Artikel, sehr interessant! Bitte berichten Sie die Ergebnisse der Verwendung dieses Systems im realen Handel.
 
Der richtige Weg, um wirklich profitable automatisierte Handelssysteme zu erstellen.