Im très nouveau à R et essayer de backtest une stratégie Ive programmé déjà dans WealthLab. Plusieurs trucs que je ne comprends pas (et il ne marche pas évidemment :) Je ne reçois pas les prix proches bien dans un vecteur. Ou une sorte de vecteur, mais il commence par la structure et je ne comprends vraiment pas ce que fait cette fonction. C'est pourquoi ma série, un appel ne fonctionne probablement pas. N lt - nrow (série) ne fonctionne pas non plus, mais j'ai besoin que pour la Loop Donc je suppose que si je reçois Ces 2 questions répondues ma stratégie devrait fonctionner. Im très reconnaissants pour toute aide .. R semble assez compliqué, même avec l'expérience de programmation dans d'autres langues oui I Kind de copié quelques lignes de code de ce tutoriel et don39t vraiment comprendre cette ligne. Je veux dire série, 1 je pensais appliquer la fonction f sur quotcolumnquot 1 de la série. Mais puisque cette série est une certaine complétude avec la structure etc. elle ne fonctionne pas. I39m parler de ce tutoriel: r-bloggersbacktesting-a-trading-stratégie ndash MichiZH Jun 6 13 à 14: 22C'est le troisième post dans le Backtesting dans Excel et série R et il montrera comment backtest une stratégie simple dans R. It Suivra les 4 étapes Damian décrit dans son post sur la façon de backtest une stratégie simple dans Excel. Étape 1: Obtenez les données La fonction getSymbols dans quantmod rend cette étape facile si vous pouvez utiliser les données quotidiennes de Yahoo Finance. Il existe également des méthodes (non au sens strict) pour extraire des données provenant d'autres sources (FRED, Google, Oanda, R sauvegarder des fichiers, des bases de données, etc.). Vous pouvez également les utiliser comme modèle pour écrire une fonction personnalisée pour un fournisseur particulier que vous utilisez. Exécutez la commande ci-dessous si le fichier quantmod n'est pas déjà installé utilisez le paquet quantmod (charge TTR, xts et zoo) extrait les données SPX de Yahoo (getSymbols renvoie un objet xts) Étape 2: Créez votre indicateur Le paquetage TTR contient une multitude d'indicateurs. Les indicateurs sont écrits pour faciliter la combinaison de façon créative et non conventionnelle. À partir de la révision 106 sur R-forge, TTR a un indicateur DVI. Calculer l'indicateur DVI dvi lt - DVI (Cl (GSPC)) Cl () extrait la colonne close price Étape 3: Construisez votre règle de négociation Puisque cette règle de négociation est simple - étaient longs 100 si le DVI est inférieur à 0,5 et court 100 autrement - - il peut être écrit en une seule ligne. Des règles plus élaborées et / ou des positions de positionnement peuvent également être effectuées, mais nécessitent plus de code (RSI (2) avec Position Sizing est un exemple de règles de dimensionnement de position plus complexes). Notez également que le vecteur de signal est retardé, ce qui évite le biais prospectif. (Si vous avez un signal DVI inférieur ou égal à 0.5), laissez le signal d'hier est appliqué à l'état de retour d'aujourd'hui. Comme dans l'exemple Damians, le code ci-dessous est une approche simplifiée qui est sans friction et ne tient pas compte du glissement. Le code ci-dessous prend le pourcentage de retour d'aujourd'hui et le multiplie par la taille de la position du signal d'hier (toujours - 100 dans cet exemple). Je sous-ensemble également le retour du système pour correspondre aux résultats dans le fichier Excel. Calculer les retours basés sur le signal ret lt - ROC (Cl (GSPC)) le sous-ensemble sig retourne pour correspondre aux données dans le fichier Excel ret lt - ret2009-06-022010-09-07 Étape 5: Évaluer la performance de la stratégie Damian a mentionné l'importance d'évaluer votre stratégie . Heureusement pour les utilisateurs de R, le package PerformanceAnalytics facilite cette tâche. Avec quelques lignes de code, nous pouvons visualiser les tirages, les risques à la baisse et un résumé des performances. Utiliser le tableau PerformanceAnalytics créer un tableau montrant les statistiques de tirage créer un tableau des courbes d'estimation des risques à la baisse, la performance quotidienne et les tirages C'est tout ce qu'il ya de backtesting une stratégie simple dans R. Ce n'était pas intimidant, c'était S'il vous plaît laissez un commentaire si youre déplacement de votre Backtesting d'Excel à R et theres quelque chose youre accroché sur ou vous avez un tip que vous aimeriez partager. Heres une version succincte du code dans le post ci-dessus si vous voulez être capable de copier collez-le tout dans un bloc: Backtesting une stratégie de négociation Simple Stock Remarque: Ce message n'est pas des conseils financiers C'est juste une façon amusante d'explorer certains Les capacités R ont pour l'importation et la manipulation des données. J'ai récemment lu un post sur le Prophète ETF qui a exploré une stratégie de négociation boursière intéressante dans Excel. La stratégie est simple: Trouver le point culminant du stock au cours des 200 derniers jours, et compter le nombre de jours qui se sont écoulés depuis cette haute. Si son été plus moins de 100 jours, posséder le stock. Si elle a été plus de 100 jours, don8217t le posséder. Cette stratégie est très simple, mais elle donne des résultats impressionnants. (Notez toutefois que cet exemple utilise des données qui n'ont pas été ajustées à partir de splits ou dividendes et pourraient contenir d'autres erreurs.) En outre, nous ignorons les coûts de négociation et les retards d'exécution, Et fournit de nombreux avantages sur excel, dont le principal est que tirant des données boursières dans R est facile, et nous pouvons tester cette stratégie sur un large éventail d'index avec relativement peu d'effort. Tout d'abord, nous téléchargons des données pour GSPC en utilisant quantmod. (GSPC représente l'indice SampP 500). Ensuite, nous construisons une fonction pour calculer le nombre de jours depuis le sommet d'un jour dans une série chronologique et une fonction pour mettre en œuvre notre stratégie de négociation. Cette dernière fonction prend 2 paramètres: la hauteur de n jours que vous souhaitez utiliser, et le nombre de jours passé que haute, vous tiendrez le stock. L'exemple est 200 et 100, mais vous pouvez facilement changer cela à la haute de 500 jours et de voir ce qui se passe si vous détenez le stock 300 jours avant que le renflouement. Comme cette fonction est paramétrée, nous pouvons facilement tester de nombreuses autres versions de notre stratégie. Nous amorçons le début de notre stratégie avec des zéros de sorte qu'il sera la même longueur que nos données d'entrée. (Si vous souhaitez une explication plus détaillée de la fonction daysSinceHigh, voir la discussion sur la validation croisée). Nous multiplions notre position (0,1) vecteur par les rendements de l'indice pour obtenir notre stratégie817s retourne. Maintenant, nous construisons une fonction pour retourner quelques statistiques sur une stratégie de négociation, et de comparer notre stratégie à la référence. Un peu arbitrairement, j'ai décidé de considérer le rendement cumulatif, le rendement annuel moyen, le ratio de sharpe, le gain, la volatilité annuelle moyenne, le retrait maximal et le retrait maximal de la longueur. D'autres stats seraient faciles à mettre en œuvre. Comme vous pouvez le constater, cette stratégie se compare favorablement à l'approche par défaut 8220buy-and-hold8221. Enfin, nous testons notre stratégie sur trois autres indices: FTSE qui représente l'Irlande et le Royaume-Uni, l'Indice Industriel Dow Jones. Qui remonte à 1896, et le N225. Qui représente le Japon. I8217ve a fonctionnalisé tout le processus, de sorte que vous pouvez tester chaque nouvelle stratégie avec 1 ligne de code: Ne manquez jamais une mise à jour Abonnez-vous aux R-bloggers pour recevoir des courriels avec les derniers messages R. (Vous ne verrez plus ce message.)
No comments:
Post a Comment