Forex trading Java. Net API Java C Java. Net. WEB. . WEB,. ...... Java. Net (IntelliJ IDEA, MS VS2010, NetBeans, Eclipse.). ,, (XQL) Java C, xQL - (). JFX-API Java. Net,, FOREX, .. Windows -, (: Linux WINE) - NJ4X. Commerce avec différentes sources de données analysées. Baser vos stratégies commerciales sur. Analyse en profondeur des ticks en temps réel de différentes sources de données Brokers (par exemple, DukasCopy, LMAX, TradingView). Des événements fiables pour les fournisseurs de signaux. Technologies de développement haut de gamme (comme le disjoncteur LMAX). Rendre vos applications blazingly rapide En appliquant des non-bloquant tiques conception des processeurs Exécution de tâches indépendantes (analyse de position, la journalisation, la réflexion GUI) en parallèle Simplifier la structure globale du programme En sortant d'un contexte commercial unique limitation de certaines plates-formes Forex, Le même compte sont exécutés en parallèle. Simple onglets GUI pour Advanced Matlab Trading App Bonjour là Si vous êtes nouveau ici, vous pouvez vous abonner au flux RSS ou courrier électronique pour les mises à jour sur les sujets indifférents Matlab. I8217d aimerait présenter le blogueur invité Alex Boykov, l'un des développeurs de la boîte à outils d'analyse Walk-Forward pour Matlab (WFAToolbox). Qui permet d'accélérer le développement des stratégies de négociation à l'aide de Matlab. Aujourd'hui, Alex expliquera comment ils ont utilisé des onglets d'une manière qui peut être reproduit par n'importe quelle autre interface graphique Matlab, pas nécessairement la dernière version de Matlab. Dans ce post, nous voulons vous expliquer comment nous avons résolu le problème de la création d'onglets pour WFAToolbox. Nous avons besoin des critères suivants: Les onglets doivent être attrayants et ressembler à des onglets, pas comme des boutons avec des panneaux Les onglets doivent avoir été dessinés à l'aide du GUIDE de l'éditeur afin que le contenu du panneau peut facilement être édité Les onglets peuvent être facilement Ajoutés et supprimés sans ajout de code significatif. Ils doivent être simples à utiliser dans différents projets et tâches L'utilisateur sophistiqué de Matlab pourrait penser que c'est un objectif trivial, vu qu'il existe de nombreuses solutions pour ce problème dans Matlab Exchange et depuis Matlab R2014b, il supporte la création d'onglets natifs avec le Aide des fonctions uitab et uitabgroup. Aussi, avec l'ajout de App Designer. Il pourrait sembler que ce problème sera résolu avec la nouvelle interface pour les onglets de création GUI peut être créé directement dans l'éditeur. Toutefois, dans ce post, nous essaierons d'expliquer pourquoi aucune des méthodes ci-dessus ne correspondent aux trois critères énoncés et nous présenterons notre propre solution pour les onglets. Quel que soit le fait que nous ayons pris le problème en 2013, lorsque nous avons commencé à créer notre WFAToolbox, au moment de la rédaction de cet article (janvier 2016), ce problème est encore un problème pertinent pour de nombreux utilisateurs de Matlab. Après la libération de R2016a, il est douteux que le problème sera entièrement résolu. C'est pourquoi nous avons créé notre propre exemple de code que nous avons publié sur Matlab File Exchange (voir ci-dessous). WFAToolbox (application Matlab pour la négociation algorithmique) 1. Les onglets doivent ressembler à des onglets Lorsque nous avons créé WFAToolbox, notre objectif était de créer une application qui permettrait à tous les intéressés de créer une stratégie de trading sur les marchés financiers Pour le faire, ainsi que la possibilité d'utiliser le plein potentiel de Matlab et ses outils progressifs, y compris les algorithmes génétiques, le calcul parallèle, l'économétrie, les réseaux de neurones, et beaucoup, beaucoup plus (essentiellement, toute analyse de données qui peut être fait dans Matlab ). En même temps, nous ne voulons pas que nos utilisateurs passent du temps à développer un environnement logiciel avancé pour le test, l'analyse et l'exécution de stratégie, mais plutôt de le faire à partir d'une interface graphique facile à utiliser. Ainsi, dans WFAToolbox, vous pouvez créer, tester et, enfin, lancer votre propre stratégie de trading ou tester une hypothèse en quelques minutes, même avec peu de connaissance préalable de la programmation de Matlab. Bien entendu, afin de pouvoir intégrer ces caractéristiques dans une seule application, garantir qu'il serait facile à comprendre même par les débutants, et qu'il serait simple à utiliser, il fallait accorder une attention particulière à l'interface graphique. À notre avis, peut-être la solution la plus intelligente pour placer les nombreux contrôles et fonctions nécessaires pour des applications sophistiquées est en créant des onglets. Parce que nous savions que nous n'étions pas les seuls à penser de cette façon, nous avons commencé à chercher des exemples de codes créés précédemment dans Matlab Exchange. Nous avons été très surpris quand nous avons trouvé que quelques solutions, dont la plupart ne correspondaient même pas à notre premier critère d'attrait d'onglet Malheureusement, la majorité d'entre eux étaient vieux et assez peu attrayants (ils ressemblaient plus à des boutons avec des panneaux). Même le nouveau concepteur d'application possède des onglets qui, à nos yeux, ressemblent plus à des boutons qu'à des onglets. Ayant essayé beaucoup de ces utilitaires dans nos versions de test, nous sommes arrivés à la conclusion que Tab Panel Constructor v.2.8 serait la meilleure option pour nous. Il correspond aux trois critères ci-dessus. En 2013, nous l'avons utilisé avec succès dans nos premières versions de WFAToolbox. Tout semblait très bien, mais, malheureusement, il s'est avéré plus tard que le problème était loin d'être résolu. WFAToolbox à onglets (application Matlab pour la négociation algorithmique) 2. Les onglets doivent être créés via GUIDE Malheureusement, avec le temps, il s'est avéré que avec la nouvelle version de Matlab, il ne fonctionne pas sans problème et le code que nous voulions utiliser comme notre solution Pratiquement tombé en morceaux en face de nous. Après l'ajout d'un couple d'éléments dans l'interface graphique, le formatage partiel a été perdu et nous avons dû refaire tout. Le processus d'ajout des tags a créé beaucoup de bugs qui devaient être résolus immédiatement. En 2014, nous avions déjà plus de 500 clients utilisant notre application. Nous avons commencé à entendre, de plus en plus souvent, qu'il serait grand que les couleurs et les emplacements des onglets puissent être modifiés. Il s'est avéré que, selon le système d'exploitation et la version de Matlab, le format d'onglet change. Donc, nous avons pris la décision de changer nos onglets. À cette époque, une nouvelle version de Matlab a été libérée, R2014b. Il nous a permis de construire des onglets à l'aide des fonctions uitabgroup et uitab. Les résultats ont regardé exactement comment nous voulions: attrayant, plaisant, et apparaissait comme les vrais onglets: Interface utilisateur avec le panneau d'étiquette dans Matlab R2014b. Pendant ce temps, nous développions un module pour WFAToolbox qui permettrait aux utilisateurs de télécharger des données à partir de Google Finance: 10 000 cotations quotidiennes quotidiennes et intraday à partir de 20 bourses. Les onglets étaient les plus faciles à utiliser lors du basculement entre le téléchargement de données gratuites de Google Finance et le téléchargement de données utilisateur personnalisées dans l'espace de travail Matlab. Mais en entrant tant d'éléments à travers le code et pas par un éditeur Que se passera-t-il quand nous ajoutons 100.000 données historiques gratuites de Yahoo Finance pour les futures, obligations, devises, actions et autres Nous ne voulons pas créer tout cela sans l'éditeur GUIDE C'est pourquoi Nous sommes arrivés à la conclusion qu'il était nécessaire pour nous de créer un code d'onglets, à partir de zéro, afin qu'ils correspondent à tous les trois de nos critères. Tab WFAToolbox (application Matlab pour la négociation algorithmique) 3. Les onglets doivent être faciles à ajouter et modifier Nous avons choisi le panneau simple onglet. Qui existe déjà dans Matlab File Exchange depuis 2007, comme base pour notre nouveau code, car nous l'avons considéré comme l'exemple le plus élégant et le plus attrayant des onglets GUIDE. Cette solution correspond à nos deux premiers critères, mais nous voulions vraiment qu'il soit universel et facile à utiliser. Nous voulions également avoir un processus simplifié d'ajout d'onglets et de suppression afin que, au lieu d'avoir à copier et réécrire une grande quantité de code et d'autres détails, nous pourrions simplement ajouter une seule ligne de code. Nous voulions économiser sur les coûts de main-d'œuvre, car nous ajoutons souvent de nouvelles fonctionnalités à WFAToolbox et cela inclut la nécessité d'ajouter constamment de nouveaux éléments aux onglets existants, ainsi que l'ajout de nouveaux onglets. Ainsi, nous avons réécrit le code et créé notre propre exemple universel afin que chacun puisse l'utiliser à leur avantage. Nous avons téléchargé le code dans Matlab File Exchange, où il peut être téléchargé librement: Simple Optimized GUI Tab. Ensuite, nous décrirons comment utiliser ce code pour l'ajout d'onglets et comment utiliser le processus pour la mise en œuvre des tâches. Ainsi, pour ajouter un nouvel onglet, vous devez: Ouvrir GUIDE et appliquer uipanel et uitext d'une manière qui rendra uipanel plus facile à travailler à l'avenir, et placer uitext à un endroit où l'onglet commutateur sera situé. Renommez le Tag de l'uitext à 8216tab8217, N, 8217text8217, où N est l'index de tabulation. Dans notre exemple, nous créons le troisième onglet, donc notre tag serait 8216tab3text8217. En utilisant ce même principe, 8216tab8217, N, 8217Panel8217 doit être renommé en tag de uipanel dans le 8216tab3Panel8217. Ajoutez le nom du nouvel onglet à la variable TabNames. Dans notre exemple, nous utilisons 8216Tab38217 (mais vous pouvez utiliser n'importe quel nom). Comment le code a été créé Le principe principal de la façon dont fonctionne notre code est que nous créons les objets uipanel et uitext dans GUIDE, puis nous prenons les coordonnées uitext et remplacer les objets par les axes et les objets de texte. Nous leur attribuons une fonction de rappel qui fonctionne quand on clique sur l'objet. La fonction rend le uipanel s visibleinvisible et change les couleurs de l'onglet. Let8217s regarder le code de fonction SimpleOptimizedTabs2.m. Qui fait partie de la présentation Simple Optimized GUI Tab. 1. Paramètres des onglets Si nous modifions les paramètres sous Paramètres, nous pouvons contrôler l'apparence de notre GUI et des onglets. Ainsi, le paramètre TabFontSize modifie la taille de la police sur le commutateur d'onglet et, avec l'aide de TabNames, nous pouvons renommer ou ajouter des noms d'onglet, et avec FigWidth. Nous pouvons déterminer la largeur normalisée de l'interface graphique. 2. Modification de la largeur de la figure La largeur de l'interface graphique change dans le code car il n'est pas confortable d'étirer manuellement et de réduire la taille. Il est plus avantageux de voir le contenu de tous les onglets et de travailler avec eux sans avoir à changer la largeur à chaque fois que vous faites un petit changement. Si vous voulez rendre votre uipanel plus grand que dans l'exemple, faites-le avec l'éditeur GUIDE. Toutefois, n'oubliez pas de modifier le paramètre FigWidth. Veuillez noter qu'en raison des particularités de l'éditeur, vous ne pouvez pas restreindre la taille sans changer l'emplacement des onglets. Vous ne pouvez le faire que si vous modifiez la largeur, nous vous recommandons donc d'ajouter des onglets en augmentant la largeur de la figure et non la longueur. 3. Création d'onglets Effectuez les opérations suivantes pour chaque onglet: obtenez les coordonnées uitext que nous avons saisies dans le panneau GUI et positionnez les axes et le texte à l'aide de ces coordonnées (en utilisant les réglages nécessaires de l'habillement externe). En utilisant le paramètre ButtonDownFcn, nous pouvons lier la fonction de rappel appelée ClickOnTab. Afin de changer de tabulation lorsque vous cliquez sur le texte ou les axes. En fait, si vous avez des noms d'onglets longs et que vous souhaitez modifier la taille du commutateur, il vous sera peut-être nécessaire de corriger le paramètre Position de l'objet texte en y ajoutant les coefficients de correction. Malheureusement, c'est également une caractéristique de GUIDE. Si quelqu'un peut résoudre ce problème afin que le texte soit toujours affiché au milieu de l'onglet de commutateur quelle que soit la largeur, nous serons heureux de lire toutes les suggestions dans les commentaires à ce post. 4. La fonction de rappel ClickOnTab La fonction de callback ClickOnTab est utilisée à chaque fois lorsque vous cliquez sur le commutateur de tabulation et le résultat des commutateurs sont visibleinvisible dans les uipanel s et dans les changements aux couleurs des commutateurs. Vous trouverez plus d'informations sur notre boîte à outils d'analyse Walk-Forward pour la négociation algorithmique (WFAToolbox) sur wfatoolbox. Postes connexes: Séminaire Matlab avancé 8211 Londres, 10-14 mars 2014 Les cours de formation avancée Matlab se tiendront à Londres du 10 au 14 mars 2014. Deux cours distincts seront organisés: Programmation avancée Matlab 8211 2 jours (10-11 mars) , Y compris les meilleures pratiques, la préparation des rapports professionnels, l'écriture du code professionnel et l'optimisation des performances. US1199 Avancé. Grilles de propriétés JIDE avancées Les grilles de propriétés JIDE peuvent utiliser des composants complexes de rendu et d'édition de cellules et peuvent signaler des événements de changement de propriété de manière asynchrone aux rappels de Matlab. Création d'une classe UDD simple Cet article explique comment créer et tester des packages, des classes et des objets UDD personnalisés. Démo du système de négociation en temps réel Une démonstration du système de négociation de bout en bout de Matlab en temps réel est présentée. Démo du système de négociation en temps réel Le 23 mai 2013, j'ai fait une présentation lors de la conférence MATLAB Computational Finance à New York. La salle était pleine de près de 200 professionnels dans le secteur financier. L'énergie et la rétroaction ont été formidables, c'était formidable. Les gestionnaires de mise en page de Matlab: uicontainer et les membres de la famille Matlab contient quelques gestionnaires de mise en page GUI non documentés, qui facilitent grandement la manipulation des composants GUI dans des figures dynamiques. Chandrakanth Terupally dit: J'ai été heureux de découvrir des onglets finalement arrivés, mais ma joie a été de courte durée sur la découverte que GUIDE couldn8217t créer des onglets. L'année dernière, un client a demandé d'ajouter un onglet à une GUI existante faite dans GUIDE et je ne voulais pas programmer la disposition GUI. Avec quelques ajustements simples je pourrais fusionner de deux GUIs indépendantes faites dans le GUIDE en deux onglets d'une GUI simple using uitab. Ça a bien fonctionné. L'inconvénient est que cette méthode devient fastidieuse si les composants dans les onglets ont besoin de changements. P. s. Je ne sais pas si c'est une méthode connue. Publier sur mon blog a été sur ma liste à faire pendant un certain temps si it8217s pas une méthode connue, je vais afficher un lien ici quand je le blog. Dnis Riedijk dit: Je viens de copier le contenu de uipanels à mes onglets dans la fonction d'ouverture GUI, en copiant la position du premier uipanel comme position de l'uitabgroup. Ensuite je supprime les uipanels. De cette façon, je construis mes onglets dans le guide. Assez simple en fait. Seulement besoin d'apporter l'uipanel correct en avant dans le guide quand j'ai besoin d'éditer un. Stephan Arendt dit: J'ai utilisé votre code pour créer des onglets et des Childtabs. Quand je les ai comparés à votre IB-Matlab Gui j'ai remarqué que les onglets semblent beaucoup mieux que les champs de texte standard Pouvez-vous s'il vous plaît me donner un indice ce que je peux faire pour obtenir ces frontières mieux regardées P. S. Vous avez vu à Matlab Expo 2016 Munich. Votre discours a été vraiment bon et m'a fait passer de la création unhandy de multiples figures à des onglets. Stephan 8211 merci pour les commentaires sur ma présentation Expo, mais je don8217t comprendre votre question: IB-Matlab est 8220just8221 un connecteur entre InteractiveBrokers et Matlab 8211, il ne contient aucune interface graphique. Peut-être que vous voulez dire l'outil d'analyse Walk-Forward (WFA) qu'Alex Boykov a présenté dans l'article ci-dessus Veuillez clarifier votre question, car elle n'a pas de sens. Stephan Arendt dit: Yair Je parle de l'interface graphique utilisée dans votre outil (IB-Matlab: le commerce avec InteractiveBrokers en utilisant Matlab). Sry i n'a utilisé que cette abréviation Missleading. Et oui j'utilise l'outil mentionné ci-dessus pour construire sur. Ma question est: Comment puis-je obtenir des onglets plus réalistes. Similaire à votre GUI Stephan 8211 encore une fois, je répète: IB-Matlab ne contient pas d'interface graphique. C'est une fonction Matlab pure sans GUI. Peut-être you8217re se référant à un certain programme GUI qui utilise IB-Matlab 8211 IB-Matlab lui-même n'a pas d'interface graphique. Quoi qu'il en soit, pour obtenir des onglets réalistes, vous pouvez utiliser Matlab8217s uitabgroup et uitab fonctions. J'essaie d'intégrer le code d'onglet dans mon GUI existante. Je reçois l'erreur: Référence au champ inexistant 8216SimpleOptimizedTab8217. J'ai analysé votre code et il ya effectivement à la référence au domaine. Comment se fait-il seulement demande la référence sur l'intégration dans une GUI existante et peut ce problème être fixé Merci Mosawi Merci pour votre question Dans le code de l'article utilise une figure appelée 8220SimpleOptimizedTab8221, ainsi vous devriez changer ce nom à votre nom de figure8217s . Aussi, nous pouvons vous suggérer de prendre le code SimpleTabPanel et GUI et y ajouter votre code, que vice versa. Merci pour votre réponse. J'ai maintenant incorporé votre code d'onglet ingénieux dans mon GUI. Je voudrais publier mon logiciel à l'avenir, quelles sont vos politiques à ce sujet. N'hésitez pas à l'utiliser. Il sera également génial si vous pourrez remarquer quelque part que 8220GUI Tabs a été construit avec l'aide de WFAToolbox Team (wfatoolbox) 8221, mais c'est à vous. J'essaie le code comme prévu, quand je change le 8216SimpleOptimizedTab8217 à mon nom de figure, mais il montre toujours la référence au champ inexistant 8216registration8217. Mon nom de figure est 8216registration8217. Pouvez-vous m'aider à trouver le problème Catégories Commentaires récents Gabriele (1 jour 14 heures). Merci pour le message très utile Peut-être mal, mais il semble être quelque chose en rapport avec la parallélisation intrinsèque combinée avec précision unique. En fait, comme base, le. g. (Il y a 2 jours 11 heures). Salut, J'ai un problème similaire sous Linux, Ubuntu 16.04. Matlab raccroche lorsque vous utilisez la commande 8220print8221 pour exporter des chiffres. Je ne peux pas interrompre le logiciel et je dois tuer. Donn Shull (3 jours 11 heures ago). Salut Matt, À ma connaissance, la réponse est non. Dans le monde automobile il ya un système pour faire ce que vous décrivez. Il est assez complexe et repose sur un ensemble fermé de normes. Yair Altman (il ya 3 jours 11 heures). James 8211 le point entier de l'utilisation de parfor est de ne pas utiliser un seul thread de calcul, mais plutôt courir en parallèle sur plusieurs travailleurs. Le code dans l'article était simplement. Xiangrui Li (3 jours 11 heures ago). Il semble un bogue grave. J'ai testé moyenne au lieu de std, et le résultat est similaire. Peut-être l'erreur pour std est due à l'erreur pour le moyen que j'ai joué avec différentes tailles pour. James (4 jours 12 heures ago). Réessayez avec - singleCompThread zed (il y a 4 jours 12 heures). J'ai eu à traiter avec le parfor sur les matrices objet 8216challenge8217 lors du traitement en invoquant une méthode qui fonctionne sur les propriétés internes, il doesn8217t dérangent de retourner le. Matt (il y a 5 jours 8 heures). Quelque chose que j'ai rencontré récemment était un besoin de fournir l'initialisation d'exécution des objets de paramètre de données de Simulink dans une application compilée. J'ai résolu le problème en appelant un fichier de configuration. Tom (10 jours 23 heures ago). Malheureusement, il semble que la légende ne peut pas afficher la ligne correspondante comme un dégradé. La couleur de ligne apparaît pour correspondre à une extrémité du dégradé. J'ai essayé un bungch de choses mais. Dan Dolan (11 jours 4 heures ago). J'ai posté une solution de contournement partielle sur l'échange de fichiers Mathworks. Yair Altman (il y a 16 jours 2 heures). Kristian 8211 oui, la fonction (OpenGLLoadStatus) fonctionne dans R2015a. Il serait intéressant de savoir comment vous utilisez cette fonctionnalité 8211 pouvez-vous nous dire Yair Altman (18 jours 16 heures). Stefano 8211 répondre à cela est au-delà du temps que je peux passer sur un commentaire blog. You8217re invité à m'envoyer un courriel (altmany à gmail) pour un court conseil sur votre. Yair Altman (18 jours 17 heures ago). Daniele 8211 que l'extrait de code n'est pas connecté au programme principal, il était juste illustratif (comme dans le pseudo-code). SortableTreeTableModel n'a pas de méthode removeRow. Daniele F. (18 jours 17 heures ago). Cher Yair, Tout d'abord, merci pour cet excellent outil. Deuxièmement: I8217m pas un utilisateur Java Question: À la fin de votre code, vous avez écrit quelques exemples de fonctions. Je voulais utiliser le. Stefano (19 jours 17 heures ago). Salut Yair, I8217m essayer de mettre en œuvre votre widget Autocomplete dans mon GUI (plus simple que le vôtre). J'ai décidé de diviser le code pour mieux le comprendre, mais j'ai deux. Contactez-nous Copie Matlab non documentée 2009-2017 Yair Altman
No comments:
Post a Comment