¿Cómo codificar? - página 44

 

Día de hoy ralph.ronnquist

¿entonces debo crear otra línea sdl algo así como SDLL = largo SDLS = corto?

Creo que estoy en lo cierto al decir que en la SDL indi

uptrend = buffer 1 & Index 1 color Azul

dntrend = buffer 2 & Index 2 color Rojo

Si es así ¿dónde los pongo? ¿los pongo al final de la línea iCustom?

double SDL=iCustom(NULL,0, "Slope Direction Line",period,method,price,1,1,shift);

o estoy muy equivocado

 

La declaración

double SDL=iCustom(NULL,0,"Slope Direction Line",period,method,price,1,shift);

hace que SDL mantenga el valor de la segunda memoria intermedia (Uptrend) en la barra "shift" dada.

(Observe que tiene un ",1" repetido, que parece un error tipográfico. En cualquier caso no debería estar ahí)

Así que, sí, si quieres leer tanto Uptrend como Dntrend, entonces necesitarás dos variables para mantener los valores. Como dices, Uptrend es 1 y Dntrend es 2.

 

Hola ralph

Gracias por la ayuda Ya funciona, ya me puedo ir a dormir.

Saludos

Beno

 
wolfe:
Espero que esto es lo que estabas buscando.

Me envió en la dirección correcta - gracias hombre, realmente apreciado.

Mi nuevo problema es que cuando mi declaración if se llama....

Sale el valor de la barra anterior del indicador en relación con la barra actual, y envía un Alert(); que he creado... unas 20 veces.

¿Cómo puedo hacer para que sólo se envíe una vez?

Intenté crear un interruptor de encendido/apagado usando variables... no funciona en MQL4 desafortunadamente.

Entonces pensé en los temporizadores ... si había un temporizador que podría crear que sólo Alerted una vez durante un período de 20 segundos que trabajaría too....

Pero estoy una pérdida en cuanto a una idea que realmente sería posible en MQL4.

¿Alguna idea?

 

En otras palabras... Necesito alguna forma de evitar que se alerte después de la primera, porque en este momento está alertando múltiples veces (molesto e innecesario como se puede adivinar)

 
dharsant:
En otras palabras... Necesito alguna manera de evitar que se envíe la alerta después de la primera, porque en este momento se envía la alerta varias veces (molesto e innecesario como se puede adivinar)

¿Podría proporcionarnos algo de código para que lo veamos?

Tal vez podría configurar un booleano verdadero/falso para que se active después de que se envíe la alerta por primera vez.

 

No estoy seguro de qué código tendría sentido. Aquí está mi declaración if para la alerta.

"Code":

latestlatestmain = 2 barras atrás en mi indicador.

latestmain = barra anterior en mi indicador

if(MainCCI > ErgoCCI){

{señal = "SHORT";

if ((latestlatestmain >= 0) && (latestmain < 0)) {

PlaySound("alert2.wav");

}

}

if(últimaseñal != señal && alertTag!=Time[0]){

alertTag = Tiempo[0];

lastsignal=señal;

}

}

if (MainCCI < ErgoCCI){

{señal = "LONG";

if ((lastlatestmain 0)) {

PlaySound("alert2.wav");

}

Este es el indicador FX Sniper, y cuando se ajusta a mis parámetros envía la Alerta.

¿Cómo puedo hacer para configurar un booleano verdadero/falso?

He intentado hacer esto.....

"Código con interruptor de encendido/apagado":

if(MainCCI > ErgoCCI){

{señal = "SHORT";

if ((latestlatestmain >= 0) && (latestmain < 0)) {

if (onealert == 1) {

PlaySound("alert2.wav");

onealert = 0;

} }

}

if(lastsignal != signal && alertTag!=Time[0]){

alertTag = Tiempo[0];

lastsignal=señal;

}

}

if (MainCCI < ErgoCCI){

{señal = "LONG";

if ((latestlatestmain 0)) {

if (onealert == 0) {

PlaySound("alert2.wav");

onealert = 1;

} }

o alguna variante de eso, para crear el on/off con variables.

¿Hay algo más que pueda hacer usando booleanos? ¿Alguna idea de cómo puedo hacer eso?

Por el momento funciona bien en cuanto a alertarme, solo me avisa unas 5-6 veces.

Te agradezco el tiempo y la ayuda compañero.

-dharsant

 

Sólo pensé que lo había resuelto, y que Sleep(); funcionaría.... darn

 

He encontrado esto por Codersguru;

void AlertOnce(string alert_msg, int ref)

{

if (ref > 10)

return;

ref--;

static int LastAlert[10];

if( LastAlert[ref] == 0 || LastAlert[ref] < Bars)

{

Alert(alert_msg);

LastAlert[ref] = Bars;

}

}

¡¡Se parece a lo que busco!!

Al usar esto con mi indicador...

¿Podría simplemente colocar la función en mi script, y luego usar

AlertOnce("Sniper va a LONG",10);

en lugar de mi Alert(); ?

Me siento como un pequeño programador inexperto

 

Lo tengo, ¡¡¡gracias por la ayuda!!!