Thursday 2 March 2017

Jforex Api Ibara

JForex API JForex API bietet die Möglichkeit, maßgeschneiderte Software-Anwendungen mit Hilfe der Programmiersprache Java zu entwickeln. Die API-Client-Bibliothek kann mit Kundensystemen verknüpft werden. Es kommuniziert direkt mit Dukascopy Bank Handel Server über sichere und authentifizierte Internet-Sitzungen. Es ist nicht notwendig, gleichzeitig die JForex-Plattform auszuführen, aber die Plattform kann in Echtzeit verwendet werden, um alle Aktionen eines Kundensystems zu überwachen. Um mit dem JForex Software Development Kit (JForex SDK) zu arbeiten, laden Sie es in eine IDE (Java Integrated Development Environment) Ihrer Wahl herunter und importieren Sie es: Das JForex SDK enthält Beispiele für: Tests im visuellen Modus Im JForex SDK-Überblick wird beschrieben, wie diese Anwendungsfälle modifiziert und verbessert werden können. Zur Strategieentwicklung starten Sie mit der Strategie-API-Übersicht. Die aktuellen JForex SDK Abhängigkeiten finden Sie immer im öffentlichen Dukascopy Maven Repository. Dass Sie ihr Projekt so konfigurieren können, dass immer die neueste JForex-API-Version verwendet wird. Bleiben Sie auf dem Laufenden mit unseren neuesten Entwicklungen von Jforex api und abonnieren Sie automatische E-Mails von Jforex API-Versionshinweisen. Vergessen Sie auch nicht, unser API-Support-Forum zu überprüfen, in dem alle Jforex-API-Veröffentlichungen veröffentlicht und diskutiert werden. Nachdem wir die Anatomie einer leeren JForex-Strategie (Teil 1 und Teil 2) studiert haben, ist es an der Zeit, eine funktionierende zu sezieren. MAPlay ist die Strategie, die in jedem JForex-API-Download als Demonstration enthalten ist. Den vollständigen Quellcode dieser Strategie finden Sie im 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 der OnStart beendet ist, wird der Server wahrscheinlich auf onTick aufrufen, wenn ein Markttick 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 sowohl onTick als auch 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 stoppen, wird onStop (Zeilen 48-53) aufgerufen. Für diese Strategie durchläuft der Programmierer alle Befehle erneut unter Verwendung von 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 zu finden, viele Ihrer Antworten aus diesen beiden Quellen. 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 die JForex Historical Tester diskutieren und was wir bei der Ausführung einer Strategie live beobachten sollten. Wir sahen vier der sechs Methoden in der IStrategy-Schnittstelle in einem früheren Post. Die letzten beiden Methoden, onTick und onBar, ist, wo Ihre Strategie mit Marktdaten zu verbinden. Entweder eine oder beide dieser Methoden ist, wo Sie Ihre Handels-Algorithmus in. Ihre Strategie wäre dann in der Lage, die Marktdaten zu verarbeiten, wie sie ankommen ein tickbar zu einem Zeitpunkt. Denken Sie daran, dass IStrategy Interface das Skelett Ihrer Strategie ist. Und das IContext-Objekt ist das Herz Ihrer Strategie. OnTickonBar ist der Kopf Ihrer Strategie, die Ihren Handel Algorithmus, die das Gehirn enthält. Hier ist die Methodendefinition von onTick. Wichtig: OnTick wird für jedes Instrument aufgerufen, das Ihre JForex-Plattform abonniert hat (die Instrumentenliste in Ihrem Arbeitsbereich). Lassen Sie mich sagen, dass wieder, onTick ist für jedes Instrument, dass Ihre JForex-Plattform abonniert aufgerufen wird. Die übliche Praxis ist es, Ticks für Instrumente herauszufiltern, die Sie mit einer einfachen IF-return-Anweisung nicht möchten. If (instrument myInstrument) return Tatsächliche Tickdaten werden an Ihre Strategie über das ITick-Objekt vom Parameter onTick methods übergeben. Werfen Sie einen Blick auf die ITick javadoc Eintrag zu sehen, was es bietet. OnBar arbeitet ähnlich wie onTick. InBar wird für jedes subordinierte Instrument und die Periode, die JForex bekannt ist, aufgerufen. Ebenso müssen Sie alle unerwünschten Instrumente und Perioden herausfiltern, sonst werden die Ergebnisse Ihrer Strategie erwartet. Ein weiterer Punkt zu beachten ist, dass onBar sowohl eine IBar askBar und IBar bidBar, die Frage und Bid Bars darstellt. Frage: Was passiert, wenn zwei oder mehr Perioden überlappen, wie in 13:45 1, 5 und 15 Minuten Bars sind alle zur gleichen Zeit (nicht zu erwähnen, die Perioden in Sekunden zu). Antwort: Laut Dukascopy Support im Forum, sie kommen in einer strengen Ordnung, zum Beispiel (1min 1min 1min 1min 1min 5min 1min 1min 1min 1min 1min 5min.) Sie kommen in Zyklen, wo kleinere Zeiträume an erster Stelle kommt. JForex Support Forum Wie Sie Ihre Strategie mit JForex programmieren, werden Sie zweifellos mit eigenen Fragen aufwarten. Der beste Ort, um zu fragen, ist auf dem offiziellen JForex Support Forum. Dies ist die letzte der drei wesentlichen JForex-Ressourcen, auf die ich früher hingewiesen habe. Selbst wenn Sie keine spezielle Frage haben, gibt es Beispielcodes, Codierungsdiskussion und Hunderte von vorhandenem QampA von anderen JForex Entwicklern, die im Forum gepostet werden. Die Diskussion war bisher sehr hoch. Um Ihnen zu zeigen, was Sie tatsächlich in einer IStrategy tun können, sezieren wir eine Arbeitsstrategie im nächsten Post. Und was besser zu prüfen als die beliebtesten JForex-Strategie von ihnen alle - MAPlay. java. Fortsetzung von Teil 1 dieser Serie: Erste Schritte beim Lernen der JForex-Programmierung. Waren jetzt bereit, die reale Sache zu besprechen. Sie erstellen JForex-Strategien mithilfe der IStrategy-Schnittstelle (Was ist eine Schnittstelle). Grundsätzlich ist eine Schnittstelle ein Code-Skelett mit einer Reihe von vordefinierten leeren Methoden, die Sie brauchen, um sich selbst zu implementieren. Die sechs Standardmethoden der IStrategy-Schnittstelle sind: Es folgt eine leere Implementierung der IStrategy-Schnittstelle, die auch als JForex-Strategie bezeichnet wird. Dieser Code wird gut in JForex kompilieren und Sie können es sogar ausführen. Aber es tut überhaupt nichts, weil es keinen Code, um in jeder der Methoden laufen. Jede der sechs Methoden wird nur aufgerufen und sofort beenden. Jede Methode wird durch ein bestimmtes Ereignis ausgelöst. Sie können wahrscheinlich erraten, was sie von ihrem Namen sind. OnStart (Zeile 5) Dies ist die erste Methode, die beim Ausführen der Strategie aufgerufen wird. Es wird einmal und nur einmal zu Beginn Ihrer Strategie ausgeführt. Normalerweise machst du hier die Initialisierung. Die Sache zu beachten für onStart ist in Zeile 5 des Codes. Die Methodensignatur von onStart ist Das Objekt im Parameter, das Ihnen in dieser Methode übergeben wird, ist ein IContext-Objekt. Wenn IStrategy das Skelett ist, dann ist IContext das Herzstück der Strategie. Bitte werfen Sie einen Blick auf diese javadoc Link zu IContext zu sehen, was dieses Objekt tut. Javadoc. Jetzt ist eine gute Zeit, um die zweite der drei wesentlichen Ressourcen eines JForex-Programmierers einzuführen. Die JForex Javadoc ist die einzige aktuellste API-Dokumentation, die jedes Objekt und jede Methode der JForex-API erläutert. Denken Sie daran wie ein Referenzhandbuch. Beachten Sie, dass, obwohl seine umfassende, die meisten der Erklärung ist sehr spärlich und möglicherweise unvollständig. IContext ist ein Kern-JForex-Objekt, das auf viele wichtige Komponenten des JForex-Systems zugreift, wie beispielsweise die Bestellmaschine, die Diagramme, die Konsole und die Indikatoren. Du hast die Idee. Es ist wichtig, dass Sie in der Regel eine lokale Kopie davon behalten möchten, da dies das einzige Mal (in onStart) ist, dass dieses Objekt an Sie in IStrategy übergeben wird. OnStop (Zeile 26) Wie der Name schon sagt, wird diese Methode aufgerufen, sobald Sie einen Stop-Befehl an Ihre Strategie senden. Sie tun Ihre Programmumarbeitung wie Protokollierung und Spülen von Daten hier. Nicht viel außergewöhnlich mit diesem. OnMessage (Zeile 18) Wenn wir wissen, wann onStart und onStop aufgerufen werden, onMessage ist eine asynchrone Methode, die Sie nicht genau wissen, wann es ausgeführt wird. Diese Methode wird aufgerufen, wenn der Dukascopy-Server eine Strategie sendet. Der Server ruft beispielsweise OnMessage auf, damit Sie wissen, dass Ihre Bestellung gefüllt wurde. Sie empfangen und verarbeiten die Servernachricht, indem Sie auf das IMessage-Objekt zugreifen, das an Sie übergeben wird. Wichtig: Es gibt keine Garantie, dass Sie jede Nachricht erhalten, die an Ihre Strategie vom Server gesendet wurde. Vielleicht ist Ihr Strategieprozess verstopft. Oder vielleicht Ihre Internetverbindung hatte einen Schluckauf. Wenn Ihre Strategie onMessage nicht vom Server aufgerufen wird, aus welchem ​​Grund auch immer, der Server könnte nicht weniger und wird nicht überprüft noch versuchen wieder. So tun Sie nichts kritisches wie die Verwaltung Ihrer Aufträge in onMessage onAccount (Zeile 22) Diese Methode wird aufgerufen, wenn Ihre Kontoinformationen Aktualisierung empfangen wird. Die Methode bietet Zugriff auf das IAccount-Objekt. Die Sie verwenden, um Ihre Kontoinformationen zu erhalten. Sagen Sie, wenn Sie eine offene Position haben, ändert sich Ihre Kontoinformationen auf jede Zecke, weil Ihr Eigenkapital ist Bargeld unrealisierten Profitverlust. In diesem Fall wird onAccount alle 5 Sekunden vom Server aufgerufen, um zu vermeiden, dass Ihre Strategie überflutet wird. Wichtiger: Das IAccount-Objekt ist nicht live mit Ihrem Konto im Server verbunden. Es ist lediglich eine Momentaufnahme Ihres Kontos. Wenn Sie beispielsweise eine lokale Kopie eines IAccount-Objekts behalten. Tun Sie etwas Handel, um Ihre Balance zu ändern. Dann fragen Sie die gleiche IAccount für Kontostand Informationen, sehen Sie nicht eine Änderung. Aktualisieren Sie daher immer Ihre lokale Kopie von IAccount innerhalb der onAccount-Methode, um Ihre Kontoinformationen aktuell für Ihre Strategien zu verwenden. Die Fortsetzung der onStart-, onStop-, onMessage - und onAccount-Methoden sind administrative Methoden für Ihre Strategie. Die letzten beiden Methoden, die gut diskutieren, onTick und onBar, ist, wo die Magie in einer Strategie passiert. Ich spare das Beste für den letzten in der nächsten Post. Das größte Problem hatte ich beim Lernen, meine eigenen Trading-Strategien in JForex programmieren zu finden, wo ich anfangen zu lernen. Es gab nur wenige JForex-Dokumentationen zur Verfügung, und ich musste mich durch mühevolle Versuch und Irrtum mit Hilfe von Dukascopys technische Unterstützung lehren. Die Dinge haben sich sicherlich zum Besseren verändert, da eine JForex-Community zu sprießen beginnt und die Dokumentation für sie mindestens ausreicht, um jedermann zu starten. Dieser Beitrag ist der erste einer Reihe von Anfängern, um das Lernen von JForex Programmierung, indem Sie alle diese Ressourcen in einem Tutorial. JForex ist ein Java-Tool JForex ist eigentlich keine Programmiersprache. Es ist eine API (Application Programming Interface) für die Verwendung mit der Standard-Java-Programmiersprache. Als solcher ist der erste Schritt zum Lernen, in JForex zu programmieren, Java zu lernen. Zum Glück ist Java eine der beliebtesten Programmiersprachen. So gibt es viele Ressourcen auf und aus dem Internet, um Java-Programmierung zu lernen. Einige Beispiele für kostenlose Online-Tutorials sind: Die Java-Tutorials - Dies ist ein offizielles Tutorial vom Entwickler von Java selbst. Sehr empfehlenswert. Anfänger Java Tutorial - Mehr für die absoluten Anfänger zu programmieren. Wenn Sie ein Buch bevorzugen, würde ich empfehlen Head First Java, 2. Auflage. Ich bürstete auf meinem Java aus diesem Buch. Dont auf Java zu viel, aber Sie müssen nur wissen, die Grundlagen zu beginnen mit JForex. Lesen Sie einfach ein paar Kapitel, um die Java-Syntax zu verstehen und dann weiterzugehen. Sie können immer darauf zurückgreifen, um sie später. Tauchen in JForex Das JForex Wiki ist eine der drei wesentlichen Ressourcen für JForex-Programmierer. Ich werde auf einige spezifische Seiten des Wiki in vielen dieser Reihe von Beiträgen beziehen. Wenn Sie das noch nicht getan haben, registrieren Sie sich für ein DEMO-Konto bei Dukascopy. Dann starten Sie die JForex-Plattform und folgen Sie den Anweisungen auf der JForex-Wiki-Seite verwenden, um Ihre erste JForex-Strategie zusammenzubauen. So weit so gut Ich hoffe, Sie können den grundlegenden Java-Quellcode verstehen und wissen, wie Sie startopen, kompilieren und ausführen können JForex-Strategie. Im nächsten Beitrag in dieser Lern-JForex-Reihe werden wir die Anatomie einer JForex-Strategie studieren.


No comments:

Post a Comment