Friday, 13 January 2017

Moyenne Simple Déplacement Du Code

MetaTrader 4 - Indicateurs Moyennes mobiles, indicateur MA pour MetaTrader 4 L'indicateur technique de moyenne mobile indique la valeur moyenne du prix de l'instrument pour une certaine période de temps. Quand on calcule la moyenne mobile, on fait la moyenne du prix de l'instrument pour cette période. À mesure que le prix change, sa moyenne mobile augmente ou diminue. Il existe quatre types différents de moyennes mobiles: Simple (également appelé arithmétique), exponentiel, lissé et linéaire pondéré. Les moyennes mobiles peuvent être calculées pour tout ensemble de données séquentiel, y compris les prix d'ouverture et de clôture, les prix les plus élevés et les plus bas, le volume des transactions ou tout autre indicateur. C'est souvent le cas lorsque l'on utilise des moyennes mobiles doubles. La seule chose où les moyennes mobiles de différents types divergent considérablement l'une de l'autre, est quand les coefficients de poids, qui sont affectés aux dernières données, sont différents. Dans le cas où nous parlons de moyenne mobile simple, tous les prix de la période en question, sont de valeur égale. Les moyennes mobiles exponentielles et linéaires pondérées attachent plus de valeur aux derniers prix. La façon la plus courante d'interpréter la moyenne mobile des prix est de comparer sa dynamique à celle du prix. Lorsque le prix de l'instrument s'élève au-dessus de sa moyenne mobile, un signal d'achat apparaît, si le prix tombe en dessous de sa moyenne mobile, ce que nous avons est un signal de vente. Ce système de négociation, basé sur la moyenne mobile, n'est pas conçu pour fournir une entrée sur le marché juste à son point le plus bas, et sa sortie à droite sur le pic. Il permet d'agir selon la tendance suivante: acheter peu après que les prix atteignent le fond, et vendre peu de temps après que les prix aient atteint leur sommet. Moyenne mobile simple (SMA) Simple, en d'autres termes, la moyenne mobile arithmétique est calculée en additionnant les prix de la fermeture de l'instrument sur un certain nombre de périodes simples (par exemple, 12 heures). Cette valeur est ensuite divisée par le nombre de ces périodes. SMA SUM (FERMER, N) N Où: N est le nombre de périodes de calcul. Moyenne mobile exponentielle (EMA) La moyenne mobile exponentiellement lissée est calculée en ajoutant la moyenne mobile d'une certaine part du cours de clôture actuel à la valeur précédente. Avec des moyennes mobiles exponentiellement lissées, les derniers prix sont plus intéressants. La moyenne mobile exponentielle de P-pourcentage ressemblera à: Où: CLOSE (i) le prix de la période courante fermeture EMA (i-1) Moyenne mobile exponentielle de la période précédente fermeture P le pourcentage d'utilisation de la valeur du prix. Moyenne mobile lissée (SMMA) La première valeur de cette moyenne mobile lissée est calculée comme étant la moyenne mobile simple (SMA): SUM1 SUM (CLOSE, N) La seconde et les moyennes mobiles suivantes sont calculées selon cette formule: Où: SUM1 est le Somme des prix de clôture pour N périodes SMMA1 est la moyenne mobile lissée de la première barre SMMA (i) est la moyenne mobile lissée de la barre courante (sauf pour la première) CLOSE (i) est le prix de clôture actuel N est le Période de lissage. Moyenne mobile pondérée linéaire (LWMA) Dans le cas de la moyenne mobile pondérée, les données les plus récentes sont plus utiles que les données plus anciennes. La moyenne mobile pondérée est calculée en multipliant chacun des cours de clôture dans la série considérée, par un certain coefficient de pondération. SOMME (i, N) SOMME (i, N) Où: SOMME (i, N) est la somme totale des coefficients de pondération. Les moyennes mobiles peuvent également être appliquées aux indicateurs. C'est là que l'interprétation des moyennes mobiles des indicateurs est semblable à l'interprétation des moyennes mobiles de prix: si l'indicateur dépasse la moyenne mobile, cela signifie que le mouvement ascendant des indicateurs devrait se poursuivre: si l'indicateur tombe en dessous de sa moyenne mobile, Signifie qu'il est susceptible de continuer à aller vers le bas. Voici les types de moyennes mobiles sur le graphique: Moyenne mobile simple (SMA) Moyenne mobile exponentielle (EMA) Moyenne mobile lissée (SMMA) Moyenne mobile pondérée linéaire (LWMA) Copiez et collez le code ci-dessus dans votre environnement de développement dans Tradestation ou MultiCharts Comme indicateur. Ensuite, cliquez sur compiler, ou vérifier. Ce code détecte si le cours de clôture aujourd'hui est supérieur ou inférieur au cours de clôture d'hier. (Cela peut être mis sur les graphiques quotidiens ou les graphiques de minutes et le close1 se réfère à la barre précédente ou la journée précédente) Si vous avez tapé close2, il se référerait à la fermeture de 2 jours ou des barres au lieu de cela. Nous avons ensuite la somme des dernières barres (longueur 20). Pour voir comment cela fonctionne, vous pouvez changer cette ligne de code plot1 (summove, quotup-downcountquot) sur cette parcelle1 (move, quotup-downcountquot). Ensuite, cliquez sur compiler. Vous pouvez alors voir votre indicateur tracer une ligne qui est soit 1, -1 ou 0 Les entrées écrites en haut représentent des valeurs qui peuvent être modifiées par l'utilisateur lors du traçage de l'indicateur sur le graphique. Une fois que vous tracez l'indicateur dans sa forme originale, vous pouvez modifier la longueur à 50 ou 20 ou 100 pour voir comment il affecte le tracé. Les variables sont indiquées ici comme quotvarsquot et ce sont des valeurs que j'ai créées pour stocker les valeurs fournies par les 3 lignes de code en commençant si fermer. Et la variable summove. Summove sommation (move, length) Cela signifie que le summove variable est créé en additionnant la somme des dernières 20 barres (ou période de longueur) avec toutes les valeurs 1 et -1 et 0. Vous pouvez expérimenter en jouant avec des valeurs différentes. Débutants exemple no2 (Pourcentage de pondération ajustable moyenne mobile mélangée) moyenne lente (close, length1) moyenne rapide (close, length2) si valeur1lt0 puis valeur10 si valeur1gt1 puis valeur11 Vous pouvez lire le code ci-dessus avant de créer cet indicateur et voir si vous pouvez le voir Ce qu'il fait Il ya deux moyennes mobiles utilisées avec une longueur lente de 50 et une longueur rapide de 20, l'entrée appelée facteur est réglable pour affecter une pondération à chacun. Si le facteur est réglé à 0,5, il ajoute 50 de la moyenne lente à 50 de la moyenne rapide et crée une moyenne combinée de la période deux. Pour voir les valeurs maximales du facteur de réglage moyen lent à 1, pour voir le graphique construit entièrement avec la moyenne plus rapide, vous pouvez définir le facteur 0. Vous pouvez expérimenter des valeurs comme 0,1 et 0,9 pour voir les effets des ajustements à la pondération. Si vous utilisez le nom value1 ou value2 ou la valeur 99 comme variables, vous n'avez pas besoin de déclarer les noms de ces derniers dans la partie supérieure. Value2 1-factor est un moyen très soigné d'obtenir 2 variables pour assigner automatiquement 1 d'une partie et 99 d'autre part donc quand ajouté ils seront toujours 100 Limiter l'erreur d'utilisateur en restreignant des entrées en faisant les variables les lire. (Le code pour value1 fait ceci après avoir lu l'entrée de facteur) Code tricks to try Si vous regardez les variables lentes et rapides, vous verrez qu'ils utilisent les deux moyennes (moyenne est ce code signifie moyen simple). Vous pouvez essayer de faire le lent dans une moyenne pondérée ou une moyenne exponentielle et de les mélanger pour faire votre propre combinaison moyenne combinée. Débutants exemple no3 (Indicateur de tendance binaire simple) si moyenne (close, fastlength) gt moyenne (close, slowlength) puis commence binarytrend1 end else binarytrend -1 Cet indictor décide de la tendance quotbinaryquot qui la convertit en un nombre. Ainsi, la tendance haussière 1 baisse -1 et la valeur initiale est affectée comme 0. Si vous tracer la moyenne mobile de 80 périodes et la moyenne mobile période 12 sur le graphique, vous pouvez vérifier l'indicateur de tendance fonctionne. Utilisation des instructions end else pour réduire la longueur du code. EG ci-dessus suppose que si la tendance n'est pas 1 alors elle doit être -1. Code astuces à essayer Si vous essayez d'utiliser une autre méthode pour attribuer la tendance est vers le haut ou vers le bas et de remplacer le code avec votre idée. PAR EXEMPLE. Vous utilisez l'oscillateur stochastique avec au-dessus de 50 étant tendance à la hausse et en dessous de 50 étant tendance à la baisse. L'égal à 50 peut être pris en disant cela. Si stochastique est gt50 alors compter comme tendance haussière (psuedo code) Débutants exemple no4 (Simple longueur ajustement algorithme) si close plus haut (close, basiclength) ou close lower (close, basiclength) then begin moniteur monitor1-1 end else monitormonitor10.5 if monitor Lt minlength puis moniteur minlength si moniteur gt maxlength puis moniteur maxlength C'est la première étape de faire un algorithme pour contrôler la longueur appliquée à un indicateur. Vous pouvez voir que si vous tracez cet indicateur dans le sous-graphe 2 il est compris entre 50 et 10 qui sont les longueurs max et min autorisées. (Mais ce sont des entrées réglables) Si le prix fait une nouvelle haute ou basse pour la période de longueur de base il ralentira par 1 incrément de longueur pour chaque barre que la condition est vraie. Si le prix ne fait pas un nouveau haut ou bas pour la même période, il réduira la longueur de 0.5 incrément de longueur pour chaque barre de la condition est vraie. Trucs de code à essayer Si vous essayez de modifier les valeurs de -1 et de 0,5 à des quantités plus grandes ou plus petites, vous pouvez l'ajuster à vos besoins. Ci-dessous je vais vous montrer comment construire ce code dans un indicateur de changement de longueur. Débutants exemple n ° 5 (longueur simple de la moyenne mobile pondérée) si close plus proche (close, basiclength) ou close lower (close, basiclength) then begin moniteur monitor1-1 end else monitormonitor10.5 si monitor lt minlength puis moniteur minlength si monitor gt maxlength then Monitor maxlength Vous pouvez voir qu'une autre variable a été ajoutée qui est une moyenne mobile pondérée et le truc ici est de remplacer le champ habituel de longueur par le moniteur algorithme qui est le réglage de la longueur appliquée. Trucs de code à essayer Si vous tracez une moyenne pondérée de 20 périodes à côté de celle-ci sur le sous-graphe un. Vous pouvez voir comment le code au-dessus de la longueur changeant la moyenne est plus lente à une certaine période et plus rapidement dans d'autres périodes. L'indicateur ci-dessus est placé dans le sous-graphe n ° 1 superposé au prix. Exemple code n ° 4 est placé en sous 2. Vous pouvez observer l'algorithme de changement de longueur en action et voir comment il affecte la vitesse de la moyenne pondérée. Débutants exemple no6 (Comment éviter les divisions par zéro erreurs) La division par zéro est un problème fréquent de programmation. La réponse est toujours l'infini, donc nous devons empêcher n'importe quoi d'être divisé par zéro en premier lieu. Il y a deux façons de le faire. Si value1 0 alors valeur1value10.0000000001 Nous ajoutons simplement un nombre minuscule, qui est si petit qu'il ne fera pas trop de différence pour les sorties. Si valeur1 ltgt 0 puis valeur2 valeur3 valeur1 Cela force l'ordinateur à demander si la valeur 1 est 0 ou non avant d'effectuer ses calculs. Si elle est 0, elle renverra la valeur par défaut qui a été affectée à valeur1 dans les variables lorsque vous l'avez créé. Débutants exemple no7 (Comment utiliser la transformation de Fisher) Je ne suis pas certain de la solution correcte, car puisque la somme de la moyenne de chaque échantillon introduirait une bonne quantité d'erreur d'arrondi. Hmm. Je me demande si la séparation de la partie fractionnaire de la partie entière serait utile. Divisez la partie entière de chaque nombre par le comte. Gardez trois sommes courantes: 1) la moyenne des parties entières, 2) le reste de chaque division, et 3) la partie fractionnaire de chaque nombre. Chaque fois que la partie entière d'un nombre est divisée, le résultat de la partie entière est ajouté à la somme courante moyenne et le reste est ajouté à la somme restante. Lorsque le reste de la somme courante obtient une valeur supérieure ou égale au compte, elle est divisée par le compte avec le résultat de la partie entière ajouté à la somme courante moyenne et le reste ajouté à la somme restante. De même, à chaque calcul, la partie fractionnaire est ajoutée à la somme de fonctionnement fractionnaire. Lorsque la moyenne est terminée, la somme restante de fonctionnement est divisée par le compte et le résultat est ajouté à la somme courante moyenne en tant que nombre flottant. Par exemple: Maintenant, que faire avec la somme de course fractionnaire. Le risque de débordement est beaucoup moins probable ici, bien que toujours possible, donc une façon de le gérer serait de diviser la somme de course fractionnaire par le compte à la fin et l'ajouter à notre résultat: Une alternative serait de vérifier la fractionnelle de fonctionnement Somme à chaque calcul pour voir si elle est supérieure ou égale au comptage. Lorsque cela se produit, il suffit de faire la même chose que nous faisons avec le reste somme courante. Excellent Jomit Vaghela 6-Mar-07 21:00 J'ai aimé ce que vous avez dit petits emplois rapidement se transformer en gros emplois. Penser à l'optimisation tout en codant est une bonne pratique. Grand effort et explication, merci Mike DiRenzo 5-Mar-07 16:26 C'est la première fois que je réponds à l'un de vos articles. Je suis pourtant un lecteur très avide. Pendant que j'étais au collège, j'ai dû calculer des moyennes mobiles pondérées et des moyennes simples aussi. Heck, j'ai même eu à créer certains de mes propres algorithmes de moyenne mobile dans une mise en œuvre ERP personnalisé il ya quelques temps basée sur certaines des formules que j'ai appris dans les opérations 101. Mais cette implémentation, en utilisant Generics, surpasse tout en termes d'optimisation, La simplicité et la fraîcheur juste. Merci beaucoup pour cela. Un de vos nombreux fans, Dans le calme et le silence, la vérité est claire. Ewma gobgob 5-Mar-07 5:30 Si vous essayez de calculer une moyenne mobile simple, vous devez garder une collection, ce qui est assez complexe pour une tâche aussi simple. Que diriez-vous d'utiliser un ewma Ses 2 lignes de code, beaucoup plus simple. Re: ewma Marc Clifton 5-Mar-07 5:47 Comment utiliser un ewma Une idée intéressante. Pour les lecteurs qui ne savent pas ce qu'est un ewma, c'est une Moyenne mobile exponentielle pondérée. Les gens sont simplement notoirement impossible. --DavidCrow Theres Aucune excuse pour ne pas commenter votre code. - John Simmons proscrit programmeur Les gens qui disent qu'ils vont refactoriser leur code plus tard pour le rendre bon ne comprennent pas refactoring, ni l'art et l'artisanat de la programmation. - Josh Smith Re: ewma pwasser 5-Mar-07 13:21 Une estimation de la moyenne mobile si la taille du casier pour la moyenne mobile est n peut être obtenue par: Fonctionne une fois que le bac est plein (échantillon numéro n). Le casier partiellement plein est souvent traité en utilisant une valeur de semis pour la moyenne mobile initiale (OldAverage), puis en utilisant ce calcul. Cela suppose une distribution normale des valeurs, etc. Vous avez été occupé Colin Angus Mackay 4-Mar-07 12:37 Publier deux articles ce soir. Grand travail Je ne sais pas comment vous le faites. Ive a obtenu environ 4 ou 5 articles à moitié terminé et je juste ne semble jamais trouver le temps de les compléter. Bien. Peut-être que si je suis resté hors du salon Id gérer. Re: Youve été occupé Marc Clifton 4-Mar-07 14:25 Colin Angus Mackay a écrit: Publier deux articles ce soir. Grand travail Merci, j'étais en train de rédiger l'article sur la moyenne courante et j'ai réalisé que la liste circulaire serait effectivement un très bon article autonome. De plus, ils sont des articles légers. Je peux les lancer très vite. Son juste dur de penser de truc utile mais simple. Il s'avère que j'avais besoin de ces deux classes de toute façon. Les gens sont simplement notoirement impossible. --DavidCrow Theres Aucune excuse pour ne pas commenter votre code. - John Simmons proscrit programmeur Les gens qui disent qu'ils vont refactoriser leur code plus tard pour le rendre bon ne comprennent pas refactoring, ni l'art et l'artisanat de la programmation. - Josh Smith Re: Youve été occupé JeffPClark 8-Mar-07 1:07 D'après ce que j'ai lu de Marc, il a probablement un programme qui peut examiner un morceau de code et d'expliquer les détails complexes, puis le publier directement à Code Project . Jeff Clark Systems Architecte JP Clark, INC. Columbus, Ohio Dernière visite: 31-déc.-99 19:00 Dernière mise à jour: 16-Jan-17 10:21 Général Nouvelles Suggestion Question Bug Répondre Joke Praise Rant Admin Utilisez CtrlLeftRight pour commuter des messages, CtrlUpDown pour basculer des threads, CtrlShiftLeftRight pour changer de page.


No comments:

Post a Comment