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

 
Artyom Trishkin:

Ne pas appeler d'un autre indicateur :)

Ou montrez comment vous le faites.

Je l'appelle depuis cette fonction


double GetPriceFractal(string symbol, ENUM_TIMEFRAMES timeframe, int mode_fractal, int count_find, int number_fractal, int &bar_fractal, int shift) {
   int n=0;
   for(int i=shift; i<count_find; i++) {
      //double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
      double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
      if(price_fractal>0) {
         n++;
         if(n==number_fractal) {
            bar_fractal=i;
            return(price_fractal);
            }
         }
      }
   return(EMPTY_VALUE);
}

Et à son tour, de ce

bool CheckOnePrices(string symbol, ENUM_TIMEFRAMES timeframe, int mode_fractal, int count_find, int count_fractals, int bar_fractal, double match_price, int delta_points, int shift) {
   if(count_fractals<1) return(false);
     double pt=SymbolInfoDouble(symbol,SYMBOL_POINT);
   int    n=1, dg=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   for(int i=n; i<=count_fractals; i++) {
      double price_fractal=GetPriceFractal(symbol,timeframe,mode_fractal,count_find,n,bar_fractal,shift);
      double result_compare=fabs(NormalizeDouble(price_fractal-match_price,dg));
      if(result_compare<delta_points*pt) {
         if(mode_fractal==0) BufferFractalUp[bar_fractal]=price_fractal;
         else BufferFractalDn[bar_fractal]=price_fractal;
        /// Print("Цена бара с фракталом ",n," совпала с проверяемой ценой, возвращаем true");
         return(true);
         }
      n++;
      }
   return(false);
}

C'est ça dans OnCalculate()

if(CheckOnePrices(Symbol(),PERIOD_CURRENT,0,rates_total,numFractals,bar,low[i],delta,i+1)) { BufferPointDn[i]=low[i]-distanc*Point;}
 
mila.com:

Appel à partir de cette fonction


double GetPriceFractal(string symbol, ENUM_TIMEFRAMES timeframe, int mode_fractal, int count_find, int number_fractal, int &bar_fractal, int shift) {
   int n=0;
   for(int i=shift; i<count_find; i++) {
      //double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
      double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
      if(price_fractal>0) {
         n++;
         if(n==number_fractal) {
            bar_fractal=i;
            return(price_fractal);
            }
         }
      }
   return(EMPTY_VALUE);
}

Eh bien... vous ne l'appelez pas correctement - il n'a que deux paramètres dans les paramètres, et vous mettez 3 après le nom.

Et pourquoi le normalisez-vous ? Il n'y a pas besoin de ça.

 
mila.com:

Je l'appelle depuis cette fonction


double GetPriceFractal(string symbol, ENUM_TIMEFRAMES timeframe, int mode_fractal, int count_find, int number_fractal, int &bar_fractal, int shift) {
   int n=0;
   for(int i=shift; i<count_find; i++) {
      //double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
      double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
      if(price_fractal>0) {
         n++;
         if(n==number_fractal) {
            bar_fractal=i;
            return(price_fractal);
            }
         }
      }
   return(EMPTY_VALUE);
}

Veuillez noter que dans mode_fractal vous devez écrire le numéro de tampon de cet indicateur personnalisé - pour le 0 supérieur, pour le 1 inférieur. Sinon, dans les fractales standard, les valeurs des identifiants pour les fractales ne coïncident pas avec les valeurs de tampon de cet indicateur personnalisé :

Des fractales standard :

Constant

Valeur

Description

MODE_UPPER

1

Ligne supérieure

MODE_BAS

2

Ligne de fond


Tampons de l'indicateur personnalisé :

0 Ligne supérieure
1 Ligne de fond

 
Artyom Trishkin:

Eh bien... vous ne l'appelez pas correctement - il n'a que deux paramètres dans les paramètres et vous mettez 3 après le nom.

Et pourquoi vous le normalisez ? Vous n'en avez pas besoin ici.

mode_fractal est la fractale supérieure ou inférieure, vous ne pouvez pas vous en passer.

Le zéro est écrit après le point

 
mila.com:

mode_fractal est la fractale supérieure ou inférieure, comme sans elle.

le zéro est inscrit après la période

J'ai écrit plus haut que les valeurs de l'indicateur standard et de votre indicateur personnalisé ne correspondent pas.
 
Artyom Trishkin:
J'ai écrit plus haut que les valeurs de l'indicateur standard et de votre indicateur personnalisé ne correspondent pas.
Faux - ils le font. Vous devez regarder plus profondément...
 
Pourquoi n'y a-t-il pas de Fibonacci dans Meta Trader 4 mais dans la description ?
 
SLANDOV:
Pourquoi n'y a-t-il pas de Fibonacci dans Meta Trader 4 mais dans la description ?
Comment se fait-il qu'il ne soit pas là ? Il y a : Insert menu item --> Fibonacci
 
Artyom Trishkin:
Comment ça, non ? Il y a : l'élément de menu "Insertion" --> "Fibonacci".
MetaTrader4 de PlayMarket
 
SLANDOV:
MetaTrader4 de PlayMarket
Malheureusement, je ne peux pas voir MT4 sur mon appareil Android ou iOS pour le moment...