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

Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
No llamar desde otro indicador :)
O mostrar cómo lo haces.
Lo llamo desde esta función
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
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()
Llamada desde esta función
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.
Lo llamo desde esta función
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
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
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.
¿Por qué no hay Fibonacci en Meta Trader 4 sino en la descripción?
¿Cómo que no? Hay: elemento de menú "Insertar" --> "Fibonacci"
MetaTrader4 de PlayMarket