Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 2
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Não ligar de outro indicador :)
Ou mostre como você o faz.
Eu o chamo a partir desta função
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
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()
Chamada a partir desta função
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.
Eu o chamo a partir desta função
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
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
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.
Por que não há Fibonacci no Meta Trader 4, mas na descrição?
O que você quer dizer com "não"? Há: item de menu "Inserir" --> "Fibonacci
MetaTrader4 do PlayMarket