Friday, 13 January 2017

Hadoop Trading Système

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 ISO IEC IEEE 42010 systèmes et la norme de description de l'architecture de génie logiciel. 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 timestamps 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 les cadres qui pourraient être utilisés pour réaliser l'architecture. En règle générale, il est préférable de tirer profit des technologies existantes, à condition qu'elles répondent adéquatement aux exigences fonctionnelles et 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, alors l'utilisation de Hadoop offre une solution intéressante au 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. Thank you. Building Stock Trading Stratégies: 20 Plus rapidement avec Hadoop Ce poste invité de Sofia Parfenovich, Data Scientist chez Altoros Systems. Un grand spécialiste des données et un partenaire Hortonworks System Integrator. Sofia explique qu'elle a optimisé une solution de négociation de clients en utilisant Hadoop (Hortonworks Data Platform) et en regroupant les données de stock. Les solutions commerciales automatisées sont largement utilisées par les investisseurs, les banques, les fonds et les autres acteurs du marché boursier. Ces systèmes sont basés sur des algorithmes mathématiques complexes et peuvent prendre en compte des centaines de facteurs. Plateformes de négociation d'aujourd'hui peut informer les gens sur le bon moment pour placer des ordres de vente d'achat ou peut même faire un marché sans aucune participation humaine. Stratégies de négociation d'actions et problèmes de données Les algorithmes de négociation sont souvent basés sur un seul ensemble de règles avec des paramètres fixes faciles à mettre en œuvre, mais ils sont incapables de refléter tous les changements sur le marché et peuvent entraîner des pertes importantes. Une des façons de rendre un système plus souple est de diviser les stratégies en plusieurs groupes en fonction des types de conditions du marché. Voici un exemple où ce système a été mis en œuvre. La société avait une solution qui a généré automatiquement un pool de stratégies de négociation, mais le processus de sélection de la stratégie nécessaire était toujours un problème. Les données ont été groupées par les experts commerciaux manuellement pour un état particulier d'une bourse, qui a pris des semaines d'analyse. Cette partie du système devait être automatisée. Un autre problème a été causé par une nature distribuée du système. Plusieurs rapports sur les stratégies de construction ont été agrégés sur des machines distinctes. La taille totale de cette information approchait de 100 Go, ce qui en faisait un gros problème. En outre, les stratégies devraient avoir été révisées tous les deux mois pour être adaptées aux conditions changeantes du marché. Pour faire face à de telles quantités massives de données, la plateforme clients a utilisé un certain nombre de filtres qui ont réduit le nombre de paramètres. Par conséquent, la taille totale de ces rapports agrégés a été ramenée à 510 Go. Après cela, les données ont été divisées en groupes selon les hypothèses suggérées par les experts commerciaux. Ainsi, les stratégies nécessaires ont été sélectionnées à partir de plus petits ensembles de taille 0,51 Go. Cependant, les stratégies obtenues n'étaient pas suffisamment variées et omissaient très souvent certains des paramètres essentiels. Le client a voulu inclure plus d'informations dans analysiste l'objectif était de prendre des décisions plus précises et donc augmenter les profits. Résoudre le gros problème de données avec Hadoop, Hortonworks Data Platform et k-means La tâche s'intègre parfaitement au principe MapReduce (diviser et distribuer) et aux fonctionnalités Hadoop de Hortonworks Data Platform. Le client a accepté cette option, car il n'a pas besoin d'acheter tout matériel ou logiciel supplémentaire. Les rapports ont été téléchargés sur HDFS. Pour regrouper ces données agrégées, l'algorithme k-means a été implémenté en utilisant le langage R. Cet algorithme regroupe les objets par proximité de coordonnées. La figure 1 montre comment les stratégies générées peuvent être couplées ensemble par deux paramètres (coordonnées), par exemple, la probabilité d'obtenir un profit et le taux de perte. Chaque couleur indique un groupe de stratégies avec une probabilité similaire d'un profit et d'une perte. En réalité, il existe une abondance de facteurs qui influent sur le marché boursier, ce qui rend ce genre de regroupement plus sophistiqué. Pour notre système, chaque stratégie de négociation aurait N coordonnées sur la première exécution (lorsque les données statistiques sont analysées) et M coordonnées sur la deuxième série (lorsque l'efficacité d'une stratégie est analysée). La figure 2 décrit comment le système commercial a été amélioré en utilisant Hadoop (Hortonworks Data Platform) et l'algorithme k-means. Voici le schéma général de la solution: Tout d'abord, le système collecte des rapports avec des données de stock brutes. Ensuite, ces rapports sont transférés à HDFS. Un script écrit avec le langage R commence à prétraiter les données. (Sur la base du principe MapReduce, il unifie les informations hétérogènes collectées par le système.) Lors du premier regroupement, toutes les stratégies sont triées selon les critères statistiques (par exemple, l'offre en cours, la quantité d'actions et des centaines d'autres paramètres ). Lors du deuxième regroupement, le système effectue une analyse qualitative: il mesure les résultats que chaque stratégie démontre et compare la stratégie à l'état du marché à différentes périodes. Les données sont préparées dans le format approprié. Comme dans l'étape de prétraitement, cette tâche est également réalisée par un script créé avec R sur le paradigme MapReduce. Les résultats sont extraits de HDFS et sont prêts pour une utilisation future par le client. Trois avantages clés ont été obtenus grâce à l'optimisation avec Hadoop, les scripts R, le clustering et les k-means: le système construit et sélectionne la stratégie la plus appropriée 20 plus rapidement qu'avant. Cette amélioration seule économise le client environ une semaine chaque fois que l'équipe fait l'analyse. La plateforme améliorée a doublé le nombre de groupes stratégiques. Cette diversification a rendu la sélection plus souple et concise, augmentant les revenus des clients de 12. Enfin, les stratégies peuvent maintenant être mises à jour plus fréquemment et peuvent inclure plus de paramètres dans l'analyse. En conséquence, il existe plus de stratégies que le client peut vendre, créant ainsi un canal de revenus supplémentaire. Auparavant, ces réalisations n'étaient pas réalisables, car l'ajout d'un paramètre au système augmenterait le nombre de rapports et le temps nécessaire pour les traiter. L'architecture actuelle basée sur Hadoop prend en compte le volume toujours croissant d'informations sur le marché et permet de traiter 10x ensembles de données plus importants sans investissement supplémentaire. Il serait également intéressant de voir combien d'amélioration le client pourrait réaliser avec l'une des implémentations HadoopGPU ou avec les capacités en temps réel de YARN fournies par Hadoop 2.0. Alors, attendons les histoires de réussite soutenues par des chiffres exacts. À propos de l'auteur: Sofia Parfenovich est chercheuse scientifique chez Altoros Systems, un grand spécialiste des données et un facilitateur de la plateforme en tant que service. Sofia est intéressée par la création de règles d'association pour l'exploitation de grands volumes de données avec Hadoop et d'autres outils MapReduce. Elle possède une solide expérience en prévision des séries temporelles, la construction de stratégies de négociation et diverses analyses de données. Altoros Systems est un partenaire Hortonworks System Integrator. La société fournit des services technologiques autour de Hadoop et PaaS aux éditeurs de logiciels, aux fournisseurs IaaS et aux entreprises d'information lourde. Altoros a une expérience éprouvée de servir des leaders de la technologie, tels que RightScale, Couchbase, NuoDB, Joyent, Cisco, etc Pour plus d'informations, s'il vous plaît visitez altoros. (2 2) Le premier blog de cette série en deux parties (Deter Crime financier en créant un programme de lutte contre le blanchiment d'argent efficace) a décrit comment les activités de blanchiment d'argent (ML) utilisées par Les acteurs néfastes (p. Ex. Cartels de la drogue, personnalités publiques corrompues et organisations terroristes) sont devenus plus sophistiqués au fil des ans. Le premier poste de cette série en trois parties sur Digital Foundations vamsitalkstech p2517 a introduit le concept de Client 360 ou Single View of Customer (SVC). Nous avons discuté des avantages spécifiques à la fois d'un point de vue opérationnel amp ampères qui sont activés par SVC. Ce deuxième poste de la série introduit le concept d'un voyage client. Le troisième ampli finalhellip Cinq minutes avec. Eric Thorsen sur les programmes de fidélisation des détaillants européens Combien de cartes de fidélité de détail avez-vous Personnellement, je n'ai été fidèle à un seul programme de façon constante au cours des 10 dernières années (Boots Advantage Card, système de points fantastique) Waitrose et John Lewis, mais au-delà de ce puits, je les perds ou les oublie. Ihellip Apache, Hadoop, Falcon, Atlas, Tez, Sqoop, Flume, Kafka, Cochon, Hive, Accumulo, Storm, Solr, Spark, Ranger, Knox, Ambari, ZooKeeper, Oozie, Metron Sont des marques déposées ou des marques déposées de Apache Software Foundation aux États-Unis ou dans d'autres pays.


No comments:

Post a Comment