Friday, 20 January 2017

Design Algorithmic Trading System

Algorithmic Trading System Architecture Auparavant sur ce blog, j'ai écrit sur l'architecture conceptuelle d'un système de négociation algorithmique intelligent ainsi que les exigences fonctionnelles et non fonctionnelles d'un système de trading algorithmique de production. Depuis, j'ai conçu une architecture de système qui, je crois, pourrait satisfaire ces exigences architecturales. Dans ce post, je vais décrire l'architecture en suivant les directives de la norme ISOIECIEEE 42010 systèmes et la description de l'architecture d'ingénierie logicielle. Selon cette norme, une description d'architecture doit: Contenir plusieurs vues architecturales normalisées (par exemple, UML) et Maintenir la traçabilité entre les décisions de conception et les exigences architecturales Définition de l'architecture logicielle Il n'y a toujours pas de consensus sur ce qu'est une architecture système. Dans le contexte de cet article, il est défini comme l'infrastructure dans laquelle les composants d'application qui satisfont aux exigences fonctionnelles peuvent être spécifiés, déployés et exécutés. Les exigences fonctionnelles sont les fonctions attendues du système et de ses composantes. Les exigences non fonctionnelles sont des mesures permettant de mesurer la qualité du système. Un système qui satisfait pleinement à ses exigences fonctionnelles peut toujours ne pas répondre aux attentes si les exigences non fonctionnelles ne sont pas satisfaites. Pour illustrer ce concept, considérez le scénario suivant: un système de négociation algorithmique que vous venez d'acheter construit fait d'excellentes décisions commerciales, mais il est totalement inopérant avec les systèmes de gestion des risques et de comptabilité des organisations. Ce système répondrait à vos attentes Architecture conceptuelle Une vue conceptuelle décrit les concepts et les mécanismes de haut niveau qui existent dans le système au plus haut niveau de granularité. A ce niveau, le système de négociation algorithmique suit une architecture événementielle (EDA) divisée en quatre couches, et deux aspects architecturaux. Pour chaque couche et aspect, les architectures et les modèles de référence sont utilisés. Les modèles architecturaux sont des structures génériques prouvées pour répondre à des exigences spécifiques. Les aspects architecturaux sont des préoccupations transversales qui couvrent plusieurs composantes. Architecture événementielle - une architecture qui produit, détecte, consomme et réagit aux événements. Les événements comprennent des mouvements de marché en temps réel, des événements ou des tendances complexes et des événements commerciaux, par ex. Soumettre une commande. Ce diagramme illustre l'architecture conceptuelle du système de négociation algorithmique Architectures de référence Pour utiliser une analogie, une architecture de référence est semblable aux plans pour un mur porteur. Cette impression bleue peut être réutilisée pour plusieurs constructions indépendamment du bâtiment en construction car elle répond à un ensemble d'exigences courantes. De même, une architecture de référence définit un modèle contenant des structures et des mécanismes génériques qui peuvent être utilisés pour construire une architecture logicielle concrète satisfaisant des exigences spécifiques. L'architecture du système de négociation algorithmique utilise une architecture basée sur l'espace (SBA) et un contrôleur de vue modèle (MVC) comme références. On utilise également de bonnes pratiques telles que le stockage des données opérationnelles (ODS), le modèle de transformation et de chargement des extraits (ETL) et un entrepôt de données (DW). Modèle contrôleur de vue - un modèle qui sépare la représentation de l'information de l'interaction des utilisateurs avec elle. Architecture basée sur l'espace - spécifie une infrastructure où les unités de traitement lâchement couplées interagissent les unes avec les autres à travers une mémoire associative partagée appelée espace (illustrée ci-dessous). Vue structurelle La vue structurelle d'une architecture montre les composants et les sous-composantes du système de négociation algorithmique. Il montre également comment ces composants sont déployés sur l'infrastructure physique. Les diagrammes UML utilisés dans cette vue incluent des diagrammes de composants et des diagrammes de déploiement. Vous trouverez ci-dessous la galerie des diagrammes de déploiement du système global de négociation algorithmique et des unités de traitement dans l'architecture de référence SBA, ainsi que des diagrammes de composants associés pour chacune des couches. Tactique architecturale Selon l'institut de génie logiciel, une tactique architecturale est un moyen de satisfaire une exigence de qualité en manipulant un aspect d'un modèle d'attribut de qualité par des décisions de conception architecturale. Un exemple simple utilisé dans l'architecture de système de négociation algorithmique est la manipulation d'un magasin de données opérationnelles (ODS) avec un composant d'interrogation continue. Cette composante analyserait en continu les SAO pour identifier et extraire des événements complexes. Les tactiques suivantes sont utilisées dans l'architecture: Le modèle de disrupteur dans les files d'attente d'événement et d'ordre Mémoire partagée pour les files d'attente d'événements et d'ordre Langue de requête continue (CQL) sur le ODS Filtrage des données avec le modèle de filtre sur les données entrantes Algorithmes d'évitement de congestion sur tous Des connexions entrantes et sortantes Gestion active des files d'attente (AQM) et notification d'encombrement explicite Ressources de calcul des marchandises avec capacité de mise à niveau (évolutive) Redondance active pour tous les points d'échec individuels Indexation et structures de persistance optimisées dans les ODS ODS Historiques des transactions sur toutes les bases de données Checksums pour tous les ordres de détection des fautes Annoter les événements avec des horodatages pour ignorer les événements obsolètes Règles de validation des ordres Quantités commerciales maximales Les composants commerciaux automatisés utilisent une base de données en mémoire pour l'analyse Authentification en deux étapes pour les interfaces utilisateur se connectant aux AT Encryption sur les interfaces utilisateur et les connexions aux ATs Modèle de conception Observer pour MVC pour gérer les vues La liste ci - Décisions que j'ai identifiées lors de la conception de l'architecture. Ce n'est pas une liste complète de tactiques. Au fur et à mesure que le système est en cours d'élaboration, des tactiques additionnelles doivent être employées à plusieurs niveaux de granularité pour répondre aux exigences fonctionnelles et non fonctionnelles. Vous trouverez ci-dessous trois diagrammes décrivant le motif de conception du disrupteur, le modèle de conception du filtre et le composant d'interrogation continue. Vue comportementale Cette vue d'une architecture montre comment les composants et les couches doivent interagir les uns avec les autres. Ceci est utile lors de la création de scénarios pour tester des conceptions d'architecture et pour comprendre le système de bout en bout. Cette vue est constituée de diagrammes de séquence et de diagrammes d'activité. Les diagrammes d'activité montrant le processus interne des systèmes de négociation algorithmique et la façon dont les opérateurs sont censés interagir avec le système de négociation algorithmique sont présentés ci-dessous. Technologies et cadres La dernière étape dans la conception d'une architecture logicielle est d'identifier les technologies et cadres qui pourraient être utilisés pour réaliser l'architecture. En règle générale, il est préférable de tirer parti des technologies existantes, à condition qu'elles répondent adéquatement aux exigences tant fonctionnelles que non fonctionnelles. Un cadre est une architecture de référence réalisée, par ex. JBoss est un framework qui réalise l'architecture de référence JEE. Les technologies et les cadres suivants sont intéressants et devraient être pris en compte lors de la mise en œuvre d'un système de négociation algorithmique: CUDA - NVidia a un certain nombre de produits qui soutiennent la modélisation des finances informatiques de haute performance. On peut atteindre jusqu'à 50x améliorations de performance lors de l'exécution de simulations Monte Carlo sur le GPU au lieu du CPU. Apache River - River est un outil-kit utilisé pour développer des systèmes distribués. Il a été utilisé comme un cadre pour la construction d'applications basées sur le modèle SBA Apache Hadoop - dans le cas où l'exploitation forestière omniprésente est une exigence, l'utilisation de Hadoop offre une solution intéressante pour le problème des grandes données. Hadoop peut être déployé dans un environnement clusterisé prenant en charge les technologies CUDA. AlgoTrader - une plateforme de trading algorithmique open source. AlgoTrader pourrait être déployé à la place des composants du trader automatisé. FIX Engine - une application autonome prenant en charge les protocoles FIX (Financial Information Exchange) incluant FIX, FAST et FIXatdl. Bien qu'il ne s'agisse pas d'une technologie ou d'un cadre, les composants doivent être construits avec une interface de programmation d'application (API) pour améliorer l'interopérabilité du système et de ses composants. Conclusion L'architecture proposée a été conçue pour satisfaire aux exigences très génériques identifiées pour les systèmes de négociation algorithmique. D'une manière générale, les systèmes de négociation algorithmique sont compliqués par trois facteurs qui varient selon chaque implémentation: Dépendances des systèmes d'entreprise et d'échange externes Détermination des exigences non fonctionnelles et Évolution des contraintes architecturales L'architecture logicielle proposée devra donc être adaptée au cas par cas Pour satisfaire aux exigences organisationnelles et réglementaires spécifiques, ainsi que pour surmonter les contraintes régionales. L'architecture du système de négociation algorithmique doit être considérée comme un simple point de référence pour les individus et les organisations qui souhaitent concevoir leurs propres systèmes de négociation algorithmique. Pour obtenir une copie complète et les sources utilisées, veuillez télécharger une copie de mon rapport. Merci. Il ne semble pas possible. Mais il est avec nos stratégies de négociation algorithmique Il ne semble pas possible. Un système de trading algorithmique avec autant d'identification de tendance, d'analyse de cycle, de flux de volume côté buysell, de stratégies de négociation multiples, d'entrée dynamique, de prix cible et stop et de technologie de signaux ultra-rapides. Mais il est. En fait, AlgoTrades plate-forme de système de trading algorithmique est le seul du genre. Plus de recherche de stocks chauds, de secteurs, de matières premières, d'indices ou de lecture d'opinions de marché. Algotrades effectue toutes les recherches, le timing et le trading pour vous en utilisant notre système de trading algorithmique. Les stratégies éprouvées AlgoTrades peuvent être suivies manuellement en recevant des alertes de courrier électronique et de texte SMS, ou il peut être 100 mains libres de négociation, c'est à vous Vous pouvez activer onoff trading automatisé à tout moment afin que vous êtes toujours en contrôle de votre destin. Systèmes automatisés de négociation pour les investisseurs avisés Copyright 2016 - ALGOTRADES - Système automatisé de négociation algorithmique CFTC RÈGLE 4.41 - LES RÉSULTATS HYPOTHÉTIQUES OU SIMULÉS DE PERFORMANCE ONT CERTAINES LIMITATIONS. UNLIKE UN RAPPORT DE PERFORMANCE RÉELLE, LES RÉSULTATS SIMULÉS NE REPRÉSENTENT PAS DE COMMERCE RÉEL. AINSI, LES COMMERCES N'AI PAS ETE EXECUTES, LES RESULTATS PEUVENT ETRE COMPENSES POUR L'INCIDENCE DE CERTAINS FACTEURS DE MARCHE, TELS QUE LE MANQUE DE LIQUIDITE. LES PROGRAMMES SIMULTANÉS DE COMMERCE EN GÉNÉRAL SONT ÉGALEMENT SUJETS AU FAIT QU'ILS SONT CONÇUS AVEC LE BÉNÉFICE DE HINDSIGHT. AUCUNE REPRÉSENTATION N'EST FAITE QUE TOUT COMPTE EST OU PEUT PROBABILISER DE COMPRENDRE DES BÉNÉFICES OU DES PERTES SIMILAIRES À CELLES INDIQUÉES. Aucune représentation n'est faite ni impliquée que l'utilisation du système de négociation algorithmique générera des revenus ou garantira un profit. Il existe un risque important de perte associé aux opérations à terme et aux fonds négociés en bourse. Le négoce à terme et les fonds négociés en bourse comportent un risque important de perte et ne sont pas appropriés pour tout le monde. Ces résultats sont fondés sur des résultats de performance simulés ou hypothétiques qui présentent certaines limitations inhérentes. Contrairement aux résultats présentés dans un enregistrement de performance réel, ces résultats ne représentent pas le commerce réel. En outre, comme ces transactions n'ont pas été effectivement exécutées, ces résultats peuvent avoir été sous-ou sur-compensés pour l'incidence, le cas échéant, de certains facteurs de marché, comme le manque de liquidité. Les programmes de négociation simulés ou hypothétiques en général sont également soumis au fait qu'ils sont conçus avec le recul. Aucune représentation n'est faite que tout compte aura ou sera susceptible d'obtenir des profits ou des pertes semblables à ceux-ci étant montré. Les informations contenues dans ce site Web ont été préparées sans tenir compte des objectifs de placement, de la situation financière et des besoins particuliers des investisseurs et conseillent en outre aux abonnés de ne pas agir sur les informations sans obtenir de conseils précis de leurs conseillers financiers pour ne pas se fier aux informations du site Web Pour leurs décisions d'investissement et d'examiner leur propre profil de risque, la tolérance au risque et leurs propres pertes d'arrêt. - développé par Enfold WordPress Thème


No comments:

Post a Comment