Thursday, 2 February 2017

Quantstrat Forex Peace

Dans mon dernier message, j'ai parlé de l'utilisation de l'inégalité de Cauchy-Schwarz pour correspondre à des périodes similaires de l'histoire des prix à l'autre. Ce post traite des tests plus rigoureux de cette idée. J'ai décidé d'utiliser la taille de l'effet comme le test de choix, pour lequel il ya des introductions intéressantes ici et ici. Une description de base de la façon dont j'ai mis en œuvre le test est la suivante: - Choisissez aléatoirement une section de l'historique des prix, qui sera utilisé comme l'histoire des prix pour l'algorithme de sélection pour correspondre Prendre les 5 barres consécutives immédiatement après la section ci-dessus de l'historique des prix Et stocker en tant que cible Créer un groupe de contrôle de correspondances aléatoires à la cible ci-dessus en sélectionnant au hasard 10 pièces distinctes de 5 bar de l'historique des prix et en calculant les valeurs de Cauchy-Schwarz de ces 10 par rapport à la cible et enregistrer la valeur moyenne de ces valeurs. Répétez cette étape N fois pour créer une distribution de valeurs aléatoires de Cauchy-Schwarz à une cible moyenne au hasard. En vertu du théorème de la limite centrale, on peut s'attendre à ce que cette distribution soit approximativement normale. Utiliser l'algorithme d'appariement (comme décrit dans le post précédent) obtenir les 10 correspondances les plus proches dans l'historique des prix à la sélection aléatoire à partir de l'étape 1 Obtenir les 5 barres consécutives Immédiatement après les 10 matches de l'étape 4 et calculer leurs valeurs de Cauchy-Schwarz à savoir la cible et enregistrer la valeur moyenne de ces 10 valeurs. Cette valeur moyenne est la valeur expérimentale En utilisant la moyenne et l'écart-type de la distribution du groupe témoin à partir de l'étape 3, calculez la taille d'effet de la valeur expérimentale et enregistrez cette valeur de taille d'effet Répétez toutes les étapes ci - La prémisse de base qui est testée ici est que les modèles, dans une certaine mesure, répéter et qu'ils ont une certaine valeur prédictive pour suivre immédiatement les barres de prix. La statistique de test utilisée est la valeur de Cauchy-Schwarz elle-même, une valeur élevée indiquant une similitude étroite dans la structure des prix et donc la prévisibilité. Le test de taille de l'effet réel est la différence entre les moyens. Le code pour implémenter ce test est donné dans la zone de code ci-dessous, et est essentiellement une extension du code dans mon post précédent. Résultats L'exécution du code sur la paire de devises EURUSD et les histogrammes de tracé donnent ceci: où les figures 1 et 2 sont pour les valeurs de Cauchy-Schwarz et les figures 3 et 4 sont des valeurs de corrélation Distance à des fins de comparaison et que je ne discuterai pas dans ce post. En voyant cela pour la première fois, j'ai été quelque peu surpris car je m'attendais à ce que la distribution des tailles d'effet soit approximativement normale car tous les calculs d'essai sont basés sur des moyennes. Cependant, il a été une agréable surprise en raison de la crête de valeurs à droite, montrant une taille d'effet substantielle possible. Pour plus de clarté, voici les percentiles des quatre histogrammes ci-dessus: où la première colonne contient les percentiles et les 2ème, 3ème, 4ème et 5ème colonnes correspondent aux figures 1, 2, 3 et 4 ci-dessus et contiennent les valeurs de taille d'effet . En regardant la 1ère colonne, on peut voir que si l'échelle de Cohens est appliquée, plus de 50 des valeurs de taille d'effet peuvent être décrites comme étant importantes, 15 approximativement étant d'effet moyen. Dans l'ensemble, un test réussi, qui m'encourage à adopter l'inégalité de Cauchy-Schwarz, mais avant moi, il ya un ou deux ajustements supplémentaires que je voudrais tester. Ce sera l'objet de mon prochain post. Dimanche, 6 avril 2014 Dans mon post précédent, j'ai dit que je cherchais dans mon code pour le cycle dominant. Principalement en vue d'améliorer mon code ou peut-être de le remplacer par une autre méthode de calcul de la période de cycle. À cette fin, je me suis inscrit récemment à un système de signaux discrets et de systèmes offerts par edx. L'une des conférences portait sur l'inégalité de Cauchy-Schwarz. Qui est ce que ce poste est d'environ. L'utilisation de base que j'ai à l'esprit est d'utiliser l'inégalité pour sélectionner des sections de l'histoire des prix qui sont les plus proches les uns des autres et les utiliser comme des cas de formation pour la formation des réseaux neuronaux. Mon code Octave initial est donné dans la zone de code ci-dessous: - Après un code de base de ménage pour charger le fichier de prix d'intérêt et de normaliser les prix, une section aléatoire de l'historique des prix est sélectionné, puis, dans une boucle, Dans l'histoire sont trouvés en utilisant l'inégalité comme la métrique pour l'appariement. Une valeur de 0 signifie que les séries de prix comparées sont orthogonales. Et donc aussi différents les uns des autres que possible, tandis qu'une valeur de 1 signifie le contraire. Il existe deux types de correspondance entre le prix brut et le prix brut, et un prix lissé assorti au prix lissé. Tout d'abord, bien que le code ci-dessus sélectionne au hasard une section de l'histoire des prix à correspondre, je délibérément main a choisi une section à correspondre à des fins d'illustration dans ce post. Ci-dessous la section où la section se termine au point où le curseur vertical croise le prix et commence à la hauteur juste au-dessous du curseur horizontal, pour une période de retour de 16 bars. Pour le contexte, voici une vue agrandie. J'ai choisi cette section parce qu'elle représente un ensemble difficile de prix, c'est-à-dire de se déplacer latéralement à la fin d'un retracement et peut-être de réagir à une basse précédente en tant que résistance, ainsi que dans une zone de retracement de Fibonacci. Le premier ensemble de sorties de code est ce graphique qui montre les valeurs de Cauchy-Schwarz pour toute la gamme de la série de prix, le volet supérieur étant les valeurs pour l'appariement des prix bruts et le volet inférieur étant l'égalisation des prix lissée. Notez que dans le code les valeurs sont mises à zéro après que la fonction max a sélectionné la meilleure correspondance et que les pointes vers le bas à zéro montrent les points dans le temps où le N supérieur, dans ce cas 10, les correspondances ont été prises. Le graphique suivant montre les prix normalisés auxquels on compare l'appariement, le cyan étant l'échantillon original (le même dans tous les sous-plans), le rouge étant le prix brut et le jaune étant le prix lissé. La correspondance la plus rapprochée est la sous-trame supérieure gauche, puis la lecture horizontale et la 10e meilleure dans l'arborescence inférieure droite. Le graphique suivant illustre les concordances de prix non normalisées, pour l'égalisation des prix bruts, avec l'échantillon d'origine étant le bleu, et ensuite pour l'appariement lissé, et enfin, côte à côte pour une comparaison visuelle facile. N. b. Pour toutes les parcelles lissées ci-dessus, bien que l'appariement soit effectué sur des prix lissés, les prix bruts et lissés de ces allumettes sont tracés. Après avoir représenté tout ce qui précède, le code imprime à la borne quelques détails ainsi: lookback 16 résultats 0,95859 0,98856 0,89367 0,86361 0,95733 0,98753 0,93175 0,86839 0,95589 0,98697 0,87398 0,67945 0,95533 0,98538 0,85346 0,83079 0,95428 0,98293 0,92912 0,77225 0,94390 0,98292 0,79350 0,66563 0,93908 0,98150 0,71753 0,77458 0,93894 0,97992 0,86839 0,72492 0,93345 0,97969 0,74456 0,79060 0,93286 0,97940 0,86361 0,61103 qui, par colonne, sont les valeurs de Cauchy-Schwarz pour l'appariement des prix bruts et la concordance des prix lissés et les valeurs de corrélation Distance pour l'appariement des prix bruts et le lissage respectivement. Le code utilisé pour calculer la corrélation Distance est donné ci-dessous. Ces résultats se révèlent prometteurs, et j'ai l'intention d'appliquer un test plus rigoureux pour eux pour le sujet d'un poste à venir. Une nouvelle méthode pour mesurer instantanée FrequencyPeriods Quelques posts il ya j'ai déclaré que je réévaluais mon code de cycle dominant et à cette fin I Ont fait un peu de recherche sur le web et ont trouvé des trucs vraiment cool, comme le travail OctaveMATLAB code pour Empirical Mode Decomposition. disponible ici. Et un couple de boîtes à outils ici et ici. Cependant, le but de ce post est d'introduire une nouvelle idée qui est inspirée par une thèse de maîtrise, rédigé par Yizheng Liao. La grande idée contenue dans cette thèse est la mesure de fréquence instantanée en ligne par la mesure des passages à zéro d'un signal et sa transformation de Hilbert. Autrement appelé signal analytique. Une démonstration simple est montrée ci-dessous où la ligne cyan est le signal original (partie réelle) et rouge la transformation de Hilbert (partie imaginaire) d'un signal d'onde sinusoïdale bruyante. La transformée de Hilbert de sin (x) est - cos (x), qui est l'équivalent de sin (x-90) en utilisant des degrés plutôt que la notation radian pour la phase de x. Puisque nous pouvons retarder la phase par n'importe quelle quantité, il est possible d'avoir un tableau de retards de phase pour produire plus de passages à zéro par période de cycle complet que seulement les 4 qui se produisent avec le signal analytique seulement. Ceci est montré ci-dessous où, comme précédemment, le cyan est le signal d'onde sinusoïdale bruyante, le bleu foncé est le signal d'onde sinusoïdale lisse original auquel le bruit est ajouté, le rouge est l'onde sinusoïdale mesurée extraite du signal bruyant et le vert , Les lignes magenta et jaune sont des tracés sinus de la phase du sinus rouge retardée de 30, 60, 90, 120, 150 et 180 degrés. Cette dernière ligne de retard de 180 degrés est réellement superflue car elle traverse la ligne zéro en même temps que le signal original, mais je le montre juste pour l'exhaustivité. La ligne du curseur blanc indique la ligne zéro et le début d'un cycle complet. En plus d'être capable d'augmenter le nombre de passages à zéro mesurables, un autre avantage que je peux voir de l'utilisation de cette méthode d'extraction sinusoïdale est que les ondes sinusoïdales extraites sont beaucoup plus lisses que le signal analytique, Traversées de lignes d'hystérésis (lecture du papier), évitant tout retard dû à l'attente pour traverser lesdites lignes d'hystérésis. Pour ceux qui sont intéressés, l'indicateur sinusoïdal que j'ai utilisé pour cela est John Ehlers indicateur d'onde sinusoïdale, une belle exposition de ce qui est ici et le code disponible ici. Plus de détails à ce sujet en temps voulu.


No comments:

Post a Comment