une stratégie commerciale basée sur la théorie des vagues d'Elliott - page 259

 
cooper123 19.03.07 15:15

Peut-être que je réfléchis trop, mais je ne comprends pas ce qu'est le croisement des canaux.
L'image représente une situation typique, mais il n'y a pas de croisement de canaux à proprement parler.
Il existe des chaînes avec des échelles différentes. Je ne comprends pas comment une zone pivot est formée par le croisement de canaux.
Peut-être que quelqu'un peut expliquer cette photo.


Voici l'une des zones de retournement typiques



Je voulais montrer un semblant de gradient de probabilité dans cette zone en utilisant différentes couleurs.

ZZZ Je l'ai d'abord fait dans Paint, puis j'ai été gêné et je l'ai refait dans Photoshop.
 
<br/ translate="no">Par conséquent, si vous me donnez le droit de choisir, je choisis MQL. :-))
Ici ou directement dans ma boîte aux lettres - comme vous le souhaitez.
Merci d'avance.


Ok !


Le code lui-même :

//+------------------------------------------------------------------+
//|                                     Moving Average Batteruot.mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Blue
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=300, K=1;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=Open[Start+1];
	 MA[Start+2]=Open[Start+2];
	 for (i=0;i<=Start;i++) {Y[i]=Open[i];}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}	 
    for (i=Start-2;i>=0;i--) {Y[i]=MA[i];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



Donc, vous mettez l'indicateur sur le graphique et vous travaillez. Il s'agit d'un filtre passe-bas (LPF) optimal (dans le sens du retard de phase (PD)). J'ai mis deux précurseurs dans les paramètres :
FLFPeriod - nombre naturel dans la gamme de 2 à celui désiré. Il est responsable de la largeur de bande du LPF.
K est un nombre naturel compris entre 1 et le nombre souhaité. Cette variable définit l'ordre du filtre passe-bas, qui détermine à son tour la pente du filtre passe-bas. Tous les détails du fonctionnement et de la conception du LPF sont donnés dans le lien ci-dessus. Il faut se rappeler qu'à K>2 les harmoniques de haute fréquence sont très fortement supprimées et qu'une augmentation supplémentaire de l'ordre n'a pas de sens - cela ne conduit qu'à une forte augmentation de la FS et à l'apparition de bips parasites faiblement amortis (phénomène Gibson) au point de départ (chez moi c'est 5000 bars). Le calcul de la moyenne se fait sur la base des prix d'ouverture.
Par expérience, j'ai constaté que pour des raisons pratiques, il est optimal de sélectionner K=1, et le rapport qualité de lissage/FZ maximal est atteint.

 
Merci beaucoup Jhonny
Tout est plus ou moins clair maintenant, et même l'endroit où placer l'énergie potentielle semble être imaginable aussi.


Bonne chance avec ça.
 
à Neutron.
Bien sûr, j'ai raté beaucoup de choses dans ce fil, mais en regardant le code de l'indicateur, et même plus tôt en regardant ce que cet indicateur dessine, je ne comprends pas - quel est le but ?
Tout d'abord, ce mouwing a le même retard et n'a aucun avantage sur ses homologues (c'est sur le tableau).
Deuxièmement, à partir du code de l'indicateur, je n'ai pas vu de mise en évidence. Je vais maintenant parcourir les 5 dernières pages du fil, peut-être trouverai-je la réponse.

PS. Le code de l'indicateur est loin d'être parfait.
 
à Rosh

Tout dépend de l'objectif que vous poursuivez avec tel ou tel FSL. Pour mon TS, il est important d'avoir le SPF le plus bas possible avec une stabilité maximale dans la bande passante du filtre. Ce sont les qualités auxquelles répondent les filtres Butterloot (détails dans le lien ci-dessus). Par exemple, voici une capture d'écran du terminal exécutant deux muwenges - Butterluot (bleu) et sommation glissante simple (rouge).



On peut voir qu'avec un PZ plus grand, le filtre standard montre un lissage de moindre qualité, il se manifeste par la transmission des composantes de haute fréquence (ruptures sur le graphique) et la suppression des composantes de basse fréquence du spectre (absence de creux et de collines moyennes). Spécifiquement dans mon TS, cela conduit à plus de la moitié de la rentabilité. En outre, en modifiant le paramètre K, nous pouvons, à notre gré, changer la forme de la bande passante du filtre, en la rapprochant de l'idéal ou, au contraire, en allant dans le sens d'une simple moyenne mobile. D'accord, c'est un bouton supplémentaire pour un esprit curieux !

P.S. Le code, j'en conviens, est sous-optimal car je l'ai gratté moi-même :-)
 
Boire du cognac et réfléchir à l'harmonie du Chaos. :)
 
2 Neutron
Bonjour Sergei ! Merci pour le code, j'ai comparé les photos. Je voulais poster le résultat, mais mql4.com a eu des problèmes avec l'éditeur, et puis j'ai attrapé un virus et j'ai dû nettoyer et restaurer les données. Maintenant, je l'affiche.


Je ne sais pas comment le paramètre FLFPeriod correspond à la période normale МА, c'est pourquoi j'ai pris la période=100 pour les trois graphiques. En outre, K=1. La ligne bleue est la MA Butterloot, la ligne rouge est la mienne, CadetBlue est la MA simple standard.
Peut-être que cette photo ne vous impressionnera pas, car ma courbe n'est pas assez lisse avec un FP plus petit.
Cependant, je n'ai pas poursuivi un tel objectif, je me suis contenté de "rapporter des résultats". :-))
 
Je ne sais pas comment votre paramètre FLFPeriod se rapporte à une période MA normale, j'ai donc pris une période de 100 pour les trois graphiques. Aussi, K=1. La ligne bleue est la MA Butterloot, la ligne rouge est la mienne, CadetBlue est la MA simple standard.
Cette photo ne vous impressionnera probablement pas, car avec un FP plus petit, ma courbe n'est pas assez lisse après tout.


Yura, salut !
Honnêtement, je ne m'étais pas fixé comme tâche de relier le paramètre FLFPeriod à la largeur de bande FLF, mais ce n'est pas difficile à faire.
Il serait intéressant de voir vos résultats, si le paramètre de tous les filtres est adapté pour que les FLFs coïncident.

Je vous donne ci-dessous le code du LPF de Butterloot avec ZERO FZ !!!! :-)))
//+------------------------------------------------------------------+
//|              Moving Average Batteruot Simmetric (ЭТО ШУТКА!).mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Red
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=20, K=4;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=(Open[Start+1]+Close[Start+1]+High[Start+1]+Low[Start+1])/4;
	 MA[Start+2]=(Open[Start+2]+Close[Start+2]+High[Start+2]+Low[Start+2])/4;
	 for (i=0;i<=Start;i++) {Y[i]=(Open[i]+Close[i]+High[i]+Low[i])/4;}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}
	 Y[0]=MA[0];
	 Y[1]=MA[1]; 	 
          for (i=2;i<=Start-2;i++) {Y[i]=g*(MA[i]+2*MA[i-1]+MA[i-2])+b*Y[i-1]-ci*Y[i-2];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}








 
2 Neutron
J'apprécie la plaisanterie ! :-))
Mais comme c'est joli !
J'ai ajusté mon paramètre MA pour correspondre au maximum principal de l'image.
Ainsi, FLFPeriod=100, K=1, ma MA a une période=136 et la période de MAsimple=136.
Vous pouvez voir sur l'image que la coïncidence d'un maximum ne signifie pas nécessairement la coïncidence des autres.


Au fait, je dois corriger le code de l'indicateur. Au lieu de
MA[Start+1]=Open[Start+1] ; MA[Start+2]=Open[Start+2] ;


écrire

MA[Start]=Open[Start]; MA[Start-1]=Open[Start-1];



 
<br/ translate="no">Ok !

Code propre :
...............................................................


Merci pour l'indicateur - intéressant.

Une dernière chose : il y a une erreur dans le code - il dépasse les limites du tableau.
Définissez la taille du double MA[5003] ;
Y[] peut ne pas être placé, mais laissez le double Y[] ; sera correct.


Bonne chance.