Submitorder Jforex Wiki


Nachdem er die Anatomie einer leeren JForex-Strategie (Teil 1 und Teil 2) studiert hatte, war es an der Zeit, eine funktionierende zu sezieren. MAPlay ist die Strategie, die in jedem JForex-API-Download als Demonstration enthalten ist. Sie finden den kompletten Quellcode dieser Strategie in srcsinglejartest im JForex API-Zip-Paket. Beachten Sie, dass die erste Schnittstellenmethode, die zu Beginn der Strategie läuft, onStart ist. Die onStart-Methode von MAPlay wird unten dargestellt. Die Variablen-Engine. Indikatoren Und console sind Felder der MAPlay-Klasse. Sie sind globale Variablen innerhalb der Klasse. Welche Zeilen 42 - 44 tun, ist, die IEngine zu speichern. IIndikatoren. Und IConsole-Objekte für spätere Verwendung. Die letzte Zeile von onStart, Zeile 45, dient lediglich zum Ausdrucken einer Nachricht auf Ihrer JForex-Programmkonsole, um dem Benutzer mitzuteilen, dass die Strategie gestartet wurde. Sobald onStart die Verarbeitung beendet hat, wird der Server wahrscheinlich anrufen, wenn ein Market Tick ankommt. Wenn sein nicht während Marktstunden, dann theres kein Häckchen und etwas anderes Ereignis anstelle von onTick passieren könnte. Denken Sie an die Methoden als Ereignisse statt an einen linearen Prozess. Sie programmieren Ihre JForex-Strategie entsprechend dem, was Sie mit jedem der sechs IStrategy-Interface-Ereignisse durchführen möchten. Für diese spezielle Strategie entscheidet der Programmierer, ihre Strategie auf der Tick-Ebene umzusetzen. Als solches wohnt ein großer Teil des Handelsalgorithmus in onTick für MAPlay. Beachten Sie, dass dies eine Entwurfsauswahl ist, können Sie onBar verwenden, wenn Sie Ihre Strategie auf Barlevel verarbeiten möchten (oder Sie können onTick und onBar verwenden). Hier ist der Quellcode für onTick in MAPlay. Auf einen Blick können Sie feststellen, dass die Variablen ma0 und ma1 eine Schlüsselrolle bei der Bestimmung des Setups spielen. Hinweis: Um eine Strategie rückgängig zu machen, kann es leichter sein, rückwärts zu arbeiten, wenn der Auftrag platziert wird, was in diesem Fall durch engine. submitOrder erfolgt. Ma0 und ma1 Ergebnisse aus exponentiellen gleitenden Durchschnitten (EMA). Ma0 ist der aktuelle Wert. Ma1 ist der vorherige Balkenwert. Die Zeilen 56-63 überprüfen mit IF-Tests (Zeilen 56 und 60), ob eine der Variablen ungültige Daten enthält. Wenn die Daten ungültig sind, wird das Kennzeichen berechnet und der Rest des onTick wird mit der return-Anweisung auf Zeile 62 übersprungen. Hinweis: Indikatorwerte können abhängig von der jeweiligen Indikatorimplementierung manchmal ungültig (Null, negativ oder Double. NaN ), Wenn nicht genügend Daten vorhanden sind, um sie zu berechnen oder ein Fehler aufgetreten ist, zum Beispiel. Die EMAs werden in den Zeilen 57 und 59 mit dem IIndicators-Objekt (das in onStart initialisiert wurde) abgerufen. Das JForex Wiki bietet eine Erläuterung seiner Verwendung. Beachten Sie, dass ma1 ein Array ist, das in Zeile 38 mit einer Grße äquivalent zu der Anzahl aller verfügbaren JForex-Instrumente deklariert wurde. Insbesondere wird sie mit einem speziellen Indexwert wie in ma1instrument. ordinal () verwendet. Mit anderen Worten, es ist für die aktuellen Instrumente Steckplatz in der ma1-Array fragen. Das aktuelle Instrument ist dasjenige, das in das Verfahren in Zeile 55 übergeben wird. Wenn der Code heruntergefahren wird, ist ein weiterer interessanter Punkt die Linie 65, die die Verwendung von instrument. getPipValue () zeigt. Die Zeile 67 prüft, ob die aktuelle Gesamtzahl der Positionen Null ist. Wenn dies der Fall ist, bedeutet dies, dass keine offene Position vorliegt, dann geht die Strategie weiter, um das Eingangssignal zu überprüfen, um einen Handel einzugeben (Zeilen 68-76). PositionsTotal () ist ein benutzerdefiniertes Verfahren, das in den Zeilen 84-92 definiert ist. Es benutzt eine FOR-Schleife, um durch alle Befehle zu laufen, die von engine. getOrders (instrument) erhalten werden. Sobald entweder die lange oder kurze Bedingung, die Zeilen 68 und 72 erfüllt sind, sendet die Strategie eine Anweisung in den Zeilen 69 für eine kurze und Zeile 73 für eine lange. Die Einzelheiten der Einreichung von Marktaufträgen ist im JForex Wiki beschrieben. Wenn Sie diese Strategie beenden, wird onStop (Zeilen 48-53) aufgerufen. Für diese Strategie durchläuft der Programmierer alle Aufträge erneut mit engine. getOrders () und schließt jede Position mit einem Befehl order. close () in Zeile 50. Das ist es für diese triviale Strategie. Wenn es einen Punkt, dass Sie sich erinnern sollten. Beachten Sie meine Verwendung der vielen Links zu den JForex javadoc und JForex Wiki in diesem Beitrag. Sie sind wahrscheinlich, viele Ihrer Antworten von diesen zwei Quellen zu finden. Wenn nicht, theres immer das JForex Support Board. Nun, da youve hatte eine Vorstellung davon, wie MAPlay. java funktioniert, seine Zeit, es zu testen. In der nächsten Post im Januar werden wir den JForex Historical Tester besprechen und was zu sehen bei der Ausführung einer Strategie live. Method Detail submitOrder Submits neue Bestellung. Der zurückgegebene Auftrag befindet sich im Status IOrder. State. CREATED und wird nach der Serverbestätigung auf den Status IOrder. State. OPENED aktualisiert. Parameter: label - benutzerdefinierte Bezeichner für die Bestellung. Label muss für das gegebene Benutzerkonto unter den aktuellen Aufträgen eindeutig sein. Erlaubte Zeichen: Buchstaben, Zahlen und. Label muss höchstens 256 Zeichen haben. Instrument - Instrument OrderCommand - Art der eingereichten Auftragsmenge - Betrag in Millionen für den Bestellpreis - Vorzugspreis für Bestellung. Wenn null, dann wird der letzte Marktpreis, der auf dem JForex sichtbar ist, verwendet. Der Preis sollte durch 0,1 Pips teilbar sein oder die Bestellung wird abgelehnt. Im Falle von Marktaufträgen wird ein falscher Preis (schlechter als der aktuelle Markt) auf den aktuellen Preis und den Schlupfschlupf - Schlupf geändert. Der Wert des Schlupfmittels folgt: Wenn negativ dann der Vorgabewert von 5 Pips verwendet wird, wenn Double. isNaN (Schlupf) wahr dann kein Schlupf verwendet wird sonst, Schlupf ist in Pips gesetzt, sollten Sie 1, nicht 0.0001 stopLossPrice - Preis der Stoppen sie den verlust Der Preis sollte durch 0,1 Pips teilbar sein, oder der Auftrag wird abgelehnt. TakeProfitPrice - Preis des Gewinns. Der Preis sollte durch 0,1 Pips teilbar sein oder die Bestellung wird abgelehnt goodTillTime - wie lange Bestellung sollte leben, wenn nicht ausgeführt. Nur wenn 0, dann orderCommand sollte NICHT weder IEngine. OrderCommand. BUY noch IEngine. OrderCommand. SELL Markt bestellen. Kommentar - Kommentar, der in der Reihenfolge gespeichert wird. Rücksendungen: Neue Auftragsinstanz in IOrder. State. CREATED Zustand Throws: JFException - wenn Label nicht gültig oder bereits vorhanden ist, wenn goodTillTime 0 und orderCommand nicht BIDOFFER ist, wenn der Betrag kleiner als Minimum ist , Wenn einige der erforderlichen Parameter null submitOrder sind. Der zurückgegebene Auftrag befindet sich im Status IOrder. State. CREATED und wird auf IOrder. State. OPENED Status nach Server-Bestätigung aktualisiert. Parameter: label - benutzerdefinierte Bezeichner für die Bestellung. Label muss für das gegebene Benutzerkonto unter den aktuellen Aufträgen eindeutig sein. Erlaubte Zeichen: Buchstaben, Zahlen und. Label muss höchstens 256 Zeichen haben. Instrument - Instrument OrderCommand - Art der eingereichten Auftragsmenge - Betrag in Millionen für den Bestellpreis - Vorzugspreis für Bestellung. Wenn null, dann wird der letzte Marktpreis, der auf dem JForex sichtbar ist, verwendet. Der Preis sollte durch 0,1 Pips teilbar sein oder die Bestellung wird abgelehnt. Im Falle von Marktaufträgen wird ein falscher Preis (schlechter als der aktuelle Markt) auf den aktuellen Preis und den Schlupfschlupf - Schlupf geändert. Der Wert des Schlupfmittels folgt: Wenn negativ dann der Vorgabewert von 5 Pips verwendet wird, wenn Double. isNaN (Schlupf) wahr dann kein Schlupf verwendet wird sonst, Schlupf ist in Pips gesetzt, sollten Sie 1, nicht 0.0001 stopLossPrice - Preis der Stoppen sie den verlust Der Preis sollte durch 0,1 Pips teilbar sein, oder der Auftrag wird abgelehnt. TakeProfitPrice - Preis des Gewinns. Der Preis sollte durch 0,1 Pips teilbar sein oder die Bestellung wird abgelehnt goodTillTime - wie lange Bestellung sollte leben, wenn nicht ausgeführt. Nur wenn 0, dann orderCommand sollte NICHT weder IEngine. OrderCommand. BUY noch IEngine. OrderCommand. SELL Markt bestellen. Rückgabewert: neue Auftragsinstanz in IOrder. State. CREATED Zustand Throws: JFException - wenn Label nicht gültig oder bereits vorhanden ist, wenn goodTillTime 0 und orderCommand nicht BIDOFFER ist, wenn der Betrag kleiner als Minimum erlaubt ist, wenn einige der erforderlichen Parameter null sind SubmitOrder übermittelt neue Bestellung. Der zurückgegebene Auftrag befindet sich im Status IOrder. State. CREATED und wird auf IOrder. State. OPENED Status nach Server-Bestätigung aktualisiert. Parameter: label - benutzerdefinierte Bezeichner für die Bestellung. Label muss für das gegebene Benutzerkonto unter den aktuellen Aufträgen eindeutig sein. Erlaubte Zeichen: Buchstaben, Zahlen und. Label muss höchstens 256 Zeichen haben. Instrument - Instrument OrderCommand - Art der eingereichten Auftragsmenge - Betrag in Millionen für den Bestellpreis - Vorzugspreis für Bestellung. Wenn null, dann wird der letzte Marktpreis, der auf dem JForex sichtbar ist, verwendet. Der Preis sollte durch 0,1 Pips teilbar sein oder die Bestellung wird abgelehnt. Im Falle von Marktaufträgen wird ein falscher Preis (schlechter als der aktuelle Markt) auf den aktuellen Preis und den Schlupfschlupf - Schlupf geändert. Der Wert des Schlupfmittels folgt: Wenn negativ dann der Vorgabewert von 5 Pips verwendet wird, wenn Double. isNaN (Schlupf) wahr dann kein Schlupf verwendet wird sonst, Schlupf ist in Pips gesetzt, sollten Sie 1, nicht 0.0001 stopLossPrice - Preis der Stoppen sie den verlust Der Preis sollte durch 0,1 Pips teilbar sein, oder der Auftrag wird abgelehnt. TakeProfitPrice - Preis des Gewinns. Der Preis sollte durch 0,1 Pips teilbar sein, oder der Auftrag wird abgelehnt Rückgaben: neue Auftragsinstanz in IOrder. State. CREATED Zustand Throws: JFException - wenn Label nicht gültig oder bereits vorhanden ist, wenn der Betrag kleiner als Minimum erlaubt ist, wenn einige der erforderlichen Parameter ist null submitOrder Übermittelt neue Bestellung. Der zurückgegebene Auftrag befindet sich im Status IOrder. State. CREATED und wird auf IOrder. State. OPENED Status nach Server-Bestätigung aktualisiert. Parameter: label - benutzerdefinierte Bezeichner für die Bestellung. Label muss für das gegebene Benutzerkonto unter den aktuellen Aufträgen eindeutig sein. Erlaubte Zeichen: Buchstaben, Zahlen und. Label muss höchstens 256 Zeichen haben. Instrument - Instrument OrderCommand - Art der eingereichten Auftragsmenge - Betrag in Millionen für den Bestellpreis - Vorzugspreis für Bestellung. Wenn null, dann wird der letzte Marktpreis, der auf dem JForex sichtbar ist, verwendet. Der Preis sollte durch 0,1 Pips teilbar sein oder die Bestellung wird abgelehnt. Im Falle von Marktaufträgen wird ein falscher Preis (schlechter als der aktuelle Markt) auf den aktuellen Preis und den Schlupfschlupf - Schlupf geändert. Der Wert des Schlupfmittels bedeutet: Wenn negativ dann der Vorgabewert von 5 Pips verwendet wird, wenn Double. isNaN (Schlupf) wahr dann kein Schlupf sonst verwendet wird, wird Schlupf in Pips gesetzt, du solltest 1, nicht 0.0001 zurückgeben: neue Auftragsinstanz In IOrder. State. CREATED state Throws: JFException - wenn Label nicht gültig oder bereits vorhanden ist, wenn Betrag kleiner als Minimum erlaubt ist, wenn einige der erforderlichen Parameter null submitOrder ist, gibt neue Bestellung ab. Der zurückgegebene Auftrag befindet sich im Status IOrder. State. CREATED und wird nach der Serverbestätigung auf den Status IOrder. State. OPENED aktualisiert. Hinweis: Standardwert von 5 Pips Schlupf wird verwendet. Um einen benutzerdefinierten Schlupf anzugeben oder den Schlupf zu deaktivieren, verwenden Sie bitte erweiterte submitOrder (.) Methoden. Parameter: label - benutzerdefinierte Bezeichner für die Bestellung. Label muss für das gegebene Benutzerkonto unter den aktuellen Aufträgen eindeutig sein. Erlaubte Zeichen: Buchstaben, Zahlen und. Label muss höchstens 256 Zeichen haben. Instrument - Instrument OrderCommand - Art der eingereichten Auftragsmenge - Betrag in Millionen für den Bestellpreis - Vorzugspreis für Bestellung. Wenn null, dann wird der letzte Marktpreis, der auf dem JForex sichtbar ist, verwendet. Der Preis sollte durch 0,1 Pips teilbar sein oder die Bestellung wird abgelehnt. Im Falle von Marktaufträgen wird ein falscher Preis (schlechter als der aktuelle Markt) auf den aktuellen Preis und den Schlupf geändert. Rücksendungen: neue Auftragsinstanz in IOrder. State. CREATED State Throws: JFException - wenn Label nicht gültig oder bereits vorhanden ist, wenn Betrag ist Weniger als minimal erlaubt, wenn einige der erforderlichen Parameter null sind Siehe auch: submitOrder (String, Instrument, OrderCommand, double, double, double). SubmitOrder (String, Instrument, OrderCommand, double, double, double, double, double). SubmitOrder (String, Instrument, OrderCommand, Doppel-, Doppel-, Doppel-, Doppel-, Doppel-, Lang-). SubmitOrder (String, Instrument, OrderCommand, double, double, double, double, double, long, String) submitOrder Liefert neue Bestellung. Der zurückgegebene Auftrag befindet sich im Status IOrder. State. CREATED und wird nach der Serverbestätigung auf den Status IOrder. State. OPENED aktualisiert. Hinweis: Standardwert von 5 Pips Schlupf wird verwendet. Um einen benutzerdefinierten Schlupf anzugeben oder den Schlupf zu deaktivieren, verwenden Sie bitte erweiterte submitOrder (.) Methoden. Parameter: label - benutzerdefinierte Bezeichner für die Bestellung. Label muss für das gegebene Benutzerkonto unter den aktuellen Aufträgen eindeutig sein. Erlaubte Zeichen: Buchstaben, Zahlen und. Label muss höchstens 256 Zeichen haben. Instrument - Instrument OrderCommand - Art der eingereichten Bestellung Nur IEngine. OrderCommand. BUY und IEngine. OrderCommand. SELL erlaubt in dieser Methode Betrag - Betrag in Millionen für die Bestellung Rücksendungen: neue Auftrag Instanz in IOrder. State. CREATED Zustand Throws: JFException - wenn Label nicht gültig oder bereits vorhanden ist, wenn Betrag ist kleiner als das Minimum erlaubt, wenn einige der erforderlichen Parameter null sind oder wenn orderCommand nicht BUY oder SELL ist Siehe auch: submitOrder (String, Instrument, OrderCommand, double, double, double). SubmitOrder (String, Instrument, OrderCommand, double, double, double, double, double). SubmitOrder (String, Instrument, OrderCommand, Doppel-, Doppel-, Doppel-, Doppel-, Doppel-, Lang-). SubmitOrder (String, Instrument, OrderCommand, Doppel-, Doppel-, Doppel-, Doppel-, Doppel-, Lang-, String) Liefert Auftrag nach Etikett oder null, wenn kein Auftrag gefunden wurde getOrderById Parameter: orderId - orders id Rückgabe: order or null.

Comments