Ayuda a la codificación - página 350

 
apprentice coder:
¿Cómo puedo comprobar desde el código si la conexión con el broker está activada o desactivada?

Puede utilizar la función IsConnected() para ello, pero ...

Esa función nunca será alcanzada si no hay nuevos ticks entrando.

Así que tienes que mantenerla en un bucle sin fin (lo cual es inaceptable para un EA) o tienes que usar eventos de temporizador para comprobarlo (en cuyo caso, si es un EA, podría avisar de que no hay conexión. Supongo que todos consideramos que los indicadores son menos críticos en cuanto a la conexión - no hay operaciones con órdenes y demás - por lo que la solución del temporizador se puede aplicar a los indicadores también, pero probablemente son menos importantes para comprobar desde allí que desde el EA) . De lo contrario, su código no sabrá que la conexión se ha perdido

 
mladen:
Puedes usar la función IsConnected() para eso, pero ...

Esa función nunca será alcanzada si no hay nuevos ticks entrando.

Entonces, tienes que mantenerlo en un bucle sin fin (lo cual es inaceptable para un EA) o tienes que usar eventos de temporizador para comprobarlo (en cuyo caso, si es un EA, podría avisar de que no hay conexión. Supongo que todos consideramos que los indicadores son menos críticos en cuanto a la conexión - no hay operaciones con órdenes y demás - por lo que la solución del temporizador se puede aplicar a los indicadores también, pero probablemente son menos importantes para comprobar desde allí que desde el EA) . De lo contrario, su código no sabrá que la conexión se ha perdido

¿Puedes publicar algún ejemplo de código que haga eso, por favor?

 
apprentice coder:
¿Puedes publicar algún ejemplo de código que haga eso, por favor?

Publicaré un ejemplo mañana. ¿OK?

 
mladen:
Publicaremos un ejemplo mañana. ¿DE ACUERDO?

BIEN. Vamos a descansar un poco

 
apprentice coder:
¿puedes poner algún ejemplo de código que haga eso, por favor?

aprendiz de codificador

Aquí hay un indicador simple (pero la forma en que se utiliza, se puede hacer exactamente lo mismo en el EA) que comprueba el estado de la conexión del corredor en un intervalo de tiempo deseado : _check_connection.mq4

#property indicator_chart_window

extern int CheckStatusEveryNMilliseconds = 250;

int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); }

int deinit() { EventKillTimer(); return(0); }

int start() { return(0); }

void OnTimer()

{

static bool previouslyConnected = true;

bool currentlyConnected = IsConnected();

if (previouslyConnected != currentlyConnected)

{

previouslyConnected = currentlyConnected;

string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected";

Comment("connection status changed.\nterminal is now : "+cdescription);

}

Como puedes ver, es un simple ejemplo de cómo se puede hacer

Archivos adjuntos:
 
mladen:
aprendiz de codificador

Aquí hay un indicador simple (pero la forma en que se utiliza, se puede hacer exactamente lo mismo en el EA) que comprueba el estado de la conexión del corredor en un intervalo de tiempo deseado : _check_connection.mq4

#property indicator_chart_window

extern int CheckStatusEveryNMilliseconds = 250;

int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); }

int deinit() { EventKillTimer(); return(0); }

int start() { return(0); }

void OnTimer()

{

static bool previouslyConnected = true;

bool currentlyConnected = IsConnected();

if (previouslyConnected != currentlyConnected)

{

previouslyConnected = currentlyConnected;

string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected";

Comment("connection status changed.\nterminal is now : "+cdescription);

}

Como puedes ver, es un simple ejemplo de cómo se puede hacer

gracias :0

Veo que funciona incluso hoy (sin ticks). interesante. aprender, aprender

 
mladen:
Cambie el nombre del fxpreislevelsv5.ex4 o del fxpreislevelsv5.dll (metatrader no reconoce las extensiones en este caso - tiene que tener un nombre diferente del archivo independientemente de la extensión)

¡¡¡Gracias por la ayuda!!!

Pero me encontré con un problema diferente después de compilar no había errores pero no se ejecuta y sigue eliminando

"2014.09.20 19:56:40.262 Indicador personalizado Trend_Imperator_V2e GBPUSDe,M5: eliminado

2014.09.20 19:56:38.901 Indicador personalizado Trend_Imperator_V2e GBPUSDe,M5: cargado con éxito"

siempre ocurre ¿tengo que actualizar los códigos?

 
forexeaexpert:
¡¡¡Gracias por la ayuda!!!

Pero me encontré con un problema diferente después de compilar no había errores pero no se ejecuta y sigue eliminando

"2014.09.20 19:56:40.262 Indicador personalizado Trend_Imperator_V2e GBPUSDe,M5: eliminado

2014.09.20 19:56:38.901 Indicador personalizado Trend_Imperator_V2e GBPUSDe,M5: cargado con éxito"

siempre ocurre ¿tengo que actualizar los códigos?

forexeaexpert

Ese error suele ocurrir cuando se llama al indicador con parámetros erróneos

Compruebe los parámetros en la llamada iCustom() a ese indicador

 

Hola mladen ,

Yo estaba tratando de insertar este indicador a mi ea .

Pero después de las pruebas que sólo estaba recibiendo una señal de compra.

Por favor, ayúdame a ver si es un código correcto que insertar

MACD = iCustom(NULL,0,"MACD_ColorHist_Alert_EMA 2",FastEMA,SlowEMA,SignalEMA,true,true,true,false,false,false,false,false,false,false,false,0);

Y sé que macd>0 y macd<0 es la señal que cruza la línea cero.

Pero, ¿cómo puedo obtener otra señal de la dirección de la pendiente?

Me siento muy confundido, después de intentar tantas veces.

Archivos adjuntos:
 
stevenpun:
Hola mladen ,

Estaba tratando de insertar este indicador a mi ea .

Pero después de la prueba que sólo estaba recibiendo una señal de compra.

Por favor, ayúdame a ver es que un código de la derecha i insertar

MACD = iCustom(NULL,0,"MACD_ColorHist_Alert_EMA 2",FastEMA,SlowEMA,SignalEMA,true,true,true,false,false,false,false,false,false,false,false,0);

Y sé que macd>0 y macd<0 es la señal que cruza la línea cero.

Pero, ¿cómo puedo obtener otra señal de la dirección de la pendiente?

Yo estaba muy confundido, después de intentar tantas veces

stevenpun

Para eso lo más fácil sería añadir algún buffer de "dirección de la pendiente" a ese indicador o utilizar algún otro MACD que ya tenga esa pendiente resuelta en un buffer

Razón de la queja: