Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 2

 
Artyom Trishkin:

Não ligar de outro indicador :)

Ou mostre como você o faz.

Eu o chamo a partir desta função


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

E, por sua vez, a partir disto

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

Isto é tudo em OnCalculate()

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

Chamada a partir desta função


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

Bem... você não a chama corretamente - ela só tem dois parâmetros nos ajustes, e você coloca 3 após o nome.

E por que você a está normalizando? Não há necessidade disso.

 
mila.com:

Eu o chamo a partir desta função


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

Observe que no mode_fractal você tem que escrever o número de buffer deste indicador personalizado - para o 0 superior, para o 1 inferior. Caso contrário, nos fractais padrão, os valores de identificação dos fractais não coincidem com os valores de buffer deste indicador personalizado:

Fractal padrão:

Constante

Valor

Descrição

MODE_UPPER

1

Linha superior

MODE_LOWER

2

Conclusão


Buffers do indicador personalizado:

0 Linha superior
1 Resumindo

 
Artyom Trishkin:

Bem... você não a chama corretamente - ela só tem dois parâmetros nos ajustes e você coloca 3 após o nome.

E por que você está normalizando isso? Você não precisa disso aqui.

mode_fractal é fractal superior ou fractal inferior, não se pode passar sem ele.

O zero é escrito após o período

 
mila.com:

mode_fractal é fractal superior ou fractal inferior, como sem ele.

zero é inscrito após o período

Escrevi acima que os valores para o indicador padrão e seu indicador personalizado não correspondem.
 
Artyom Trishkin:
Escrevi acima que os valores para o indicador padrão e seu indicador personalizado não correspondem.
Errado - eles fazem. Você precisa olhar mais fundo...
 
Por que não há Fibonacci no Meta Trader 4, mas na descrição?
 
SLANDOV:
Por que não há Fibonacci no Meta Trader 4, mas na descrição?
Por que não está lá? Existe: Inserir item do menu --> Fibonacci
 
Artyom Trishkin:
O que você quer dizer com "não"? Há: item de menu "Inserir" --> "Fibonacci
MetaTrader4 do PlayMarket
 
SLANDOV:
MetaTrader4 do PlayMarket
Infelizmente, não consigo ver o MT4 no meu dispositivo Android ou iOS no momento.
Razão: