Moyennes mobiles simples - Trading backtests Quels paramètres de moyenne mobile sont les meilleurs Ce site a un océan de moyenne mobile backtests que j'ai réalisé pour le DAX, SP500 et USDEU (Forex). Ces tests ont été réalisés en utilisant différentes stratégies de signalisation: simpleexponentielle et variantes de croisement et différents indices pour une période de 1000 jours de bourse. Contrairement à d'autres sites Web, j'ai testé toutes les valeurs moyennes des fenêtres quotidiennes de 1 à 1000 jours, pour les stratégies de cross-over également en combinaison. Ces données sont également unqiue car j'ai essayé d'effectuer des tests réalistes, simulant l'écart buysell et les taxes pour Comparaison avec une stratégie de référence (buy hold). Une valeur de fenêtre à réaction rapide semble bonne en théorie et avec un simple test. Mais la propagation, les taxes et les taxes détruiront toutes les performances dans l'application pratique. C'est pourquoi ces tests réalistes sont si précieux. J'espère que ce site peut vous aider avec vos métiers, profitez-en. Repérer un Crossover de moyenne mobile en Python avec des pandas Dans l'article précédent sur la recherche Backtesting Environnements Dans Python Avec Pandas nous avons créé un environnement de backtesting basé sur la recherche orienté objet et l'avons testé sur un aléatoire Stratégie de prévision. Dans cet article, nous allons utiliser les mécanismes que nous avons mis en place pour mener des recherches sur une stratégie réelle, à savoir le Crossover moyen mobile sur AAPL. Stratégie de croisement moyenne mobile La technique de crossover moyenne mobile est une stratégie de momentum simpliste extrêmement connue. Il est souvent considéré comme l'exemple Hello World pour le commerce quantitatif. La stratégie décrite ici est longue seulement. Deux filtres de moyenne mobile simple distincts sont créés, avec des périodes d'analyse différentes, d'une série temporelle particulière. Les signaux d'achat de l'actif se produisent lorsque la moyenne mobile de retour en arrière plus courte dépasse la moyenne mobile plus longue. Si la moyenne plus longue dépasse par la suite la moyenne plus courte, l'actif est vendu de nouveau. La stratégie fonctionne bien lorsqu'une série chronologique entre dans une période de tendance forte, puis renverse lentement la tendance. Pour cet exemple, j'ai choisi Apple, Inc. (AAPL) comme la série chronologique, avec un court retour de 100 jours et un lookback long de 400 jours. C'est l'exemple fourni par la bibliothèque de trading algorithmique zipline. Ainsi, si nous voulons mettre en œuvre notre propre backtester, nous devons nous assurer qu'il correspond aux résultats en zipline, comme un moyen de base de validation. Implémentation Assurez-vous de suivre le tutoriel précédent ici. Qui décrit comment la hiérarchie d'objet initiale pour le backtester est construite, sinon le code ci-dessous ne fonctionnera pas. Pour cette implémentation particulière, j'ai utilisé les bibliothèques suivantes: La mise en œuvre de macross. py nécessite le backtest. py du tutoriel précédent. La première étape consiste à importer les modules et objets nécessaires: Comme dans le didacticiel précédent, nous allons sous-classer la classe de base abstraite Stratégie pour produire MovingAverageCrossStrategy. Qui contient tous les détails sur la façon de générer les signaux lorsque les moyennes mobiles de AAPL se croisent. L'objet nécessite une fenêtre courte et une fenêtre longue sur laquelle fonctionner. Les valeurs ont été définies à des valeurs par défaut de 100 jours et 400 jours respectivement, qui sont les mêmes paramètres utilisés dans l'exemple principal de la tyrolienne. Les moyennes mobiles sont créées en utilisant la fonction rollingmaing pandas sur les barsFermer le cours de clôture du stock AAPL. Une fois que les moyennes mobiles individuelles ont été construites, la série de signaux est générée en plaçant la colonne égale à 1,0 lorsque la moyenne mobile courte est supérieure à la moyenne mobile longue ou 0,0 autrement. De là, les ordres de position peuvent être générés pour représenter des signaux de négociation. Le MarketOnClosePortfolio est sous-classé de Portfolio. Qui se trouve dans backtest. py. Il est presque identique à la mise en œuvre décrite dans le didacticiel précédent, à l'exception que les métiers sont maintenant effectués sur une base Close-to-Close, plutôt que Open-to-Open. Pour plus de détails sur la définition de l'objet Portfolio, reportez-vous au didacticiel précédent. Ive a laissé le code dedans pour l'intégralité et pour garder ce tutoriel autonome: Maintenant que les classes MovingAverageCrossStrategy et MarketOnClosePortfolio ont été définies, une fonction principale sera appelée pour attacher toutes les fonctionnalités ensemble. En outre, la performance de la stratégie sera examinée au moyen d'un graphique de la courbe de capitaux propres. L'objet DataReader de pandas télécharge les prix OHLCV des stocks d'AAPL pour la période du 1er janvier 1990 au 1er janvier 2002, date à laquelle les signaux DataFrame sont créés pour générer les signaux long seulement. Par la suite, le portefeuille est généré avec une base de capital initiale de 100 000 USD et les rendements sont calculés sur la courbe de capitaux propres. La dernière étape est d'utiliser matplotlib pour tracer un graphique à deux chiffres des deux prix AAPL, recouvert avec les moyennes mobiles et les signaux buysell, ainsi que la courbe d'équité avec les mêmes signaux buysell. Le code de traçage est pris (et modifié) à partir de l'exemple d'implantation de typo. La sortie graphique du code est la suivante. J'ai fait usage de la commande IPython coller pour mettre cela directement dans la console IPython alors que dans Ubuntu, de sorte que la sortie graphique reste en vue. Les upticks roses représentent l'achat du stock, alors que les downticks noirs représentent la vente de retour: Comme on peut le voir la stratégie perd de l'argent au cours de la période, avec cinq métiers de tour-aller. Cela n'est pas surprenant compte tenu du comportement de l'AAPL au cours de la période, qui a connu une légère tendance à la baisse, suivie d'une recrudescence significative à partir de 1998. La période de retour des signaux de la moyenne mobile est assez importante et a eu un impact sur le profit du commerce final , Qui autrement aurait pu rendre la stratégie rentable. Dans les articles suivants, nous allons créer un moyen plus sophistiqué d'analyser la performance, ainsi que la description de la façon d'optimiser les périodes de retour des signaux de moyenne mobile individuelle. Ceci est un test d'une autre stratégie de trading VIX de l'excellent Logical-Invest (voir notre précédente Test des bandes LI Bollinger). Celui-ci utilise des crossovers de moyenne mobile de 515 jours pour traiter des ETP VIX comme XIV (ou VXX court). Le graphique ci-dessous montre les résultats de la stratégie de négociation XIV (bleu), par rapport à l'achat et la détention XIV (gris), à partir de la mi-2004. Lisez les hypothèses de test. Ou obtenir de l'aide en suivant cette stratégie. Règles de la stratégie: Allez long XIV à la fermeture d'aujourd'hui si sa moyenne mobile simple de 5 jours (SMA) fermera au-dessus de sa SMA de 15 jours. Maintenez-la jusqu'à ce que son SMA de 5 jours se ferme en dessous de sa SMA de 15 jours, puis passez à l'encaisse. La stratégie (comme la variation de bande de Bollinger) est dans un rond point une stratégie de momentum. La stratégie est d'acheter XIV lorsque son montrant la force récente, et la tenue jusqu'à XIV remonte en dessous de sa moyenne à moyen terme. Notez que notre test différé diffère du test original Logical-Invests de trois façons: Le test LIs a débuté au début de 2009. Nous avons ajouté près de 5 ans de données simulées supplémentaires (1). LIs suppose que nous avons court-circuité VXX. Tandis que Ive a montré des résultats trading long XIV pour permettre une comparaison pommes-à-pommes avec d'autres backtests ici à Volatility Made Simple. LIs test a supposé que nous avons exécuté des métiers aux prochains jours ouverts, plutôt que à aujourd'hui fermer. Je teste à la fin car il n'existe pas de méthode fiable pour simuler les données pré-2009 pour l'open. Comme vous vous attendez intuitivement basé sur les règles strategys, il a fait un bon travail esquivant la plupart des retraits significatifs XIVs parce que son forcer la stratégie de l'argent lorsque XIV commence à se déplacer contre le commerçant, indépendamment de toutes les autres considérations comme l'état des futurs VIX Mais cette envie de quitter les positions rapidement laisse beaucoup de gains sur la table lorsque XIV est dans une tendance haussière constante (c.-à-VXX est dans une forte tendance à la baisse), comme cela a été le cas les 2 dernières années. La stratégie de bande de Bollinger que nous avons testée précédemment a aidé à répondre en rendant un peu plus difficile de sortir des positions (voir post pour plus de détails). Sur la base des tests beaucoup plus long Ive présenté ici, des deux variations, je préfère le groupe Bollinger un. Un grand merci à Logical-Invest pour avoir posté cette stratégie. Lorsque les stratégies que nous couvrons sur notre blog (y compris celui-ci) signalent de nouveaux métiers, nous incluons une alerte sur le rapport quotidien envoyé aux abonnés. Cela est totalement sans rapport avec notre propre strategys signal qu'il sert juste pour ajouter un peu de couleur au rapport quotidien et permet aux abonnés de voir ce que d'autres stratégies quantitatives disent sur le marché. Cliquez pour voir Volatility Made Simples possède une solution élégante au puzzle VIX ETP. Bon Trading, Volatilité Made Simple Note Wonk: Les données avant le lancement de XIV a été simulée. Nous avons été en mesure de le faire avec précision en utilisant une combinaison des indices et les futures données sur lesquelles est basée cette ETP. En savoir plus sur la simulation de données pour les ETP VIX. Catégories
No comments:
Post a Comment