Submitorder Jforex4


Jforexutils - eine Sammlung nützlicher Java-Klassen für Jforex - Part3 JForexUtils - Eine Sammlung nützlicher Java-Klassen für JForex - Part3 Willkommen im dritten Teil der JForexUtils-Dokumentation. Falls Sie vorherige Teile verpasst haben: Teil 1 Teil 2 Alle Projektlinks sind am Ende dieses Artikels aufgeführt. In diesem Teil werden wir den sehr zentralen Kontext der Auftragsvorlage und des Wandels abdecken. Die Werkzeuge für diese Aufgaben sind einfach zu bedienen und können für komplexe Szenarien konfiguriert werden. Alle Beispiele können als Java-Datei im BeispielPart3 heruntergeladen werden. Klasse OrderUtil Diese wichtige Klasse behandelt alle Bestellkreationen und Änderungen. In Teil 2 haben wir gesehen, wie man ein OrderParams-Objekt erstellt, das alle Parameter für einen Auftrag enthält. Ermöglicht es, dieses orderParams-Objekt zu verwenden, um einen neuen Auftrag zu öffnen: 1) Einen neuen Auftrag an den Server einreichen Dies war mit Hilfe des orderParams-Objekts ziemlich einfach. In der ersten Zeile erstellen wir die orderUtil-Instanz und in der zweiten Zeile, die wir unsere zuvor angelegten übergeben haben OrderParams Gegenstand der Übermittlungsmethode. Dies ist der minimale Anwendungsfall für die Eröffnung einer neuen Bestellung. Vielleicht haben Sie ein paar Fragen: Q1 Wo ist die erstellte Bestellung Q2 Was wäre, wenn eine Ausnahme geworfen wurde Wo ist es und arent sollten wir es fangen Q3 Was wäre, wenn die Einreichung vom Server abgelehnt wurde Q4 Kann ich Aufträge auf einen Thread einreichen, Unterscheidet sich von der Strategie-Thread Nun beantworten alle diese Fragen nacheinander. Wie bereits erwähnt, ist dieses Beispiel minimal Sie können es so machen, aber Sie wissen nicht, ob die Einreichung und Annahme der Bestellung durch den Server erfolgreich war oder nicht. Der Schlüssel ist, dass die submit-Methode ein OrderCreateResult-Objekt zurückgibt. Dieses Objekt enthält Informationen über den Auftragsvorlagezustand. Lets sehen, wie wir das erste Beispiel erweitern können: Zeile 1) Die Übermittlungsmethode wird wie vorher aufgerufen, aber dieses Mal erforschen wir die zurückgegebene OrderCreateResult-Instanz. Zeile 2-5) Hier überprüfen wir, ob eine excpetion aufgetreten ist und wenn ja auch eine ordnungsgemäße Fehlerbehandlung. Das Ergebnisobjekt bietet einen optionalen Accessor. Zeile 6-7) Wenn keine Ausnahme ausgelöst wurde, können wir sicher sein, dass die Bestellung erstellt wurde (aber noch nicht vom Server geöffnet, da dies einige Zeit dauert). Um die erstellte Bestellung zu erhalten, rufen wir orderOpt (). Get () auf das Ergebnisobjekt, das eine optionale Accessor-Methode zur Verfügung stellt. Alternativ können Sie die orElse-Methode von Optional verwenden, um die Auftragsinstanz zu erhalten, oder null, wenn eine excpetion aufgetreten ist. Dies ist ein kürzerer Weg, um die erstellte Ordnung zurückzuerobern, aber es ist eine Frage des Geschmacks, welche Implementierungsart du bevorzuge: Hier prüfen wir, ob der Auftrag null ist und wenn ja noch einmal die im Ergebnisobjekt vorhandene Ausnahme auswertet. Um zu erfassen: Die erstellte Reihenfolge und mögliche Ausnahmen können aus dem OrderCreateResult-Objekt zurückgewonnen werden, das Ihnen Informationen über das unmittelbare Ergebnis einer Auftragserfassung gibt. All dies sollte nun die Fragen Q1 und Q2 beantworten. Bisher haben wir nur einen Auftrag an den Server eingereicht und das sofortige Ergebnis ausgewertet, aber wir haben uns nicht um die Serverreaktionen gekümmert. JForexUtils überwacht alle IMessage-Rückrufe und wertet diese aus, um alle auftragsbezogenen Nachrichten zu sehen. Wenn wir auf die Serverreaktionen reagieren wollen, müssen wir unsere Einreichung noch etwas weiter verbessern. Klasse OrderUtil bietet zwei Überladungen der Übermittlungsmethode, die zusätzliche Rückrufobjekte annehmen. Mit diesen Rückrufen werden wir über alle Bestelländerungen informiert, sobald sie verfügbar sind, also keine Notwendigkeit, Ihren Thread abwarten zu lassen Lets, wie das funktioniert: 2) Auftrag an den Server mit Rückrufobjekt zur Auftragsbenachrichtigung senden Um alle Bestellereignisse zu erhalten, Müssen die OrderEventConsumer-Schnittstelle implementieren, die eine Methode void onOrderEvent hat (endgültige OrderEvent orderEvent). Heres eine beispielhafte Implementierung von OrderEventConsumer, die nur die empfangenen Auftragsereignisse druckt: Sie sehen, dass MyEventConsumer OrderEventConsumer implementiert und das übergebene OrderEvent-Objekt auswertet. Dieses Objekt bietet Zugriff auf die Bestellung und eine so genannte OrderEventType-Enum-Konstante, die alle möglichen Bestellereignisse repräsentiert (Sie sollten OrderEventType mit Ihrer IDE erkunden). In diesem Beispiel wechseln wir den Event-Typ um und reagieren auf erfolgreiche Auftragserfassung und füllen. Sie können Ihre benutzerdefinierten Handler hier einfügen oder auf andere Veranstaltungstypen reagieren, die Sie interessiert haben. Mit Hilfe unserer MyEventConsumer-Klasse können wir nun das orderParams-Objekt zusammen mit diesem Auftrags-Event-Handler einreichen: Das ist es mit sehr wenigen Zeilen, die wir erstellt haben Implementierung, die auf alle Order-Events reagiert, anstatt hässliche Sperrwärme auf dem Strategie-Thread zu machen. Einige Bemerkungen: JForexUtils zwingt uns, die Erstellung eines Auftrags aus der Auswertung von Auftragsveranstaltungen zu entkoppeln. Dies hilft beim Schreiben von Code, der mehr modular und wiederverwendbar ist (stellen Sie sich zum Beispiel vor, dass Sie Ihre Implementierung von OrderEventConsumer an vielen Stellen benötigen). Seien Sie sich bewusst, dass die Schnittstelle OrderEventConsumer nur eine Methode hat. Dies ermöglicht es uns, Java8 Lambdas an die Einreichungsmethode zu übergeben, sobald JForex Java8 vollständig unterstützt (JForexUtils ist zukunftssicher). Wenn Sie keine großen Switch-Cases mögen und alle Event-Logik an einem Ort setzen, gibt es eine zweite Überladung der submit-Methode, die eine Karte von OrderEventConsumer-Instanzen enthält. Diese Instanz wird nun nur über ein bestimmtes Bestellereignis informiert und hält die Handhabungslogik klein. Heres ein Beispiel, das zwei Versionen von OrderEventConsumer implementiert: img class src Jetzt können wir eine Map erstellen, die festlegt, welche Orderereignisse an welche Instanz von OrderEventConsumer weitergeleitet werden: img class src Hier haben wir festgestellt, dass ein Event-Typ SUBMITOK dem SubmitHandler in Frage gestellt wird Instanz und der Ereignistyp SUBMITREJECTED wird der SubmitRejectHandler-Instanz vorgeworfen. Dies ist die feinkörnigste Kontrolle, die wir auf Bestell-Event-Typen reagieren können, und das alles sollte nun Frage Q3 beantworten. Also, im Falle von Threading können Sie den Unterschied sehen Es gibt keinen Unterschied, man braucht nicht zu gehorchen bei der Arbeit mit der Klasse OrderUtil auf verschiedene Threads Sie reichen einfach Ihre Bestellung ein und vergessen Sie die komplexen Sachen, die das Dukascopy Wiki hier beschreibt. Keine Notwendigkeit, Callable Takes zu schaffen, keine Notwendigkeit, IEngine anzurufen, all dies geschieht für Sie hinter den Kulissen und beantwortet daher unsere letzte Frage Q4. --------------------------------------- Dies ist für Teil 3 der Artikelserie. Wir haben eine Menge Boden mit der Klasse OrderUtil abgedeckt, um zu sehen, wie man einen Auftrag einreicht. In dem kommenden Teil 4 werden wir auf diesem Weg fortfahren und sehen, wie alle anderen Auftragsoperationen wie Merge, Set SLTP etc. arbeiten, also bleiben Sie mit JForex zu überwachen und zu überprüfen Ihre Trades Die T3 Integration Bridge ermöglicht es Händlern, entweder mit MetaTrader 4 zu handeln Oder JForex. Aber, wie Shuang Wu argumentiert, gibt es einen Fall gemacht werden, um beide Plattformen öffnen, wenn Sie handeln als eine Möglichkeit der Überwachung und Überprüfung Ihrer Trades. Bei der Verwendung der T3-Integrationsbrücke, warum sollten Sie JForex öffnen, während Sie mit MetaTrader 4 handeln. In diesem Artikel werden wir uns einige der verschiedenen Eigenschaften beider Plattformen anschauen und Ihnen einige Tipps zur Verfügung stellen, wie Sie JForex verwenden können, um Ihren Monitor zu überwachen Konto bei der Verwendung von MT4. T3 Integration Bridge verbindet MetaTrader 4 mit Ihrem Dukascopy Bank-Handelskonto nahtlos. Allerdings ist es wichtig zu beachten, dass, wenn Sie mit MetaTrader 4 handeln, ist der Handel nicht tatsächlich in MT4 passiert, sondern stattdessen auf der JForex-Plattform. Also auch wenn Sie MT4 für alle Ihre Trading verwenden, schlagen wir vor, dass Sie auch die JForex Plattform offen haben, um Ihre Trades zu überwachen und zu überprüfen. Warum der Hauptgrund dafür ist, dass die MT4- und JForex-Plattformen in grundsätzlich unterschiedlicher Weise Trades anzeigen. Unterschiede zwischen MT4 und JForex MetaTrader 4 ist eine auftragsbezogene Plattform und JForex ist eine standortbasierte Plattform. (Um den Unterschied zwischen MT4 und JForex zu erlernen, schau dir das Video-Tutorial von unserem vorherigen Blog-Post an.) Aber das bedeutet, dass, wenn du zwei Trades auf demselben Währungspaar eröffnst, MT4 sie als zwei Trades registrieren wird, während du bei JForex bist Siehe nur eine. Zum Beispiel, wenn Sie die folgenden Trades auf MetaTrader 4 eröffnet haben: KAUFEN 1.0 Los EURUSD 1.2950 KAUFEN 1.0 Los EURUSD 1.2960 Die Trades erscheinen auf JForex als: KAUFEN 2.0 Los EURUSD 1.2955 Darüber hinaus zeigen sie verschiedene Trades, wenn Sie hedge (das heißt, Zwei entgegengesetzte Positionen mit der gleichen Größe zu öffnen). Auf MT4 werden abgesicherte Trades als zwei Aufträge gezeigt, und im Gegenteil, auf JForex ist dort ein beliebiger Handel gezeigt, da die Trades sogar die Position ausmachen. (Sie können mehr von unserem vorherigen Newsletter erfahren, wie Sie zusätzliche Provisionen beim Absichern in MetaTrader 4 vermeiden können.) In einer kommenden Version der T3 Integration Bridge können Sie sich in einer webbasierten Live-Ansicht anmelden, die eine Visualisierung aller Ihrer Trades, Position und Bestellung basiert. Doch jetzt, wenn Sie die T3 Integration Bridge verwenden, empfehlen wir Ihnen, JForex offen zu haben, wenn Sie mit unserer MetaTrader 4 Plattform handeln. MetaTrader 4 wird als Analysewerkzeug für die technische Analyse oder als ldquoforcing bedrdquo für den Betrieb Ihrer EAs verwendet. Mit JForex öffnen wird Ihnen helfen, Ihr Konto effizienter zu überwachen und Ihnen zu helfen, mögliche Fehler wegen des Merkmalsunterschiedes zwischen zwei Systemen zu vermeiden. Shuang Wu ist Mitglied des Fair Trading Technology Marketing-Teams, der auch ein aktives Mitglied der Devisenhandel-Community ist. Januar 2012 Ausgabe

Comments

Popular posts from this blog

Gacforex

Fcs Forex