J'essaie d'écrire un programme qui va trouver le total de pips (prix gagné) avec une stratégie. Fondamentalement, la stratégie est chaque fois que le cours de l'action est de 5. et nous allons commencer à négocier et nous continuerons à négocier tant que le cours de l'action est supérieur à 2 et inférieur à 9. ce qui signifie dans la fourchette (2,9). Lorsque le prix atteint 2 ou 9. nous cessons de négociation. Quand je lance le programme, il ne s'exécute pas correctement, il n'entre pas dans la deuxième boucle while. Ce qui manque total. Le total des pips gagné avec une stratégie diff: la différence du prix de l'action btw 2 dates consécutives Sheet1: une matrice de données chargé à partir d'excel, où la première colonne est la date et la seconde est le cours de stock stock demandé Oct 24 10 at 21:04 Voici ma tentative à ce problème (la façon dont je l'ai compris): Fondamentalement, nous boucle sur le vecteur des prix. Lorsque pricegt5 nous commençons à négocier jusqu'à ce que le prix ne soit pas dans la gamme 2,9. À quel point nous calculons la somme des différences à partir de quand nous avons commencé à cet endroit (est ce que vous essayez de faire) et l'ajouter à un total général. Malheureusement, il utilise un for-loop, peut-être quelqu'un peut l'améliorer par vectorization. MatlabTrading Ce poste est sur l'importance est d'utiliser différents types de méthodes d'optimisation tels que les algorithmes génétiques et la parallélisation pour obtenir des résultats plus rapidement. Optimisation des Algorithmes Génétiques Malgré le fait que le principe de l'algorithme génétique (évolutionnaire) est très bien expliqué dans les webinaires de MathWorks, dans les exemples, il est utilisé uniquement pour l'optimisation du choix d'un groupe de stratégie à partir d'un ensemble. Il s'agit d'un bon exemple de l'utilisation de ces algorithmes, mais il arrive qu'il est nécessaire de définir de nombreuses variables avec des intervalles significatifs pour une stratégie, vous n'avez pas obtenir avec une itération et la parallélisation des processus 8211 calculs peuvent prendre plusieurs jours . Certes, il existe des stratégies dans la phase finale de l'optimisation. Lorsque nous savons presque sûrement que la stratégie de négociation est couronnée de succès, nous pouvons attendre plusieurs jours ou louer le cluster entier - le résultat pourrait en valoir la peine. Cependant, si nous devons estimer les résultats d'une stratégie volumineuse et décider s'il vaut la peine de passer le temps, alors les algorithmes génétiques peuvent être parfaitement adaptés. Nous proposons la possibilité d'utiliser trois méthodes pour optimiser la stratégie dans WFAToolbox: Méthode linéaire 8211 c'est un mode habituel de tri dans lequel vous verrez tous les résultats intermédiaires (sous-optimale). Il donne une précision maximale. Méthode parallèle 8211 tous les noyaux de votre CPU seront utilisés. Il ne permet pas de voir des résultats intermédiaires, mais accélère considérablement l'opération. Il donne une précision maximale lors de l'augmentation de la vitesse de calcul. La méthode génétique 8211 utilise l'algorithme d'optimisation évolutive. Il permet de voir des valeurs sous-optimales, mais donne le résultat proche de la meilleure. Ce n'est pas une méthode très précise, mais elle est suffisamment précise pour la phase initiale de la stratégie. Très vite. On nous demande souvent si WFAToolbox - Walk-Forward Analysis Toolbox pour MATLAB a la possibilité d'utiliser le GPU dans les calculs. Malheureusement, le GPU n'est pas adapté à toutes les tâches et son utilisation est très spécifique. Pour l'utiliser, vous devez ajuster la logique et le code de chaque stratégie pour le test des noyaux graphiques. Malheureusement, en raison de cette non-universalité de la méthode on ne peut pas utiliser GPU dans WFAToolbox. Suite à la deuxième partie de la discussion sur les problèmes et solutions dans le test et l'analyse de la stratégie de trading algorithmique dans MATLAB, je vous invite à lire ce post sur le problème de l'indisponibilité de la visualisation des processus dans les solutions logicielles modernes pour tester les systèmes de négociation. Visualisation du processus de test Dans mon expérience de travail, j'ai souvent analysé d'autres plates-formes populaires pour les tests de stratégie de négociation. Tels que TradeStation. MetaStock. Multicharts etc et j'ai toujours été surpris de la façon dont peu d'attention a été accordée à la visualisation du processus d'essai. La chose est que quand nous ne voyons pas les résultats des valeurs intermédiaires, sous-optimales des paramètres optimisés, nous jetons souvent de l'or avec la saleté. La question est en raison d'un échantillonnage trop large, la stratégie ajuste les paramètres de la façon dont nous soit voir une stratégie parfaite qui échoue dans la vie réelle ou de voir un ou deux traite, qui sont censés être le meilleur parce qu'il a été sélectionné telles données d'intervalle de temps où le La meilleure stratégie de négociation serait buy-and-hold, mais pourquoi sont alors d'autres stratégies nécessaires pour la visualisation du processus de test de stratégie de négociation dans MATLAB (proposé dans le webinaire) En conséquence, sans voir les résultats intermédiaires, nous avons 171blindly187 modifier les paramètres à essayer Pour obtenir les meilleures données ou le regarder en 3D ou 4D (la couleur est la 4ème dimension), comme proposé dans les webinaires. L'analyse des valeurs dans les espaces N-dimensionnels peut certainement être une alternative, mais a plusieurs limitations: Que faire si il ya plus de 4 dimensions Lorsque vous voyez quels signaux et à quelle fréquence ils apparaissent dans la fourchette de prix, vous avez presque tous les La représentation visuelle nécessaire de votre stratégie: la fréquence des transactions, leur rentabilité (courbe de revenu), la précision de l'ouverture, la similitude avec d'autres valeurs sous-optimales, etc. qui ne peut pas être dit sur la performance dans l'espace N-dimensionnel où toutes les informations utiles Est en fait que la valeur optimale n'est pas seulement une, mais il existe toute une gamme de valeurs sous-optimales dans une ou plusieurs zones. Tout en optimisant une stratégie dans WFAToolbox 8211 Walk-Forward Analysis Toolbox pour MATLAB174. Comme une nouvelle valeur optimale est trouvée, les signaux de la stratégie de négociation dans la période dans l'échantillon et hors de l'échantillon apparaissent immédiatement sur le graphique, de sorte que vous pouvez toujours contrôler quelle gamme d'options vous devez affecter, et aussi vous pouvez mettre en pause l'optimisation Sans attendre la fin du test, car il devient clair que quelque chose a mal tourné ou tout est fine. Hello, mon nom est Igor Volkov. Je développe des stratégies de négociation algorithmique depuis 2006 et j'ai travaillé dans plusieurs hedge funds. Dans cet article, je voudrais discuter des difficultés sur la façon de développeur de stratégies de négociation MATLAB au cours d'essais et d'analyse, ainsi que d'offrir des solutions possibles. J'ai utilisé MATLAB pour tester des stratégies algorithmiques depuis 2007 et je suis parvenu à la conclusion que ce n'est pas seulement l'outil de recherche le plus pratique, mais aussi le plus puissant car il permet l'utilisation de modèles statistiques et économétriques complexes, L'apprentissage automatique, les filtres numériques, la logique floue, etc. en ajoutant la boîte à outils. Le langage MATLAB est assez simple et bien documenté, donc même un non-programmeur (comme moi) peut le maîtriser. Comment tout a commencé. C'était 2008 (si je ne me trompe pas) que le premier webinaire sur le trading algorithmique de MATLAB avec Ali Kazaam a été publié, couvrant le thème de l'optimisation de stratégies simples basées sur des indicateurs techniques, etc. malgré un code plutôt local, les outils étaient intéressants Assez pour utiliser. Ils ont servi de point de départ à la recherche et à l'amélioration d'un modèle de test et d'analyse qui permettrait d'utiliser toute la puissance des boîtes à outils et la liberté des actions MATLAB lors de la création de stratégies commerciales propres, Des tests et les données obtenues et leur analyse ultérieure choisiraient un portefeuille efficace de systèmes de négociation robustes. Par la suite, les webinaires Mathworks ont été mis à jour chaque année et progressivement introduit des éléments de plus en plus intéressants. Ainsi, le premier webinaire sur le trading par paires (arbitrage statistique) à l'aide de la Boîte à Outils Econométriques a eu lieu en 2010, bien que la Boîte à outils d'analyse et d'analyse soit restée la même. En 2013, Trading Toolbox de Mathworks est apparu qui a permis de connecter MATLAB à différents courtiers pour l'exécution de leurs applications. Bien qu'il y ait des solutions automatiques pour l'exécution des transactions, à partir de ce moment MATLAB pourrait être considéré comme un système d'élaboration de stratégies de négociation avec un cycle complet: du chargement de données à l'exécution de stratégies de trading automatisées. Pourquoi tous les Algotrader devaient-ils réinventer la roue? Cependant, Mathworks n'a pas offert une solution complète pour tester et analyser les stratégies. Les codes que vous pouviez tirer des webinaires étaient les seuls éléments d'un test complet du système et il était nécessaire de les modifier , Les personnaliser et les ajouter à l'interface graphique pour faciliter l'utilisation. Il fallait beaucoup de temps, ce qui posait une question: quelle que soit la stratégie, elle doit passer par le même processus de test et d'analyse, ce qui permettrait de le classer comme stable et utilisable. Pourquoi chaque algotrader devrait-il réinventer la roue et écrire Son propre code pour les stratégies de test appropriées dans MATLAB Ainsi, la décision a été prise de créer un produit qui permettrait d'effectuer l'ensemble du processus associé à l'essai et l'analyse des stratégies de trading algorithmique en utilisant une interface simple et conviviale. Tout d'abord, je voudrais répondre aux questions suivantes: Qu'est-il arrivé avec le blog 1. Jev Kuznetsov n'est pas le propriétaire plus Le blog a été acheté à notre ami, Jev Kuznetsov, qui a déménagé à son autre blog tradingwithpython. blogspot. Il a conclu que Python est meilleur que MATLAB pour la négociation, ce que je considère comme faux. MATLAB reste l'un des meilleurs logiciels au monde pour des fins de négociation algorithmique IMHO (j'ai quelques faits à ce sujet pour une discussion future). 2. Nous avons changé la marque A partir de ce moment, le blog sera appelé MatlabTrading, qui est beaucoup plus compréhensible en ce qui concerne les sujets qu'il comprendra. En outre, le nom de domaine a été changé en matlabtrading au lieu de matlab-trading. blogspot initial. Bien que l'ancien domaine fonctionne toujours redirection à partir du nom de domaine principal. Qu'est-ce qui arrivera au blog 1. Plus de posts et d'articles Nous espérons donner vie à ce blog en publiant des contenus pertinents une ou deux fois par semaine. Dans les premiers mois, nous publierons principalement les articles et les vidéos que nous avons déjà pour faciliter aux lecteurs que nous cherchions des informations sur une ressource et que nous ayons des liens croisés. Ensuite, nous avons des plans pour écrire des messages sur les aspects pratiques de la négociation algorithmique dans MATLAB. Comment créer des stratégies commerciales modernes automatiques telles que: arbitrage statistique paires trading moyen reversion marché neutre stratégies commerciales basées sur cointegration bollinger bandes kalman filtre etc pour les matières premières, les stocks et Forex. Stratégies de suivi des tendances avec Jurik Moyenne mobile et autres filtres numériques sophistiqués Stratégies de prévision avec l'apprentissage automatique (Support Vector Machines) et d'autres méthodes Création de stratégies commerciales robustes à l'aide de la gestion visuelle de l'argent pour réinvestir votre capital (science sur comment obtenir 1M de 10K Dans une année avec des récompenses maximales, mais estimées de risque et de sueur). Peut-être après avoir lu ce que vous avez pensé que ce sera un autre article stupide pour ces pauvres gars cherchant comment devenir riche par le commerce sur le forex et tout cela. Eh bien, c'est totalement faux Nous travaillons dans MATLAB, et la majorité d'entre nous sont des scientifiques et des experts dans cet aspect donc tout est sérieux. 2. Plus d'interactivité Je serai heureux si nous pouvons tous relier par des commentaires dans les messages. Abonnez-vous à nos nouvelles pour vous alerter sur les nouveaux messages et événements. Plus tard, nous avons l'intention de créer des webinaires Google Hangouts. Ne le manquez pas, cliquez sur le bouton Suivre dans le coin supérieur droit pour rejoindre notre communauté. Que voulez-vous lire dans nos articles de blog Quels sujets pouvez-vous suggérer Veuillez écrire ici dans les commentaires. Dans mon précédent post, je suis arrivé à la conclusion que la négociation de paires étroites à proches n'est pas aussi rentable qu'auparavant qu'auparavant. Un lecteur a souligné qu'il pourrait être que la nature de la réversion moyenne des spreads a simplement évolué vers des délais plus courts . Je partage la même idée, alors j'ai décidé de tester cette hypothèse. Cette fois, une seule paire est testée: 100 SPY vs -80 IWM. Le backtest est effectué sur des données de bar de 30 secondes du 11.2011 au 12.2012. Les règles sont simples et semblables à la stratégie que j'ai testé dans le dernier message: si le retour de la paire de la paire dépasse 1 sur z-score, le commerce de la barre suivante. Le résultat semble très joli: je considérerais ceci comme une preuve suffisante qu'il ya encore beaucoup de réversion moyenne sur une échelle de 30 secondes. Si vous pensez que ce tableau est trop beau pour être vrai, c'est malheureusement le cas. Aucun coût de transaction ni écart bid-ask n'ont été pris en compte. En fait, je dirais qu'il n'y aurait plus de profit après avoir soustrait tous les coûts de transaction. Pourtant, ce genre de graphiques est la carotte qui pendent devant mon nez, me gardant en cours. Mauvaise nouvelle tout le monde, selon mes calculs, (que j'espère sincèrement sont incorrects) le commerce des paires classique est mort. Certaines personnes seraient fortement en désaccord, mais voici ce que j'ai trouvé: Laisse prendre une stratégie hypothétique qui fonctionne sur un panier de etfs: SPY, XLY, XLE, XLF, XLI, XLB, XLK, IWM, QQQ, DIA Paires peuvent être faites. Chaque paire est construite comme une propagation neutre sur le marché. Règles de la stratégie: Chaque jour, pour chaque paire, calculez le z-score basé sur l'écart-type de 25 jours. Si z-score gt seuil, aller court, fermer le lendemain Si z-score lt-seuil aller long, fermer le lendemain Pour garder tout simple, le calcul se fait sans gestion du capital (on peut avoir jusqu'à 90 paires en portefeuille Sur chaque jour). Les coûts de transaction ne sont pas pris en compte non plus. Pour simplifier, cette stratégie permet de suivre la nature moyenne des spreads de marché neutres d'une journée. Voici les résultats simulés pour plusieurs seuils: Quel que soit le seuil utilisé, la stratégie est très rentable en 2008, assez bonne au cours de 2009 et totalement sans valeur à partir de début 2010. Ce n'est pas la première fois que je suis tombé sur ce changement de moyen-reverting Comportement en etfs. Peu importe ce que j'ai essayé, je n'ai pas eu de chance de trouver une stratégie de négociation de paires qui fonctionnerait sur les ETFs passé 2010. Mon conclusion est que ces types de modèles simples stat-arb seulement ne pas couper plus.
No comments:
Post a Comment