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

 
Je devrais peut-être préciser. Bien que diam0nd n'ait pas été très élogieux, je suis quand même content de le voir ici en tant que nouveau visage :)

Dlia angloyazi4nih uzverey esty angloyazi4niy forum. Vot ya sobsno i predlogil emu tam i pisaty, tk zdesy onloko ask questions, em osobo nevezvayut a on vse prodolgaet raspaliatsia. Taki ya i predlogil poyt na forum anglais :)
 
Juste pour clarifier les choses :
... nos yeux sont l'aboutissement de millénaires de pression évolutive conçue pour détecter des modèles (nourriture, lions) avant que les modèles ne nous détectent. (Marchette D.J. Graphes aléatoires pour la reconnaissance statistique des formes (Wiley 2004))
:)
 
2 Alex Niroba
Initialement, en lançant ce fil de discussion, j'essayais de trouver des personnes partageant les mêmes idées, c'est-à-dire <br / translate="no"> celles qui sont familières avec la théorie des vagues d'Elliot.
L'idée était d'écrire un indicateur efficace basé sur ZigZaga qui permettrait de
Reconnaître les vagues et dessiner le comportement futur des prix sur le graphique.

Alex, si vous l'aviez dit dès le début, nous aurions pu avoir une discussion intéressante. Mais comme vous n'avez pas voulu être précis dans vos propos, on est passé à une discussion sur la stratégie de Vladislav, qu'il a formulée plus que concrètement.

Toutefois, rien ne vous empêche (si vous le souhaitez) de le faire maintenant. Je pense que vous serez intéressé de savoir, en plus de l'opinion de Rosh, ce que d'autres personnes en pensent.

À un moment donné, j'ai aussi commencé avec ZigZaga (tout le monde passe probablement par là :). J'ai même écrit le mien, car le modèle standard ne me convenait pas. En conséquence, j'ai compris quelque chose non seulement sur ZigZag, mais aussi sur la théorie d'Elliott. C'est pourquoi je n'en suis pas fan.

Je ne me considère pas comme "bien informé sur la théorie des vagues d'Elliott". Cependant, une certaine compréhension qui a émergé au cours du processus me pousse à chercher des solutions plus profondes. Ma principale motivation est peut-être que l'approche d'Elliott ne peut fournir qu'une solution qualitative. Et cela ne suffit pas pour le trading (tant manuel qu'automatique). C'est pourquoi les Elliottiens ne peuvent pas aller au-delà du problème de reconnaître où se trouve la 3e vague et où se trouve la 5e vague.

Je participerai toutefois avec intérêt à la discussion sur le sujet s'il se présente.
Bonne chance.
 
2 Dave Mason
Je n'ai pas de solution mais nous avons un début. <br / translate="no">J'ai demandé à Mme Six d'expliquer ce qu'elle veut dire "Je suppose également que des travaux sur ce sujet ont été effectués." Donc, si elle a l'amabilité de m'expliquer "gratuitement", je partagerai l'information.


Si cela peut vous intéresser, je peux vous dire ceci.
À l'époque, lorsque je m'occupais de ZigZag, j'ai écrit un conseiller expert très simple qui ne détectait qu'un seul modèle et négociait sur cette base. La configuration du motif, je l'ai faite moi-même en me basant sur ma propre analyse visuelle du comportement de ZigZag.

L'historique de test de cette EA (6 mois) m'a montré un profit de 26% pour une période. Je l'ai testé sur mon propre testeur de script, pas sur celui intégré à MT4. Ce résultat, ainsi que la compréhension d'un certain nombre de circonstances, ne m'ont pas satisfait. C'est pourquoi j'ai abandonné cette approche.

Une des circonstances qui vous concerne, je la donne ici :
L'algorithme de SÉLECTION des motifs est mal défini. Les critères de cette sélection ne sont pas du tout définis.
Par conséquent, la seule solution qui s'offrait à moi était de trouver un modèle, puis de le tester pour voir s'il pouvait être utilisé. Je n'aime pas cette approche, trop d'arbitraire.

Si vous parvenez à appliquer la théorie des graphes pour extraire des modèles, ce serait une solution radicale au problème. Mais, IMHO, cela doit être fait séparément du conseiller expert. Et le conseiller expert doit travailler avec des modèles définis et paramétrés. S'il réussit, vous n'aurez plus besoin de la théorie d'Elliott.
 
2 Yurixx
Pour moi (c'est mon opinion) la théorie des vagues d'Elliott (EWT) est une théorie de graphiques, ou même plus loin le mouvement des prix dans le forex, pourrait être expliqué par la théorie des graphiques, strictement mathématique. Malheureusement, l'EWT pour moi (je ne suis pas mathématicien) et je pense pour tout mathématicien n'est pas vraiment une théorie mathématique. C'est pourquoi personne ne peut être sûr de savoir quelle vague succède à quelle autre à tout moment.
Ce n'est pas vraiment une théorie mathématique, juste une supposition.
La théorie des graphes est quelque chose qui dépasse mes capacités.
Cependant, j'ai reçu une réponse de Mme Six :
"Salut Dave,

Non, ce n'est pas de la fantaisie.

Je suis sûr que des chercheurs ou des entreprises ont
Des documents de recherche ou des livres blancs publiés que vous trouverez
Intéressant. Si vous ne le trouvez pas avec votre première recherche sur google,
continuez à essayer.

Allez-y !


Regards,
Janet Six, Ph.D.


Dave Mason a écrit :

> Merci pour votre demande rapide.
> Pouvez-vous me dire ce que vous entendez par " le travail sur ce sujet a
> a été fait" ? S'il vous plaît, précisez car mes collègues du forum forex pensent que
> que c'est de la "fantaisie".
> Regards,
> Dave
"
Elle dit que ce n'est pas un "fantasme".
Mais même si quelqu'un trouve quelque chose sur google ou ...cela ne résout pas le problème.
C'est un travail sérieux pour les professionnels des mathématiques.
Ce que j'ai fait, c'est demander à l'un des meilleurs professionnels de la théorie des graphes, qui est professeur, de m'aider d'une manière ou d'une autre. Il a dit qu'il me répondrait dans quelques semaines.
 
Ce que j'ai fait, c'est demander à l'un des meilleurs professionnels de la théorie des graphes, qui est professeur, de m'aider d'une manière ou d'une autre. Il a dit qu'il me répondrait dans quelques semaines.

Je doute qu'il en dise beaucoup plus que Janet Six, Ph. :-)
Mais ce n'est que mon opinion. Nous verrons bien.

Pour moi (c'est mon opinion) la théorie des vagues d'Elliott (EWT) est une théorie de graphiques, ou même plus loin le mouvement des prix dans le forex, pourrait être expliqué par la théorie des graphiques, strictement mathématique.

Je ne pense pas que ce soit le cas. Si c'était vraiment vrai, alors les mouvements des prix du forex auraient été prédits de manière "strictement mathématique" il y a longtemps. Cependant, la sagesse conventionnelle est tout le contraire : aucune quantité de mathématiques ne peut prédire avec précision le mouvement des prix.

Malheureusement, l'EWT pour moi (je ne suis pas mathématicien) et je pense pour tout mathématicien n'est pas vraiment une théorie mathématique. C'est pourquoi personne ne peut être sûr de savoir quelle vague succède à quelle autre à tout moment.
Ce n'est pas vraiment une théorie mathématique, juste une supposition.

Je suis tout à fait d'accord avec cela. Et je pense que c'est la raison pour laquelle Mandelbrot (un mathématicien pur) n'a pas jugé bon de mentionner Elliott dans son article. A propos de cet article : écrit au niveau du lycée, sans aucune utilité pratique. Pourquoi a-t-il été écrit en premier lieu ?

IMHO sur la théorie d'Elliott. Le modèle de vague 5-3 se produit sur le marché assez souvent pour qu'il puisse être fixé visuellement. C'était évidemment suffisant pour qu'Elliott essaie de trouver une explication à cela. Ce qu'il a proposé, malheureusement, est une explication purement qualitative et, de surcroît, "psychologique". Elle est donc peu utile, même si elle donne l'impression que nous savons ce qui se passe sur le marché. Hélas, ce n'est qu'une impression.

Vous pourriez aussi bien donner un tas d'autres explications comme ça. Je vous propose, par exemple, la mienne, simple au point d'être primitive et complètement évidente.
Un zigzag brisé reliant Min et Max (ou vice versa) a toujours un nombre impair de segments.
C'est-à-dire que Min-Max est 1 segment (mais 2 sommets),
Min-Max-Min-Max - 3 segments (mais 4 sommets),
Min-Max-Min-Max-Min-Max - 5 segments (mais 6 sommets), etc.
En cas de tendance haussière, le nombre de pas de ZigZag à la hausse sera évidemment supérieur au nombre de pas à la baisse.
Dans l'un des cas les plus simples, nous obtenons un rapport de 5-3. En cas de tendance baissière, c'est l'inverse - 3-5.
Et le rapport 3-3 ou 5-5 est, comme on peut le deviner, plat.

Quiconque a regardé le graphique des prix de ses yeux sait qu'il existe différents modèles sur le marché, et que le modèle 5-3 n'est que l'un d'entre eux. En outre, personne n'oserait dire que l'un des modèles est impossible en principe. Mais 3-1 est la variante minimale pour une tendance à la hausse, et les variantes 21-1 ou, par exemple, 21-19 sont très, très improbables. Donc 5-3 est juste le modèle improbable. Et seuls ceux qui ne comprennent pas sa nature stochastique, voire chaotique, tenteraient de "tirer" le marché les 5-3 et 3-5.

Par conséquent, avant d'essayer de discerner entre la 3e et la 5e vague, nous devrions calculer (au moins expérimentalement, à travers l'histoire) la distribution des fréquences des différents modèles. Cela n'est pas fait parce que c'est difficile : la distribution sera bidimensionnelle, l'algorithme de division du prix ZigZag en sections distinctes de montée et de descente est ambigu. Et, de plus, même le Zig-Zag peut être construit de plusieurs façons, sensiblement différentes.

De quelle "théorie" pouvons-nous parler dans une telle situation ? Il y a des vagues d'Elliott, c'est indiscutable. Mais il n'y a pas de théorie, hélas.

Laissez quelqu'un essayer de me contredire raisonnablement.
 
Définissez plus précisément.
J'ai dit "expliqué", pas "prédit".
 
Définissez plus précisément. <br / translate="no">J'ai dit expliqué, pas prédit.


Oui, bien sûr. Le seul problème est de savoir comment "plus précisément". Si cette précision peut être mesurée, alors il y a matière à discussion. Si ce n'est pas le cas, nous en restons encore au niveau des discussions "qualitatives".

Et, à mon avis, le défi consiste précisément à prévoir. Et de préférence avec un degré de certitude connu qui peut être déterminé a priori. Et tout peut être expliqué. EWT explique très bien le marché. Sauf que ces explications ne donnent pas encore la priorité aux élites.
 
J'ai un peu corrigé l'indicateur.

La version 3 a corrigé l'erreur d'affichage incorrect des lignes sur les échelles de temps inférieures des paires de devises, impliquant le yen japonais.
Une ligne centrale, marquée en jaune, a été introduite. Il s'agit de la moyenne arithmétique des niveaux de rouge et de vert. Quant à son utilisation, on suppose que si cette ligne est franchie, elle peut être ajoutée à la position déjà rentable ouverte aux niveaux rouge ou vert. Bien qu'au fil du temps, il puisse y avoir d'autres interprétations de son utilisation.

//+------------------------------------------------------------------+
//|                                     AMPLITUDE_STAT_LEVELS_v3.mq4 |
//|                                        Copyright © 2006, Solandr |
//|                                                solandr99@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Solandr"
#property link      "solandr99@mail.ru"
#property indicator_chart_window

//В версии 3 поправлена ошибка неверного отображения линий на младших таймфреймах валютных пар, с участием японской йены.
//Введена центральная линия, обозначаемая жёлтым цветом. Она является средним арифметическим значением красных и зелёных 
//уровней. По поводу её использования имеется предположение, что при прохождении этой линии можно добавляться к уже 
//прибыльной позиции, открытой на красных или зелёных уровнях. Хотя с течением времени возможно появление также и других 
//трактовок её использования.
//
//В версии 2 происходит относительный расчёт размахов в соответствии со средней ценой за 25 баров.
//В принципе при достаточном количестве баров истории это эквивалентно отношению среднеарифметического значения размаха
//к среднему значению цены на истории, умноженное затем на текущее среднее значение цены (например по последним 25 барам).
//Но решено оставить всё-таки более сложный алгоритм расчёта (нормировка каждого из значений амплитуд по текущей средней 
//цене), поскольку он наверное будет вполне уместен и в случаях когда баров истории совсем немного. 
//
//Версия 1. Первоначальный вариант индикатора.
//
// ============================================================================================
//"Купи подешевле, продай подороже" - основа, на которой базируется спекуляция на финансовых рынках. 
//Данный индикатор предлагает своё видение этих уровней "подешевле" и "подороже". Он основан на простом 
//статистическом расчёте размахов (амплитуд High-Low) баров по имеющейся истории котировок.
//Расчёт амплитуд происходит по сериям от 1 до 10 баров. То есть в выбранной серии на истории находитcя разница между 
//максимальным и минимальным значением цены. Далее окно серии смещается на 1 бар и получаем следующий размах амплитуды 
//баров для выбранной серии баров. После усреднения значения полученных размахов с учётом нормировки по среднему значению 
//цены на 25 барах мы имеем среднее арифметическое диапазона колебания цены для выбранной серии баров (а точнее его 
//нормированное значение). Это значение помещается в глобальные переменные терминала.
//
//Далее при расчёте текущих уровней из глобальных переменных терминала извлекается требуемое нормированное значение 
//диапазона колебаний и умножается на среднюю цену, вычисленную по последним 25 барам. Полученное таким образом значение 
//амплитуды откладывается на графике по следующему принципу. К минимуму текущей серии 
//баров прибавляется это вычисленное значение. Так мы получаем возможный среднестатистический максимум цены для текущей 
//серии баров. То же самое делаем для нахождения среднестатистического минимума для текущей серии баров. То есть от 
//максимума текущей серии баров отнимаем полученное значение амплитуды, посчитанное для данной серии баров по историческим 
//данным. Индикатор производит описанные выше действия для серий от 1 до 10 баров. На уровнях присутствуют надписи, 
//поясняющие для какого текущего временного промежутка построен данный уровень. С параметром TF_needed="AUTO" уровни 
//строятся для серий баров текущего таймфрейма. Если требуется зафиксировать уровни какого-то таймфрейма на остальных 
//периодах, то необходимо установить это значение в MN, W1, D1, H4, H1, M30, M15, M5, или в M1. Например для значения 
//TF_needed="D1" на всех периодах будут отображаться уровни для временных промежутков от 1 до 10 дней, обозначаемых 
//соответственно как D1,...,D10.
//
//При настройках по умолчанию индикатор производит перерасчёт среднестатистических амплитуд по истории один раз в день 
//с их внесением в глобальные переменные терминала. Если по какой-то причине (например импортирование дополнительных 
//котировок) требуется произвести перерасчёт среднеарифметических значений амплитуд для серий баров не дожидаясь 
//следующего дня, то необходимо установить force_recalculation=true и будет произведён перерасчёт среднеарифметических 
//значений размахов для серий баров при следующей инициализации индикатора. После проведения принудительного пересчёта 
//значение force_recalculation нужно вернуть в значение false для исключения постоянного пересчёта данных!
//
//Данный индикатор может быть полезен при принятии решений о входе в позицию. Может поспособствовать сохранению депозита
//особенно начинающих трейдеров. Продавайте на красных уровнях и покупайте на зелёных и за Вас будет играть математика! ;o))) 
//Если Вы например купили на зелёных уровнях и курс пошёл резко против Вас, то убыточную позицию есть смысл удерживать лишь 
//до тех пор пока красные уровни не окажутся ниже Вашей открытой позиции. И когда цена окажется на этих красных уровнях - 
//закройте убыточную позицию с минимальным убытком, а во многих случаях и с маленьким плюсом. Желаю успехов!:o)
// ============================================================================================

extern string TF_needed="AUTO";
extern bool force_recalculation=false;//принудительный перерасчёт

double average_price;
bool recalculation_needed=false;
bool aver_pr_recalc_needed=true;
int last_aver_pr_recalc_bars;
double delta[11];
string work_symbol;
int TF;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   int i,k,all_bars,counter_counted_bars;
   string b_str,global_name;
   double average_price_array[10];
 
   work_symbol=Symbol();
   
   //Выбор требуемого тайфрейма для расчёта;
   if(TF_needed=="AUTO" || (TF_needed!="MN" && TF_needed!="W1" && TF_needed!="D1" && TF_needed!="H4" && TF_needed!="H1" && TF_needed!="M30" && TF_needed!="M15" && TF_needed!="M5" && TF_needed!="M1")) TF=Period();
   if(TF_needed=="MN") TF=43200;
   if(TF_needed=="W1") TF=10080;
   if(TF_needed=="D1") TF=1440;
   if(TF_needed=="H4") TF=240;
   if(TF_needed=="H1") TF=60;  
   if(TF_needed=="M30") TF=30;  
   if(TF_needed=="M15") TF=15;  
   if(TF_needed=="M5") TF=5;  
   if(TF_needed=="M1") TF=1;  
      
   //Проверяем наличие посчитанных данных амплитуд для данного TF, а также производим проверку дня, в который был произведен расчёт этих данных
   global_name=work_symbol+"_"+TF+"_counted_day";
   if(GlobalVariableCheck(global_name) && !force_recalculation) 
   {  
      if(MathAbs(GlobalVariableGet(global_name)-DayOfYear())>0) recalculation_needed=true;
   }
   else recalculation_needed=true;
         
   if(recalculation_needed)
   {//Производим расчёт средней амплитуды бара (серии баров) по таймфрейму TF на символе work_symbol
      all_bars=iBars(work_symbol,TF);
      ArrayResize(average_price_array,all_bars);
   
      //Рассчитываем массив средних цен для каждого расчётного момента времени на основе 25 баров
      for(k=all_bars-1;k>=0;k--) 
      {      
            average_price_array[k]=0;
            counter_counted_bars=0;
            for(i=k;i<=k+24;i++)//вычисляем среднюю цену на 25 барах
            {
               if(i<all_bars) 
               {
                  average_price_array[k]=average_price_array[k]+(iOpen(work_symbol,TF,i)+iHigh(work_symbol,TF,i)+iLow(work_symbol,TF,i)+iClose(work_symbol,TF,i))/4;
                  counter_counted_bars++;
               }
            }
            if(counter_counted_bars>0) average_price_array[k]=average_price_array[k]/counter_counted_bars;
      }
   
      for(i=1;i<=10;i++) delta[i]=0;
   
      for(i=1;i<=10;i++)
      {      
         for(k=all_bars-i;k>=0;k--) 
         {  
            if(average_price_array[k]>0) delta[i]=delta[i]+(iHigh(work_symbol,TF,Highest(Symbol(),TF,MODE_HIGH,i,k))-iLow(work_symbol,TF,Lowest(Symbol(),TF,MODE_LOW,i,k)))/average_price_array[k];
            else Print("average_price_array[",k,"]<=0 при i=",i," и k=",k);
         }
         delta[i]=delta[i]/(all_bars-i+1);   
         global_name=work_symbol+"_"+TF+"_"+i;
         GlobalVariableSet(global_name,delta[i]); 
         //Print("delta",i,"=",DoubleToStr(delta[i],8));
      } 
      global_name=work_symbol+"_"+TF+"_counted_day";
      GlobalVariableSet(global_name,DayOfYear()); 
      recalculation_needed=false;
   }//if(recalculation_needed)
   else
   {//Если данные имеются в глобальных переменных терминала, то берём имеющиеся расчётные данные амплитуд из глобальных переменных терминала
      for(i=1;i<=10;i++)
      {
         global_name=work_symbol+"_"+TF+"_"+i;
         delta[i]=GlobalVariableGet(global_name);
         //Print("Глобал ",i," ",delta[i]);
      }
   }
}   
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
//----
   int i;
   string b_str;
   for(i=1;i<=10;i++)
   {
      b_str="up_line"+i;
      ObjectDelete(b_str);
      b_str="down_line"+i;
      ObjectDelete(b_str);
      b_str="up_line_txt"+i;
      ObjectDelete(b_str);      
      b_str="down_line_txt"+i;
      ObjectDelete(b_str);       
   }
   
   b_str="centr_line";
   ObjectDelete(b_str); 
   
}   

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i;
   string line_name;
   double buffer,c_line=0;
  
   /*
   for(i=iBars(work_symbol,TF)-1;i>=0;i--) average_price=average_price+(iOpen(work_symbol,TF,i)+iHigh(work_symbol,TF,i)+iLow(work_symbol,TF,i)+iClose(work_symbol,TF,i))/4;
   average_price=average_price/iBars(work_symbol,TF);
   Print("Средняя цена по всей выборке=",NormalizeDouble(average_price,Digits));
   average_price=0;
   */
   
   if(iBars(work_symbol,TF)!=last_aver_pr_recalc_bars) aver_pr_recalc_needed=true;
   
   if(aver_pr_recalc_needed)
   {  
      average_price=0;
      for(i=0;i<=24;i++) average_price=average_price+(iOpen(work_symbol,TF,i)+iHigh(work_symbol,TF,i)+iLow(work_symbol,TF,i)+iClose(work_symbol,TF,i))/4;
      average_price=average_price/25;
      aver_pr_recalc_needed=false;
      last_aver_pr_recalc_bars=iBars(work_symbol,TF);
   }
   //Print("average_price=",NormalizeDouble(average_price,Digits));
   
   for(i=1;i<=10;i++)
   {  
      if(TF==43200) line_name="MN"+i;   
      if(TF==10080) line_name="W"+i;
      if(TF==1440) line_name="D"+i;
      if(TF==240) line_name="H"+4*i;
      if(TF==60) line_name="H"+i;
      if(TF==30) line_name="M"+30*i;
      if(TF==15) line_name="M"+15*i;
      if(TF==5) line_name="M"+5*i;
      if(TF==1) line_name="M"+i;
      
      buffer=iLow(NULL,TF,Lowest(work_symbol,TF,MODE_LOW,i,0))+delta[i]*average_price;      
      up_line(i,buffer,line_name);
      c_line=c_line+buffer;
      buffer=iHigh(NULL,TF,Highest(work_symbol,TF,MODE_HIGH,i,0))-delta[i]*average_price;
      down_line(i,buffer,line_name);
      c_line=c_line+buffer;      
   }
   
   c_line=c_line/20.0;
   centr_line(c_line);
   
   return(0);
  }
//+------------------------------------------------------------------+
int up_line(int q_days, double level, string ln)
{
   string b_str="up_line"+q_days;

   if(ObjectFind(b_str) == -1) 
   {
     ObjectCreate(b_str, OBJ_TREND, 0, Time[1], level, Time[1]+2700000,level);
     ObjectSet(b_str, OBJPROP_STYLE, STYLE_DOT);
     ObjectSet(b_str, OBJPROP_COLOR, Brown);
     ObjectSet(b_str, OBJPROP_RAY, true);
     ObjectSet(b_str, OBJPROP_WIDTH, 1);
     ObjectMove(b_str, 0, Time[1],  level);
   }
   else 
   {
      if(MathAbs(level-ObjectGet(b_str, OBJPROP_PRICE1))>0.9*Point) ObjectDelete(b_str);
   }
   
   b_str="up_line_txt"+q_days;
   string b_txt=ln;
   datetime t_bar;
   if(ObjectFind(b_str) == -1) 
   {
     ObjectCreate(b_str, OBJ_TEXT, 0, Time[0], 0);
     ObjectSetText(b_str, b_txt, 8, "Arial", Brown);
     ObjectMove(b_str, 0, Time[0]+2*q_days*Period()*60,  level);
   }
   else 
   {
     ObjectMove(b_str, 0, Time[0]+2*q_days*Period()*60,  level);
   }      
   
   return(0);
}

int down_line(int q_days, double level, string ln)
{
   string b_str="down_line"+q_days;
   
   if(ObjectFind(b_str) == -1) 
   {
     ObjectCreate(b_str, OBJ_TREND, 0, Time[1], level, Time[1]+2700000,level);
     ObjectSet(b_str, OBJPROP_STYLE, STYLE_DOT);
     ObjectSet(b_str, OBJPROP_COLOR, DarkGreen);
     ObjectSet(b_str, OBJPROP_RAY, true);
     ObjectSet(b_str, OBJPROP_WIDTH, 1);
     ObjectMove(b_str, 0, Time[1],  level);
   }
   else 
   {
      if(MathAbs(level-ObjectGet(b_str, OBJPROP_PRICE1))>0.9*Point) ObjectDelete(b_str);
   }
   
   b_str="down_line_txt"+q_days;
   string b_txt=ln;
   if(ObjectFind(b_str) == -1) 
   {
     ObjectCreate(b_str, OBJ_TEXT, 0, Time[0], 0);
     ObjectSetText(b_str, b_txt, 8, "Arial", DarkGreen);
     ObjectMove(b_str, 0, Time[0]+2*q_days*Period()*60,  level);
   }
   else 
   {
     ObjectMove(b_str, 0, Time[0]+2*q_days*Period()*60,  level);
   }      
   
   return(0);
}

int centr_line(double level)
{
   string b_str="centr_line";
   
   if(ObjectFind(b_str) == -1) 
   {
     ObjectCreate(b_str, OBJ_TREND, 0, Time[1], level, Time[1]+2700000,level);
     ObjectSet(b_str, OBJPROP_STYLE, STYLE_DOT);
     ObjectSet(b_str, OBJPROP_COLOR, Yellow);
     ObjectSet(b_str, OBJPROP_RAY, true);
     ObjectSet(b_str, OBJPROP_WIDTH, 1);
     ObjectSet(b_str, OBJPROP_BACK, false);
     ObjectMove(b_str, 0, Time[1],  level);
   }
   else 
   {
      if(MathAbs(level-ObjectGet(b_str, OBJPROP_PRICE1))>0.9*Point) ObjectDelete(b_str);
   }
   
   return(0);
}
 
<br/ translate="no">
Il y a des vagues d'Elliott, aucun argument. Mais la théorie, hélas, ne l'est pas.

Que quelqu'un essaie de me contredire raisonnablement.



Pourquoi pas ? Je vois comment vous avez trouvé une théorie en utilisant le zigzag. Et j'ai tout expliqué :-)
Seul le zigzag est juste un indicateur qui montre le pourcentage de déviation du prix dans la direction opposée. Vous auriez aussi bien pu utiliser des croix et des zigzags, qui font la même chose, mais pas en pourcentage, mais en valeur absolue.
Pour comparer des images, il faut au moins reconnaître le croquis, et avec un zigzag, c'est problématique.
Elliott dans la leçon 12 l'a lancé, Neely dans le chapitre 5-9, ou mieux encore dans le chapitre 6-1, puis Multipoints (sans le savoir) a montré comment identifier les vagues. Et ça marche. J'ai essayé de faire un graphique en ligne, un graphique des minutes et à plusieurs reprises, du matin au soir, tout s'est enchaîné. J'ai rarement eu à changer quoi que ce soit. Il y a des fois où le canal (ligne de tendance) descend un peu plus bas après le double et capture quelques touches du tiers étiré.