¡Pide! - página 53

 

Alarma

¿Cómo escribir una alarma para tenerla sólo 1 vez y no una y otra vez?

Gracias por la ayuda.

Jo

 

Muchas funciones están aquí https://www.mql5.com/en/forum/174329

Y el hilo alert_once está aquí https://www.mql5.com/en/forum/172885

 

Por favor, compruebe esta afirmación - ¡Necesito confirmación!

iLow(NULL,0,Lowest(NULL,0,MODE_LOW,1,4)<=0)

¿Dice esto que el mínimo de mi indicador (4 barras atrás) debe ser menor o igual a 0? Si no es así, ¿cómo debería ser declarado?

Dave ¡Gracias de antemano!
 
iscuba11:
iLow(NULL,0,Lowest(NULL,0,MODE_LOW,1,4)<=0)

¿Dice esto que el mínimo de mi indicador (4 barras atrás) debe ser menor o igual a 0? Si no es así, ¿cómo debería indicarse?

Dave ¡Gracias de antemano!

eso no es correcto, puedes mirar el post 516 en la página 52

la forma de calcular el mínimo del indicador no es correcta

 
asmdev:
eso no es correcto, puedes mirar el post 516 en la página 52 la forma de calcular el mínimo del indicador no es correcta
double lowestFG=9999, highestFG=-9999;//FG short for Forex_Grail, the name of my indicator histogram file.

int currentBar=0;

int endBar=4;

for(currentBar=0;currentBar<endBar; currentBar++)

lowestFG=MathMin(lowestFG, iForex_Grail(Symbol(),0,17,PRICE_CLOSE,currentBar)); //0 = anytime, 17 = maperiod of indicator.

if lowestFG <= 0 then go to next statement
¿Esto se lee bien? Dave

Cuando pongo esto en mi programa EA, dice que la función iForex_Grail no está definida? Forex_Grail es el nombre de mi indicador personalizado.

Tal vez se debe indicar: lowestFG=MathMin(lowestFG, iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,currentBar)); ?

 

¡Encontré mi error!

Dave

 

¡¡Demasiados decimales!! - Por favor, aconséjeme.

¿Cómo puedo limitar la cantidad de decimales que muestra un comentario en el gráfico? Ahora mismo muestra un resultado variable como .00347892, y quiero que sólo muestre .0035 (redondeado al siguiente número)?

Aprecio su opinión. Dave
 
double lowestFG=9999, highestFG=-9999;

int currentBar=0;

int lastBar=4;

for(currentBar=0;currentBar<lastBar; currentBar++)

lowestFG=MathMin(lowestFG, iCustom(NULL,0,"Forex-Grail Trade Indicator",period,PRICE_CLOSE,currentBar));

Print ("Low =",lowestFG);

Esto lee desde el buffer ' 0 ' del indicador [0. 00 a positivo](¡Funciona bien!). ¿Cómo consigo que lea del buffer' 1' del indicador [0 . 00 a negativo]?

Definición del enunciado: double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) - En ningún sitio pide un número de buffer?????????????? ¡¡¡¡AYUDA!!!! Parece que está bloqueado en el buffer ' 0 '.

¡Por favor, ilumínenme!

Dave

 

iCustom( cadena símbolo, int plazo, cadena nombre, ..., int modo, int desplazamiento)

'mode' es su buffer

iCustom( ... ...parámetros del indicador aquí ... , 0, currentBar) - leerá del buffer 0

iCustom( ... ...parámetros del indicador aquí ... , 1, currentBar) - leerá del 1er búfer

algo de información aquí http://docs.mql4.com/indicators/iCustom

lowestFG=9999 debería estar bien pero para estar seguro puede escribir

lowestFG = iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,1,currentBar) en su lugar

La función DoubleToStr(http://docs.mql4.com/convert/DoubleToStr) limitará el número de decimales, se utiliza sobre todo para obtener un buen aspecto para la función de impresión o de alerta. La función no redondeará sino que simplemente cortará los decimales innecesarios.

Si usas este doble # para compararlo con otro # todavía tienes un montón de # después del punto decimal

utilice NormalizeDouble(http://docs.mql4.com/convert/NormalizeDouble) para limitar el número de decimales de forma permanente

de acuerdo con su iCustom su indicador tiene 2 parámetros período y precio (PRICE_CLOSE), comprobar si eso es correcto

 
iscuba11:
Esto lee desde el buffer ' 0 ' del indicador[0.00 a positivo](¡Funciona bien!).

Es una coincidencia que funcione bien, si su indicador FG tiene 2 parámetros (período y precio) necesita añadir 1 parámetro más en el iCustom como en el post anterior, si su indicador FG tiene 1 parámetro (período) entonces reemplace PRICE_CLOSE con el buffer #(0 o 1 o 2 o ...)