Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 969

 
Vladimir Baskakov:

Merci, cela fonctionne, une seule condition est remplie :

Et j'ai besoin

Il n'ouvre pas de position pour une raison quelconque.

int barfrup_1 = GetLastFractals(1,MODE_UPPER);
int barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);
int barfrdn_1 = GetLastFractals(1,MODE_LOWER);
int barfrdn_2 = GetLastFractals(barfrdn_1+1,MODE_LOWER);

if(High[barfrup_1] < High[barfrup_2] && Low[barfrdn_1] < Low[barfrdn_2] )
if(High[barfrup_1] < High[barfrup_2] && Low[barfrdn_1] > Low[barfrdn_2] )
 
Igor Makanu:

Ça marche, mais ça ouvre des positions, pas par condition, où ça veut, d'accord.

 
Vladimir Baskakov:

Il fonctionne, mais ouvre des positions, pas par condition, où il veut, ok.

ce n'est pas possible, mon code est simple, comme ZigZag, la fractale n'a de valeurs que sur les barres avec des flèches dans la boucle, chercher les valeurs de l'indicateur avant l'apparition de la flèche et sortir de la boucle, retourner le numéro de la barre fractale.

Je viens de faire un Expert Advisor par fractales - le code est vérifié, et il s'est avéré pendant le test que la fractale sur la barre numéro 1 peut surdécouvrir - activez le mode de visualisation du testeur et ajoutez un indicateur pour fractale

 
Igor Makanu:

c'est impossible, mon code est simple, la fractale, comme ZigZag, a des valeurs uniquement sur les barres avec des flèches, dans la boucle, parcourir les valeurs de l'indicateur jusqu'à ce que la flèche apparaisse et sortir de la boucle, retourner le numéro de la barre sur laquelle la fractale est

Je viens de faire un Expert Advisor par fractales - le code est vérifié, et il s'est avéré pendant le test que la fractale sur la barre numéro 1 peut surdécouvrir - activez le mode visualisation du testeur et ajoutez un indicateur pour fractale

Peut-être que le résultat devrait être vérifié à 0 ou à une valeur vide.
 
Aleksei Beliakov:
Peut-être que le résultat devrait être vérifié pour 0 ou une valeur vide.

il y a 0 dans les valeurs vides, ce n'est pas la meilleure façon de comparer avec _Point

cela fonctionne, je ne veux pas le prouver, mais les valeurs de l'indicateur fractal devraient fonctionner avec cette partie du code

SZY : encore une fois, pour une raison quelconque, je discute de mon code.... plus le code fonctionne, je ne vois pas le code des autres participants, je ne comprends pas qui en a besoin au final ? ))))


PS:Vérifié, car je sais que la question ne reposera pas, tout fonctionne, le code est rapide :

#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot Label2
#property indicator_label2  "Label2"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrBlue
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- indicator buffers
double         Label1Buffer[];
double         Label2Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Label1Buffer);
   SetIndexBuffer(1,Label2Buffer);
   SetIndexArrow(0,SYMBOL_ARROWUP);
   SetIndexArrow(1,SYMBOL_ARROWDOWN);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--
   static int limit=0;   
   if(limit>=10) return(rates_total);
   int b_up = 0, b_dn = 0;
   while(limit<=10)
     {
      b_up = GetLastFractals(b_up,MODE_UPPER);
      Label1Buffer[b_up] = high[b_up];
      b_up++;
      b_dn = GetLastFractals(b_dn,MODE_LOWER);
      Label2Buffer[b_dn] = low[b_dn];
      b_dn++;
      limit++;
      }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//_______________________________________________________________________
int GetLastFractals(int bar,int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал
  {
   int i=bar; 
   while(i<Bars && iFractals(NULL,0,mode,i)<_Point) i++;
   return(i);
  }
//_______________________________________________________________________

résultat


 
Artyom Trishkin:

ArraySetAsSeries(true) pour les tampons indicateurs.

Je l'ai fait. Je l'ai fait selon le manuel
 
Igor Makanu:

c'est impossible, mon code est simple, la fractale, comme ZigZag, a des valeurs uniquement sur les barres avec des flèches, dans la boucle, parcourir les valeurs de l'indicateur jusqu'à ce que la flèche apparaisse et sortir de la boucle, retourner le numéro de la barre sur laquelle la fractale est

Je viens de réaliser un Expert Advisor par fractales - le code est vérifié, et il s'est avéré lors du test que la fractale sur la barre numéro 1 peut se surcharger - activez le mode visualisation du testeur et ajoutez un indicateur pour fractales,

Non, ma position est ouverte. Comme il se doit, sur la troisième mesure, une fractale. Mais plus loin, c'est pire. Par ma condition (fr1_up<fr_2 && fr1_down>fr2_down) il ne trouve pas. L'essence est la compression des prix, que l'on retrouve par deux fractales
 

Je crois que j'ai réussi !

999

Dossiers :
IgorM.mq5  17 kb
 
Aleksandr Klapatyuk:

Je crois que j'ai réussi !

Qu'est-ce que c'est ?
 
Vladimir Baskakov:
Laquelle ?

nom d'objet déplacer sur iFractals