Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 2

 
Artyom Trishkin:

No llamar desde otro indicador :)

O mostrar cómo lo haces.

Lo llamo desde esta función


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);
}

Y a su vez de esto

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);
}

Esto es en OnCalculate()

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

Llamada desde esta función


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);
}

Bueno... no lo llamas correctamente - sólo tiene dos parámetros en la configuración, y pones 3 después del nombre.

¿Y por qué lo normalizas? No es necesario.

 
mila.com:

Lo llamo desde esta función


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);
}

Tenga en cuenta, que en mode_fractal tiene que escribir el número de búfer de este indicador personalizado - para el 0 superior, para el 1 inferior. De lo contrario, en los fractales estándar, los valores del identificador para los fractales no coinciden con los valores del búfer de este indicador personalizado:

Fractales estándar:

Constante

Valor

Descripción

MODE_UPPER

1

Línea superior

MODE_LOWER

2

Conclusión


Tampón del indicador personalizado:

0 Línea superior
1 Resultado final

 
Artyom Trishkin:

Bueno... no lo llamas correctamente - sólo tiene dos parámetros en la configuración y pones 3 después del nombre.

¿Y por qué lo normalizas? No lo necesitas aquí.

mode_fractal es el fractal superior o inferior, no se puede prescindir de él.

El cero se escribe después del punto

 
mila.com:

mode_fractal es el fractal superior o inferior, como sin él.

el cero se inscribe después del período

Escribí más arriba que los valores del indicador estándar y el personalizado no coinciden.
 
Artyom Trishkin:
Escribí más arriba que los valores del indicador estándar y el personalizado no coinciden.
Error: lo hacen. Tienes que mirar más profundamente...
 
¿Por qué no hay Fibonacci en Meta Trader 4 sino en la descripción?
 
SLANDOV:
¿Por qué no hay Fibonacci en Meta Trader 4 sino en la descripción?
¿Cómo es que no está ahí? Hay: opción de menú Insertar --> Fibonacci
 
Artyom Trishkin:
¿Cómo que no? Hay: elemento de menú "Insertar" --> "Fibonacci"
MetaTrader4 de PlayMarket
 
SLANDOV:
MetaTrader4 de PlayMarket
Lamentablemente no puedo ver MT4 en mi dispositivo Android o iOS en este momento...
Razón de la queja: