[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 202

 

Je regarde le code de l'indicateur standard de la moyenne mobile.

Je suis arrivé à la fonction :

//+------------------------------------------------------------------+
//| Exponential Moving Average                                       |
//+------------------------------------------------------------------+
void ema()
  {
   double pr=2.0/(MA_Period+1);
   int    pos=Bars-2;
   if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
   while(pos>=0)
     {
      if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
      ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);
           pos--;
     }
  }

La variable pr est juste un coefficient sorti de la boîte ? Pourquoi 2,0 /(MA_Period+1) ?

De plus, je vois qu'elle n'est activée que si j'ai décompté 2 barres... où est la logique dans cette situation ?

Et ici :

ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);

Somme de la valeur des 2 derniers cours de clôture, multipliée par des coefficients. Pourquoi ? Quelle est la logique ici ? Le dernier prix a été dominé par pr et l'avant-dernier prix par (1-pr).

Que donne-t-il ? Je veux comprendre en profondeur le principe de fonctionnement de la machine,

 
hoz:

Je regarde le code de l'indicateur standard de la moyenne mobile.

Je suis arrivé à la fonction :

La variable pr est juste un coefficient sorti de la boîte ? Pourquoi 2,0 /(MA_Period+1) ?

De plus, je vois qu'elle n'est exécutée que si je n'ai pas calculé 2 barres... où est la logique dans cette situation ?

Et ici :

Somme de la valeur des 2 derniers cours de clôture, multipliée par des coefficients. Pourquoi ? Quelle est la logique ici ? Le dernier prix a été dominé par pr et l'avant-dernier prix par (1-pr).

Que donne-t-il ? Je veux comprendre en profondeur le principe de fonctionnement de la machine,

Victor, expérimente en remplaçant pr par une valeur numérique. Disons que si la période MA = 19, alors 2.0 /(MA_Period+1) = 0.1, et(1-pr) = 0.9. A partir de là, faites le calcul !
 
borilunad:
Victor, expérimente en remplaçant pr par une valeur numérique. Disons que si la période MA = 19, alors 2.0 /(MA_Period+1) = 0.1, et(1-pr) = 0.9. A partir de là, vous apprenez !

Boris, j'ai même dessiné un couple de tampons sur une feuille de papier. Il en ressort quelque chose d'étrange. Mais j'ai remarqué que de cette façon, le mashki est épinglé au passé. C'est-à-dire qu'il a une valeur inférieure au prix de clôture actuel. Et ce, si les prix ne cessent d'augmenter. Si c'est l'inverse, il se déplace plus rapidement dans l'autre sens. C'est la logique derrière tout ça.
 
hoz:

Boris, j'ai même écrit un couple de tampons sur un morceau de papier. Il en ressort quelque chose d'étrange. Mais j'ai remarqué que de cette façon, les écouvillons sont épinglés au passé. C'est-à-dire qu'il a une valeur inférieure au prix de clôture actuel. Et ce, si les prix ne cessent d'augmenter. Si c'est l'inverse, il se déplace plus rapidement dans l'autre sens. C'est la logique.

La somme de la valeur des 2 derniers cours de clôture.... est incorrecte - la cloche est ajoutée à la valeur moyenne
 
YOUNGA:

La somme de la valeur des 2 derniers cours de clôture.... est incorrecte - la cloche est ajoutée à la valeur moyenne
il est normal de trouver sur internet le lissage exponentiel - description
 
YOUNGA:

La somme de la valeur des 2 derniers cours de clôture.... est erronée - la cloche
est ajoutée à la valeur moyenne.


Oui, c'est ce que je voulais dire. Mais la répartition exacte despr entre les dernières valeurs, c'est-à-dire le dernier prix de clôture, et la valeur moyenne, c'est-à-dire le dernier tampon reçu, n'est pas tout à fait claire.

 
YOUNGA:


Laissez-moi vous expliquer que si vous ouvrez un lot sur chaque paire EURJPY et USDJPY, alors le lot EURUSD devrait changer d'un point dans le prix de l'EURUSD. Quelque chose doit se produire avec la paire synthétique EURJPY/USDJPY puisqu'elles sont corrélées.


C'est le point, un lot pour EURJPY et USDJPY ne sont pas des positions égales. C'est pourquoi leur situation sera la suivante (je pense qu'ils ont ouvert dans des directions différentes, n'est-ce pas ?) : 100 000 EUR - 100 000 USD = 100 000 USD * (EUR/USD -1). Autrement dit, le résultat de la transaction, exprimé en dollars, sera directement proportionnel au taux de change EURUSD moins 1.
 
YOUNGA:
et en général, il est possible de trouver de l'anti-crénelage exponentiel sur le web - description

Au fait, oui. Merci pour le conseil :) J'ai été un vrai casse-pieds ces derniers temps. Je lis la description du" lissageexponentiel" et je commence à me rendre compte...
 
hoz:

Que fait-il ? Je veux comprendre à fond le principe de la construction de la machine à onduler,


Le fonctionnement est le suivant (nous transformons l'équation récursive en une équation explicite) :

EMA (i) = C (i)*pr + EMA (i+1)*(1-pr) = C (i)*pr + (1-pr)* (C (i+1)*pr + EMA (i+2)*(1-pr)) = C (i)*pr + C (i+1)*pr* (1-pr) + EMA (i+2)*(1-pr)^2 = C (i)*pr + C (i+1)*pr* (1-pr) + (C (i+2)*pr + EMA (i+3)*(1-pr))*(1-pr)^2

= C (i)*pr + C (i+1)*pr* (1-pr) + C (i+2)*pr*(1-pr)^2 + EMA (i+3)* (1-pr)^3 = ... répéter, répéter... = Somme {k = de i à l'infini ; C(k)*pr* (1-pr)^ (k-1)}

En d'autres termes, c'est une série dont les coefficients sont une progression géométrique de dénominateur (1-pr)<1, c'est-à-dire décroissante. Nous savons, grâce à l'algèbre scolaire, qu'une telle progression est un exposant décroissant. C'est de là que vient le nom de MA.

Pourquoi ont-ils pris cette formule ? Sans entrer dans les détails, je peux dire que cette formule nous donnera le même retard moyen de groupe d'une cotation d'entrée à la sortie de la MA que la SMA avec la même période. En d'autres termes, l'EMA et la SMA avec le même paramètre de période donnent approximativement le même retard. (Mais seulement approximativement ! - SMA est un filtre à phase linéaire, EMA ne l'est pas)

 
Bonjour, pourriez-vous me donner une commande (s'il y en a une) pour sélectionner aléatoirement un nombre soit 0 soit 1, merci d'avance ?