Tuesday 7 February 2017

Jforex Api Ibara

JForex API JForex API offre la possibilité de développer des applications logicielles personnalisées en utilisant le langage de programmation Java. La bibliothèque client API peut être liée aux systèmes clients. Il communique directement avec les serveurs commerciaux de Dukascopy Bank via des sessions Internet sécurisées et authentifiées. Il n'est pas nécessaire d'exécuter JForex plate forme en même temps, mais la plate forme peut être utilisé pour surveiller en temps réel toutes les actions prises par un système de clients. Pour commencer à travailler avec le kit de développement logiciel JForex (JForex SDK), téléchargez le et importez le dans un environnement de développement intégré Java (IDE) de votre choix: Le SDK JForex contient des exemples de stratégie en cours avec stratégie de back Tests en mode visuel L'aperçu de JForex SDK décrit comment modifier et améliorer ces cas d'utilisation. Pour le développement de la stratégie, commencez par l'aperçu de l'API Stratégie. Les dernières dépendances de JForex SDK peuvent toujours être trouvées dans le référentiel public de Dukascopy Maven. Ce qui signifie que l'on peut configurer leur projet pour toujours utiliser la dernière version de l'API JForex. Restez à jour avec nos derniers développements d'api de Jforex et abonnez vous aux courriers électroniques de note de version Jforex API automatiques. Aussi, n'oubliez pas de consulter notre forum d'assistance API où toutes les versions de l'API Jforex sont publiées et discutées. Ayant étudié l'anatomie d'une stratégie vide de JForex (Partie 1 et Partie 2), il est temps de disséquer un travail. MAPlay est la stratégie qui est incluse avec chaque téléchargement d'API JForex comme une démonstration. Vous pouvez trouver le code source complet de cette stratégie dans srcsinglejartest dans le package JForex API zipped. Rappelons que la première méthode Interface qui s'exécute au début de la stratégie est onStart. La méthode onStart de MAPlay est reproduit ci dessous. Le moteur des variables. Indicateurs. Et console sont des champs de la classe MAPlay. Ce sont des variables globales dans la classe. Quelles lignes 42 44 faire est d'enregistrer l'IEngine. IIndicateurs. Et les objets IConsole pour une utilisation ultérieure. La dernière ligne de onStart, ligne 45, est simplement d'imprimer un message sur votre console de programme JForex pour avertir l'utilisateur que la stratégie a démarré. Une fois onStart est terminé de traitement, le serveur est susceptible d'appeler onTick si un marché tick arrive. Si ce n'est pas pendant les heures de marché, puis il n'y a pas de tique et un autre événement pourrait se produire au lieu de onTick. Pensez aux méthodes comme des événements plutôt qu'à un processus linéaire. Vous programmez votre stratégie JForex en fonction de ce que vous voulez faire avec chacun des six événements IStrategy Interface. Pour cette stratégie particulière, le programmeur décide de mettre en œuvre sa stratégie au niveau de la tique. En tant que tel, une grande partie de l'algorithme de négociation réside dans onTick pour MAPlay. Notez que c'est un choix de conception, vous pouvez utiliser onBar si vous voulez que votre stratégie de traiter au niveau de la barre (ou vous pouvez utiliser à la fois onTick et onBar). Voici le code source pour onTick dans MAPlay. D'un coup d'œil, vous remarquerez peut être que les variables ma0 et ma1 jouent un rôle clé dans la détermination de la configuration. Astuce: pour effectuer une ingénierie inverse d'une stratégie, il peut être plus facile de travailler en arrière à partir du moment où l'ordre est placé, ce qui est fait par engine. submitOrder dans ce cas. Ma0 et ma1 tiennent compte des moyennes mobiles exponentielles (EMA). Ma0 est la valeur courante. Ma1 est la valeur des barres précédentes. Les lignes 56 à 63 vérifient en utilisant les tests IF (lignes 56 et 60) pour voir si l'une des variables contient des données non valides. Si les données sont invalides, l'indicateur est calculé et le reste de l'onTick est ignoré avec l'instruction de retour à la ligne 62. Remarque: Les valeurs d'indicateur peuvent parfois être invalides (zéro, négatif ou Double. NaN. ) S'il n'y a pas suffisamment de données pour le calculer ou si une erreur s'est produite, par exemple. Les EMA sont extraites dans les lignes 57 et 59 en utilisant l'objet IIndicators (initialisé dans onStart). Le Wiki JForex fournit une explication de son utilisation. Notez que ma1 est un tableau, qui a été déclaré à la ligne 38 avec une taille équivalente au nombre de tous les instruments JForex disponibles. En particulier, il est utilisé avec une valeur d'index spéciale comme dans ma1instrument. ordinal (). En d'autres termes, il demande l'intervalle courant des instruments dans le tableau ma1. L'instrument actuel est celui qui est passé dans la méthode de la ligne 55. En déplaçant vers le bas le code, un autre point d'intérêt est la ligne 65, montrant l'utilisation de instrument. getPipValue (). La ligne 67 vérifie si le nombre total actuel de positions est égal à zéro. Si c'est le cas, c'est à dire sans position ouverte, la stratégie procède à la vérification du signal d'entrée pour entrer dans un métier (lignes 68 76). PositionsTotal () est une méthode personnalisée définie dans les lignes 84 92. Il utilise une boucle FOR pour parcourir tous les ordres obtenus à partir de engine. getOrders (instrument) Une fois que l'une des conditions longue ou courte, lignes 68 et 72, respectivement, est remplie, la stratégie soumet un ordre dans les lignes 69 pour un court et Ligne 73 pendant une longue durée. Les détails de la soumission des commandes sur le marché sont décrits dans le JForex Wiki. Lorsque vous arrêtez cette stratégie, onStop (lignes 48 53) est appelé. Pour cette stratégie, le programmeur fait une boucle à travers tous les ordres à l'aide de engine. getOrders () et ferme chaque position avec une commande order. close () à la ligne 50. C'est pour cette stratégie triviale. S'il ya un point que vous devriez vous rappeler. Notez mon utilisation des nombreux liens vers le javadoc JForex et JForex Wiki tout au long de ce post. Vous êtes susceptible de trouver beaucoup de vos réponses de ces deux sources. Sinon, il ya toujours le JForex Support Board. Maintenant que vous avez eu une idée de la façon dont MAPlay. java fonctionne, il est temps de le tester. Dans le prochain message en janvier, nous discuterons du JForex Historical Tester et de ce qu'il faut surveiller lors de l'exécution d'une stratégie en direct. Nous avons examiné quatre des six méthodes dans l'interface IStrategy dans un post précédent. Les deux dernières méthodes, onTick et onBar, est où votre stratégie se connecter avec les données du marché. L'une ou l'autre de ces méthodes est l'endroit où vous mettez votre algorithme de négociation. Votre stratégie serait alors capable de traiter les données du marché comme ils arrivent un tickbar à la fois. Rappelez vous que IStrategy Interface est le squelette de votre stratégie. Et cet objet IContext est le cœur de votre stratégie. OnTickonBar est le chef de votre stratégie, qui contient votre algorithme de trading, qui est le cerveau. Voici la définition de la méthode onTick. Important: onTick est appelé pour chaque instrument auquel votre plateforme JForex est abonnée (la liste des instruments dans votre boîte de travail). Permettez moi de le dire encore une fois, onTick est appelé pour chaque instrument auquel votre plateforme JForex est abonnée. La pratique standard est de filtrer les tiques pour les instruments que vous ne voulez pas avec un simple retour IF déclaration. If (instrument myInstrument) return Les données tick réelles sont transmises à votre stratégie à l'aide de l'objet ITick du paramètre onTick. Jetez un oeil à l'entrée ITick javadoc pour voir ce qu'il offre. OnBar fonctionne de la même manière que onTick. Dans lequel onBar est appelé pour chaque instrument et période connus de JForex. De même, vous devez filtrer tous les instruments indésirables et les périodes ou bien il y aura des résultats attendus de votre stratégie. Un autre point à noter est que onBar fournit à la fois un IBar askBar et IBar bidBar, représentant les barres de demande et d'enchère. Question: Qu'arrive t il lorsque deux ou plusieurs périodes se chevauchent comme dans les barres de 13, 45 et 15 minutes arrivent en même temps (sans parler des périodes en secondes aussi). Réponse: Selon Dukascopy Support dans le forum, ils viennent dans un ordre strict, par exemple (1min 1min 1min 1min 1min 5min 1min 1min 1min 1min 1min 5min.) Ils viennent en cycles, où les périodes plus petites arrive en premier. Forum de support JForex Au fur et à mesure que vous programmez votre stratégie avec JForex, vous aurez sans doute des questions à vous poser. Le meilleur endroit pour poser est au forum de support officiel de JForex. C'est la dernière des trois ressources essentielles de JForex auxquelles j'ai fait allusion plus tôt. Même si vous n'avez pas de question spécifique, il ya des exemples de codes, la discussion de codage, et des centaines de QampA existants d'autres développeurs JForex affiché dans le forum. La discussion à ce jour a été de très haut niveau. Pour vous montrer ce que vous pouvez faire dans une IStrategy, nous allons disséquer une stratégie de travail dans le prochain post. Et quoi d'autre mieux à examiner que la stratégie JForex la plus populaire de tous MAPlay. java. Suite de la partie 1 de cette série: Premiers pas à apprendre la programmation JForex. Maintenant étaient prêts à discuter de la chose réelle. Vous construisez des stratégies JForex en utilisant l'interface IStrategy (Qu'est ce qu'une interface). Fondamentalement, une interface est un squelette de code avec un ensemble de méthodes vides prédéfinies que vous aurez besoin de mettre en œuvre vous même. Les six méthodes standard de l'interface IStrategy sont: Ci dessous est une application IStrategy Interface vide, également connu sous le nom de stratégie JForex. Ce code compile bien dans JForex et vous pouvez même l'exécuter. Mais il ne fait rien du tout parce qu'il n'y a pas de code à exécuter dans chacune des méthodes. Chacune des six méthodes sera simplement appelé et quitter immédiatement. Chacune de la méthode est déclenchée par un événement spécifique. Vous pouvez probablement deviner ce qu'ils sont de leur nom. OnStart (ligne 5) C'est la première méthode qui est appelée lorsque vous exécutez votre stratégie. Il sera lancé une fois et une seule fois au début de votre stratégie. Normalement, vous faites votre initialisation ici. La chose à noter pour onStart est à la ligne 5 du code. La signature de méthode de onStart est L'objet dans le paramètre et donné à vous dans cette méthode est un objet IContext. Si IStrategy est le squelette, alors IContext est au cœur de la stratégie. S'il vous plaît jeter un oeil à ce lien javadoc à IContext pour voir ce que fait cet objet. Javadoc. Il est maintenant temps de présenter la deuxième des trois ressources essentielles d'un programmeur JForex. Le Javadoc de JForex est la documentation d'API la plus récente expliquant chaque objet et toutes les méthodes de l'API JForex. Pensez y comme un manuel de référence. Notez que bien que sa compréhension, la plupart de l'explication est très rares et peut être incomplète. IContext est un objet JForex de base pour accéder à de nombreux composants importants du système JForex, tels que le moteur de commande, les tableaux, la console et les indicateurs. Vous avez l'idée. Il est important que vous souhaitiez généralement conserver une copie locale car c'est la seule fois (in onStart) que cet objet vous sera transmis dans IStrategy. OnStop (ligne 26) Comme son nom l'indique, cette méthode est appelée une fois que vous envoyez une commande d'arrêt à votre stratégie. Vous effectuez votre conclusion de programme telle que l'enregistrement et le rinçage de données ici. Pas beaucoup hors de l'ordinaire avec celui ci. OnMessage (ligne 18) Alors que nous savons quand onStart et onStop seront appelés, onMessage est une méthode asynchrone en ce que vous ne savez pas exactement quand il sera exécuté. Cette méthode est appelée lorsque le serveur Dukascopy envoie à votre stratégie un message. Par exemple, le serveur appelle surMessage pour vous informer que votre commande a été remplie. Vous recevez et traiter le message serveur en accédant à l'objet IMessage qui vous est transmis. Important: Il n'y a aucune garantie que vous recevrez tous les messages envoyés à votre stratégie à partir du serveur. Peut être votre processus de stratégie est bouché. Ou peut être votre connexion internet avait un hoquet. Si votre stratégie onMessage n'est pas appelé par le serveur pour quelque raison que ce soit, le serveur ne pourrait pas se soucier moins et ne sera pas vérifier ni essayer à nouveau. Donc, ne faites rien de critique, comme la gestion de vos commandes dans onMessage onAccount (ligne 22) Cette méthode est appelée chaque fois que la mise à jour des informations de votre compte est reçue. La méthode fournit l'accès à l'objet IAccount. Que vous utilisez pour obtenir vos informations de compte. Dites si vous avez une position ouverte, les informations de votre compte changent à chaque tick parce que votre capital est le cashlore non réalisé. Dans ce cas, onAccount est appelé toutes les 5 secondes par le serveur au plus pour éviter d'inonder votre stratégie. Plus Important: L'objet IAccount n'est pas connecté en direct à votre compte sur le serveur. Il s'agit simplement d'un instantané de votre compte. Par exemple, si vous conservez une copie locale d'un objet IAccount. Faire des échanges pour modifier votre solde. Ensuite, demandez la même IAccount pour les informations de solde du compte, vous ne verrez pas un changement. À ce titre, mettez toujours à jour votre copie locale d'IAccount dans la méthode onAccount afin de conserver vos informations de compte à jour pour l'utilisation de vos stratégies. Les méthodes onStart, onStop, onMessage et onAccount sont des méthodes administratives pour votre stratégie. Les deux dernières méthodes qui bien discuter, onTick et onBar, est où la magie se passe dans une stratégie. Je sauve le meilleur pour le dernier dans le prochain poteau. Le plus gros problème que j'ai eu quand apprendre à programmer mes propres stratégies de trading dans JForex est de trouver où commencer à apprendre. Il y avait peu de documentation JForex disponible à l'époque et j'ai dû m'apprendre moi même à travers des essais minutieux avec l'aide du support technique de Dukascopys. Les choses ont certainement changé pour le mieux car une communauté JForex commence à germer et la documentation pour elle est au moins suffisante pour obtenir quelqu'un a commencé. Ce post est le premier d'une série de guide rapide pour apprendre à apprendre la programmation JForex en mettant toutes ces ressources dans un tutoriel. JForex est un outil Java JForex n'est pas un langage de programmation. Il s'agit d'une interface de programmation d'application (API) à utiliser avec le langage de programmation Java standard. En tant que tel, la première étape pour apprendre à programmer dans JForex est d'apprendre Java. Heureusement, Java est l'un des langages de programmation les plus populaires. Donc therere beaucoup de ressources sur et en dehors du web pour apprendre la programmation Java. Quelques exemples de didacticiels en ligne gratuits sont: Les Didacticiels Java Il s'agit d'un tutoriel officiel du développeur de Java eux mêmes. Hautement recommandé. Débutants Java Tutorial Plus orienté pour les débutants absolu à la programmation. Si vous préférez un livre, je recommande Head First Java, 2nd Edition. J'ai brossé sur mon Java de ce livre. Ne pas s'attarder sur Java trop bien que vous avez seulement besoin de connaître les bases pour démarrer avec JForex. Il suffit de lire quelques chapitres pour comprendre la syntaxe Java, puis passer à autre chose. Vous pouvez toujours y revenir plus tard. Plonger dans JForex Le Wiki JForex est l'une des trois ressources essentielles pour les programmeurs JForex. Je vais me référer à certaines pages spécifiques du Wiki dans la plupart de cette série de messages. Si vous l'avez déjà fait, inscrivez vous pour un compte DEMO à Dukascopy. Ensuite, lancez la plate forme JForex et suivez les instructions sur la page wiki Utiliser dans JForex pour assembler votre première stratégie JForex Jusqu'à présent, si bon En ce moment, j'espère que vous pouvez comprendre le code source Java de base et savoir comment démarrer, compiler et exécuter un Stratégie JForex. Dans le prochain article de cette série JForex d'apprentissage, nous étudierons l'anatomie d'une stratégie de JForex.


No comments:

Post a Comment