Thursday 19 January 2017

Geronimo Trading System

DayTrader est une application de référence construite autour du paradigme d'un système de négociation boursière en ligne. Initialement développé par IBM en tant qu'Échantillon de référence de performance commerciale, DayTrader a été offert à la communauté Apache Geronimo en 2005. Cette application permet aux utilisateurs de se connecter, de consulter leur portefeuille, de consulter des cours boursiers et d'acheter ou de vendre des actions. Grâce à un gestionnaire de charge sur le Web tel que Mercury LoadRunner, Rational Performance Tester ou Apache JMeter, la charge de travail réelle fournie par DayTrader peut être utilisée pour mesurer et comparer les performances de Java Platform, Enterprise Edition (Java EE) Des serveurs d'application offerts par une variété de fournisseurs. En plus de la charge de travail complète, l'application contient également un ensemble de primitives utilisées pour les tests fonctionnels et de performance de divers composants Java EE et des modèles de conception communs. Ce document est organisé dans les sections suivantes: Architecture d'application DayTrader est basé sur un ensemble de technologies Java EE qui inclut Java Servlets et JavaServer Pages (JSP) pour la couche de présentation et JDBC, Java Message Service (JMS) , Enterprise JavaBeans (EJBs) et Beans pilotés par message (MDB) pour la logique métier back-end et la couche de persistance. Le diagramme suivant fournit un aperçu de haut niveau de l'architecture complète de l'application de charge de travail. Couche de présentation La couche de présentation se compose de plusieurs servlets Java et JSP qui adhèrent de façon lâche à un modèle de conception Model-View-Controller (MVC). TradeAppServlet est la servlet du contrôleur principal responsable de recevoir les requêtes des clients entrants, de déclencher la logique commerciale souhaitée et de transmettre les réponses à la page JSP appropriée. Des servlets supplémentaires et des JSP sont utilisés pour configurer les options d'exécution de DayTrader et gérer la base de données de support. Business Logic et Persistence Layer La logique métier et la couche de persistance forment la majeure partie de l'application DayTrader. L'interface TradeServices définit l'ensemble d'opérations métier disponibles dans l'application, telles que register, login, getHoldings, buy, completeOrder, logout, etc. DayTrader fournit trois implémentations différentes de ces services, correspondant à trois modèles de conception d'applications JavaEE couramment utilisés. Ces implémentations sont discutées ci-dessous. Les utilisateurs peuvent basculer entre ces implémentations sur la page de configuration en modifiant le mode d'exécution. Opérations Inerface (UI) de l'utilisateur Le client Web DayTrader JSP Servlet fournit un ensemble de base d'opérations que l'on peut s'attendre à trouver dans n'importe quelle application de gestion de stock trading et de portefeuille. Ces opérations utilisateur de haut niveau déclenchent des opérations commerciales spécifiques (définies ci-dessus) dans les couches de logique métier et de persistance pour effectuer la tâche souhaitée. Le tableau suivant résume les tâches métier exécutées par chaque action utilisateur. Obtenir la source Daytrader est disponible dans le référentiel Subversion Apaches, exécutez la commande suivante pour extraire les fichiers source dans le répertoire daytrader-2.0. Ltdaytraderhomegt pourrait être n'importe quel répertoire dédié à tenir daytrader-2.0. Ce processus peut prendre plusieurs minutes en fonction de la machine et la vitesse de connectivité réseau. Construire Daytrader Une fois que toutes les sources sont vérifiées la prochaine étape est de construire Daytrader. Daytrader nécessite Maven 2 pour la construction des binaires. À partir du répertoire ltdaytraderhomegt, exécutez la commande suivante. Ce processus prendra quelques minutes. Les binaires seront générés dans le répertoire cible correspondant pour chacun des modules du répertoire modules. Configuration de Daytrader Par défaut, Daytrader nécessite la création d'une base de données à l'aide de la base de données Derby intégrée livrée avec Geronimo. En règle générale, les fichiers de plan de déploiement fournis sont configurés pour créer une telle base de données (DaytraderDatabase) sur Apache Derby pendant le déploiement. Toutefois, les scripts sont fournis dans le répertoire derby de ltdaytraderhomegt bin dbscripts pour créer cette base de données manuellement. A ce stade, cette étape est facultative. Vous pouvez toujours créer la base de données requise après le déploiement de Daytrader et à l'aide du lien (Re) - create DayTrader Database Tables and Indexes à partir de la page Utilitaire de configuration des applications. Indépendamment de la question de savoir si vous utilisez les scripts de ligne de commande ou l'option basée sur le Web, vous aurez besoin des tables créées avant d'accéder à la section Populating sample data. Le but de cette section est de vous montrer comment utiliser les scripts fournis pour créer le DaytraderDatabase requis, si nécessaire, vous pouvez les adapter à votre environnement de configuration spécifique. Des scripts supplémentaires pour différentes bases de données sont également fournis. Démarrez Geronimo en exécutant la commande suivante: ltgeronimohomegt bin geronimo start Le script de création de base de données fourni nécessite le réglage de la variable d'environnement GERONIMOHOME. Sur la même fenêtre, vous lancez Geronimo exécutez la commande suivante: set GERONIMOHOMEltgeronimohomegt Changez le répertoire vers le répertoire contenant les scripts de création de base de données. Cd ltdaytraderhomegt bin dbscripts derby Ouvrir le script createDerbyDB et vérifier modifier la version de Derby pour correspondre à celle utilisée par Geronimo (par exemple, ltgeronimohomegt repository org) derby derby derby 10.2.2.0). Une fois que vous avez vérifié les versions, exécutez le script. CreateDerbyDB Vous devriez voir un scree similaire à celui illustré ci-dessous. Vous pouvez vérifier que la base de données a été créée en dirigeant votre navigateur vers la console d'administration Geronimo et en cliquant sur le Gestionnaire de bases de données. La dernière étape de cette configuration consiste à mettre à jour le plan de déploiement. Modifiez le plan de déploiement daytrader-g-2.0-SNAPSHOT-plan. xml situé dans le répertoire ltdaytraderhomegtplans et remplacez ge-activemq-rar 1.2-beta rar par ge-activemq-rar 1.2 rar. Vous êtes maintenant prêt à déployer l'application. Déploiement de Daytrader Jusqu'à présent, nous avons récupéré le fichier source, construit, configuré, créé une base de données et mis à jour le plan de déploiement. Il est maintenant temps d'installer l'application Daytrader dans Geronimo. Il existe essentiellement deux façons de déployer une application dans Geronimo, soit en utilisant la console d'administration Geronimo ou l'outil de déploiement en ligne de commande. Pour cet exemple, nous utiliserons l'option en ligne de commande. Dans le répertoire bin de ltgeronimohomegt, exécutez la commande suivante: deploy --user system --password manager deploy ltdaytraderhomegtmoduleseartargetdaytrader-ear-2.0-SNAPSHOT. ear ltdaytraderhomegtplansdaytrader-g-2.0-SNAPSHOT-plan. xml Le premier déploiement est le script qui appelle le déployeur , Puis nous passons le nom d'utilisateur et le mot de passe. Le second déploiement est l'option de commande réelle pour le déploiement de l'eAR daytrader-ear-2.0-SNAPSHOT. ear à l'aide du plan de déploiement daytrader-g-2.0-SNAPSHOT-plan. xml spécifiquement. Dans votre propre application, vous pouvez appeler ce plan geronimo-application. xml et le placer dans le répertoire META-INF dans votre fichier EAR et vous n'aurez pas besoin de spécifier expressément le plan de déploiement à partir de la ligne de commande. Vous devriez voir un écran de confirmation de déploiement semblable à celui montré ci-dessous. Daytrader est maintenant prêt à être testé. Remplissage de données d'exemple Avec l'application déployée et démarrée (démarre par défaut lors du déploiement), l'étape suivante avant d'utiliser Daytrader consiste à remplir des données d'exemple dans la base de données créée précédemment. Les étapes suivantes illustrent comment. Cliquez sur l'onglet Configuration. Cliquez sur la base de données (Re) - populate DayTrader pour générer les données d'échantillon, ceci ouvrira une nouvelle fenêtre montrant la progression. La taille initiale de la population est constituée de 200 comptes et 400 cotations boursières. Ces valeurs peuvent être mises à jour via le lien Configurer DayTrader run-time parameters sur l'onglet Configuration. Exécution de Daytrader Daytrader peut être exécuté en nombre de configurations et fournit également une suite de primitives web pour faciliter les tests. Chacune de ces primitives teste de façon singulière les opérations clés dans le modèle de programmation Java d'entreprise. Certains d'entre eux peuvent être configurés pour s'exécuter répétitivement en fonction des paramètres de configuration que nous allons couvrir plus tard. Les sections suivantes décrivent plus en détail cette suite de tests de primitives. Suite de ping Web Container Le tableau suivant décrit l'ensemble de primitives relatives au conteneur Web. Ces primitives qui peuvent être définies pour exécuter plusieurs fois sont mis en évidence. Running Primitives Jusqu'à présent, nous avons vu quelles primitives sont disponibles, lesquelles peuvent être configurées pour exécuter plusieurs itérations et comment configurer les paramètres d'exécution de l'application. Avec ces paramètres, chaque fois que vous frappez PingServlet2EntityEJBLocal ou rafraîchir la page primitive qui sera exécuté 100 fois. Lorsque vous effectuez une analyse de performance, être capable de jouer avec ces paramètres est très précieux. Cela vous permet de suivre les temps d'exécution de ces fonctions très spécifiques. Lorsqu'ils sont utilisés avec un outil de simulation de charge, les différentes configurations vous aideront à ajuster le serveur en fonction des besoins spécifiques de votre environnement. Gone trading. Nous venons de voir comment exécuter des fonctions singulières opérations d'essais via les primitives disponibles. Les mêmes paramètres que vous avez configurés pour exécuter ces primitives affectent également l'interface utilisateur graphique pour la simulation de négociation. Pointez votre navigateur vers localhost: 8080 daytrader Cliquez sur les portefeuilles d'ampli Trading. Acceptez l'utilisateur et le mot de passe par défaut et cliquez sur Connexion. Vous devriez maintenant être en mesure de commencer à négocier Des détails supplémentaires pour la configuration et l'exécution de Daytrader peuvent être trouvés dans la FAQ de l'application disponible en pointant votre navigateur Web vers localhost: 8080 daytrader Retour à la case départ Après avoir effectué certains tests et vouloir exécuter un nouvel ensemble à partir de Vous devrez réinitialiser la configuration de l'exécution et les données de transaction de la base de données. Ces étapes simples sont tout ce dont vous avez besoin pour démarrer un nouvel ensemble de tests sur Daytrader. Cependant, vous pouvez toujours redémarrer le serveur en fonction du type de tests que vous exécutez. Lancement des clients de l'application DayTrader fournit deux clients d'applications J2EE, le Streamer DayTrader et une application de services Web. Le client d'application Streamer utilise un sujet JMS pour s'abonner aux mises à jour des prix de cotation lorsque les actions sont achetées et vendues. Ces mises à jour sont suivies et utilisées pour déterminer si des collisions de base de données se produisent lors de la mise à jour des prix des devis dans la base de données. Le client d'application de services Web fournit simplement un client épais pour accéder aux services DayTrader à l'aide d'une interface de services Web. Client de l'application Streamer Pour que les mises à jour des prix de cotation soient publiées dans la rubrique JMS, l'indicateur Publier les mises à jour de devis sur la page de configuration doit être activé. Pointez votre navigateur vers localhost: 8080 daytrader Cliquez sur Configuration. Cliquez sur Configurer les paramètres d'exécution de DayTrader. Assurez-vous de cocher la case Publier les mises à jour des devis. Pour démarrer le client d'application Streamer, exécutez la commande suivante. Ltgeronimohomegt bin java - jar client. jar geronimo daytrader-streamer-client 2.0-SNAPSHOT voiture Services Web client d'application ltgeronimohomegt bin java - jar client. jar geronimo daytrader-wsapp-client 2.0-SNAPSHOT carAbout Trading Systems Qu'est-ce qu'un système de trading? Est un outil utilisé par les opérateurs qui utilise des critères objectifs d'entrée et de sortie basés sur des paramètres qui ont été déterminés par des tests historiques sur des données quantifiables. Les systèmes sont exécutés sur des ordinateurs ou des serveurs et liés à un échange pour le commerce. Les développeurs enverront des révisions aux systèmes (mises à jour) comme bon leur semble. Les révisions peuvent être envoyées instantanément à Striker au fur et à mesure que les développeurs modifient les ordres stop. Pourquoi devrais-je négocier un système de négociation des marchés à terme et les marchés boursiers à l'aide d'un système commercial fournit la discipline pour surmonter la peur et la cupidité qui, dans de nombreux cas, paralyse un commerçant et d'éviter de prendre des décisions en temps opportun. Chaque commande placée est régie par un ensemble prédéterminé de règles qui ne dévie pas fondé sur autre chose que l'action du marché. Que dois-je considérer Comme toutes sortes d'outils, les systèmes de négociation s'il n'est pas utilisé correctement, peut être dangereux pour les commerçants de la santé économique. L'opérateur doit évaluer la tolérance aux contrats à terme à haut risque, au capital-risque et à la capacité de résister à l'amortissement des actions ainsi qu'au coût en temps et en argent du commerce sur les marchés à terme. Comment puis-je savoir si le système est bon? L'un des éléments clés d'un système commercial est la possibilité d'être back-test pour la performance hypothétique en utilisant des données quantifiables. Reconnaissant que les résultats hypothétiques n'ont pas été testés sur le marché et qu'ils sont généralement fournis par le vendeur du système qui est dans l'entreprise de vente de systèmes de négociation, le commerçant peut obtenir une idée quant aux caractéristiques des systèmes de négociation. Cependant, le seul véritable test d'un système est de voir comment il se comporte dans le commerce réel où le glissement de marché et le coût de négociation font partie du dossier. Par conséquent, il peut y avoir une différence significative entre les résultats hypothétiques et réels et aucune des garanties des futurs résultats commerciaux. Combien d'argent ai-je besoin Le dépôt minimum pour ouvrir un compte de négociation à terme varie selon le courtier. En outre, l'opérateur potentiel ne devrait envisager l'ouverture d'un compte à terme que lorsque le trader dispose d'un capital de risque suffisant, en raison de l'effet de levier des opérations à terme. Comment puis-je commencer La première étape consiste pour le commerçant de parler à l'un des courtiers Strikers non-conflit afin de comprendre le risque ainsi que les avantages des opérations à terme à l'aide de systèmes de négociation. Si le commerçant est à l'aise avec le programme, puis la prochaine étape est d'ouvrir un compte de négociation et sélectionnez le système commercial (s) qui correspondent le mieux aux traders tolérance au risque personnel et les objectifs commerciaux. Si le commerçant n'est pas à l'aise dans l'exploitation du ou des systèmes de négociation sélectionnés, les courtiers professionnels Striker effectueront l'échange automatique du ou des systèmes dans le compte des négociants pour le bénéfice des commerçants. Ni Striker ni aucun de ses employés ne sont autorisés à négocier à terme, de sorte que notre objectif est toujours de fournir au commerçant le meilleur service. Quels sont les risques Chaque système peut être soumis à des risques propres au marché, spécifiques au système ou complexes. En négociant des systèmes multiples sur différents marchés, on peut réduire les risques propres au marché et complexes. En négociant des systèmes avec différentes stratégies d'entrée et de sortie, le trader peut réduire le risque spécifique du système. Cependant, le risque de négociation peut être substantiel et chaque investisseur et / ou trader doit considérer s'il s'agit d'un investissement approprié. Les performances passées, qu'elles soient réelles ou indiquées par des tests simulés de stratégies, ne sont pas nécessairement indicatives de résultats futurs. Plus de questions sur la négociation de systèmes Nous attirons notre attention sur le fait qu'un certain nombre de nos clients et d'autres personnes intéressées peuvent avoir des questions concernant les systèmes de trading chez Striker et les systèmes en général. Bien que nous ayons abordé certains des sujets suivants par le passé, nous estimons que compte tenu de l'intérêt croissant porté à l'approche systématique du commerce des contrats à terme et du commerce en général, il convient seulement de revoir certains de ces thèmes. Est le système de négociation une approche valide à l'avenir de négociation Nous sommes certains qu'il est, et qu'il est raisonnable de dire que la plupart des commerçants professionnels seront le commerce en utilisant un système d'une certaine sorte dans le commerce des marchés à terme. Un système à cet égard peut être une stratégie allant de simples critères d'entrée et de sortie, des règles de gestion de l'argent, de l'utilisation de stop loss pour protéger les positions ou de verrouillage des profits, à l'utilisation plus complexe des indicateurs techniques et des formules mathématiques. Un système offre une approche cohérente et logique à la négociation. Que ce soit simple ou complexe, un système commercial est généralement plus efficace lorsqu'il est mis en œuvre de façon cohérente. Un problème fréquemment rencontré par les commerçants individuels est la difficulté à suivre un système, que ce soit leur propre ou un développeur professionnel. S'en tenir à un système exige de la discipline, et la discipline est souvent difficile à maintenir dans la chaleur de l'action du marché en direct, où les émotions peuvent régner la journée, et un commerçant peut être tenté de deviner son système. J'ai acheté un système qui est actuellement commercialisé chez Striker. Quelle est la relation entre Striker et le développeur système? Un de nos objectifs chez Striker est le rapport impartial de la performance du système. À cette fin, Striker n'a aucun lien financier avec les développeurs de systèmes, et Striker n'a aucun système interne. Notre indépendance financière nous permet d'être objectifs dans les systèmes d'exploitation. La location ou l'achat de systèmes propriétaires relève du client et du développeur. Alors que nous nous efforçons de travailler avec des développeurs de renom de systèmes robustes et légitimes, nous voyons notre rôle comme principalement d'un service, l'exécution et la déclaration précise de l'information. À cette fin, nous n'altérons pas les signaux du système, mais nous nous efforçons fidèlement de les exécuter en temps opportun. Nous rapportons ensuite les performances commerciales réelles chez l'attaquant pour les systèmes de jour et de swing. Nous ne signalons pas de performance pour les systèmes multi-matières, puisque les clients peuvent avoir des paramètres différents ou des instructions, et donc des résultats différents. Aide Le système Im trading isnt faire aussi bien que je pensais qu'il serait. Que puis-je faire Bien qu'il soit toujours préférable de voir gagner des métiers dans un compte, le fait demeure que les marchés à terme, comme les autres marchés, ont tendance à fluctuer. Les marchés à terme peuvent également être plus volatils que les marchés boursiers (stock). La négociation à terme d'une approche systématique offre des avantages spécifiques (tels que l'établissement de règles de gestion des risques et de l'argent), mais ne garantit pas le succès. Néanmoins, simplement parce qu'un système est en difficulté en ce moment ne signifie pas qu'il n'offre pas de retours positifs sur le long terme. Un certain nombre de systèmes négociés chez Striker ont connu des périodes de retrait. Mais ont continué à faire de l'argent pour nos clients. Par exemple, le système de négociation de la journée Compass SP, qui négocie les contrats à terme SP sur 30 000, est retourné plus de 408,14 depuis janvier 2000 à compter du 1er septembre 2008. Cependant, le système, qui peut également échanger l'e-mini SP sur 5000, a effectivement perdu En 2004, mais a continué à retourner des bénéfices en 2005. Dans sa vie commerciale à Striker, il a en moyenne plus de 42 par an, à compter du 1er Septembre 2008. En d'autres termes, la patience et une évaluation précise de la situation financière Sont des facteurs clés dans le commerce des systèmes. Toutefois, le personnel professionnel de Strikers est heureux de travailler avec les clients pour discuter des solutions de rechange si un système semble être sous-performant. Pourquoi les résultats des Strikers sont-ils différents de ceux des développeurs? Striker signale uniquement les performances commerciales réelles, où un certain nombre de développeurs rapportent des performances hypothétiques. La différence est que les rapports hypothétiques ne représentent pas une activité de compte réelle, mais représentent plutôt un instantané généré par ordinateur des signaux de négociation de systèmes. Dans le cas de systèmes négociés chez Striker, ces signaux sont généralement identiques à ceux générés dans notre centre d'opérations, mais où un rapport hypothétique commence et se termine dans l'ordinateur, Striker prend ces signaux quotlivequot, et dans la bouffée de corpulence du marché réel Conditions, où ils doivent concurrencer les autres ordres des commerçants. Les conditions du marché peuvent changer très rapidement, et même avec Strikers exécution supérieure et l'expertise, les prix de remplissage peut varier selon le marché. La différence entre un prix idéal et le remplissage du prix réel est connu sous le nom de quotslippagequot, et est une composante inévitable du commerce à terme. Néanmoins, l'équipe expérimentée de Strikers travaille dur pour obtenir le meilleur prix remplit pour nos clients, et nos résultats reflètent toujours n'importe quel glissement. J'ai regardé des systèmes sur Internet. Il y en a une grande variété. Le Striker peut en recommander un en particulier. Dans la section client de l'attaquant, nous conservons les performances réelles de nombreux systèmes (day et swing) qui ont été négociés ou négociés chez Striker, y compris les commissions. Ces enregistrements représentent des transactions réelles pour les comptes de nos clients. Nous estimons que ces enregistrements peuvent être très utiles pour évaluer et choisir un système. Cependant, nous savons qu'il existe de nombreux programmes disponibles à la vente ou à bail sur Internet et ailleurs qui n'ont pas été négociés chez Striker et nous recommandons que vous fassiez preuve d'une diligence raisonnable dans l'évaluation de ces systèmes et de leurs développeurs. Par exemple, il est important de faire vos devoirs en regardant l'arrière-plan des développeurs. Quels sont leurs antécédents commerciaux et commerciaux? Ont-ils été enregistrés auprès d'un organisme de réglementation tel que le NFA? A-t-ils un bon dossier d'entreprise? Ont-ils des plaintes déposées auprès du Better Business Bureau ou d'autres organismes de protection des consommateurs? Enquêter sur un développeur système. Il ya un certain nombre de questions importantes à poser lors de l'évaluation d'un programme de négociation de programmes donné. Est-ce que les métiers montrés sont réels, ou hypothétiques Si ils sont hypothétiques, quelle méthodologie a été utilisée dans la mise en œuvre du modèle hypothétique Le modèle at-il tenté de refléter avec précision un environnement commercial réel, avec le glissement et les commissions pris en compte Enfin, Lorsque vous regardez les systèmes échangés à Striker, n'hésitez pas à contacter le spécialiste du système Dan Neenan. Je vois que certains des systèmes échangés chez Striker sont en difficulté. Les systèmes échouent-ils complètement Les systèmes que vous voyez chez Striker ne sont pas des quotours, nous ne vendons pas de systèmes. Ce sont des programmes de trading tiers pour nos clients que nous faisons l'exécution. Dans de nombreux cas, ce sont des systèmes que les clients ont achetés sur leurs propres, et ont décidé qu'ils préfèrent avoir Striker exécuter la négociation pour eux. Nous ne montrons que les performances de négociation pour les systèmes de jour et de swing activement négociés à Striker. Si un système montre peu ou pas de promesse du tout sur une période de temps, nos clients sont susceptibles d'arrêter de le négocier, et le dossier de performance pour le système serait terminée. Donc, pour répondre à la deuxième question, les systèmes ne sous-performent pas chroniquement occasionnellement. Le trading à terme est intrinsèquement risqué, et tandis que les systèmes en général sont développés afin de gérer le risque et d'améliorer les chances d'un commerçant d'obtenir un résultat positif, les commerçants doivent néanmoins commercer en utilisant seulement le capital-risque et être averti que les systèmes peuvent échouer. Mon système perd de l'argent. Que dois-je faire Chez Striker, notre priorité est votre confort dans le trading. Bien que nous ne conseillons pas que les clients abandonnent un système simplement parce qu'une série de métiers perdants, nous sommes ici pour prendre votre direction dans le commerce de votre compte. Si vous vous sentez mal à l'aise avec la direction de votre approche commerciale actuelle, nous vous recommandons de cesser de négocier, de respirer profondément et de regarder vos options en termes d'exploration d'une stratégie alternative ou plus conservatrice. Pour plus d'informations sur les marchés à terme et les systèmes de négociation, s'il vous plaît visitez Striker, et cliquez sur le lien intitulé: Ressources éducatives.


No comments:

Post a Comment