¿Cómo codificar? - página 78

 

Ya he conseguido que funcione.

 
hedge4x:
Esta línea while(!IsAllClosed) {CloseAllTrades(); return;}

en el arranque principal cerrará todas las posiciones abiertas si MT cae

y lo vuelvo a poner en marcha. ¿Hay alguna manera de poner esta línea

en la función closealltrades para que no cierre todas las posiciones abiertas

después de reiniciar MT4?

Gracias.

Sí, lo siento puedes definir el bool en el momento de inicio así :

bool IsAllClosed = true ; //Global variable[/PHP]

Then it becomes even better to define a extern variable, so you can keep the control :[PHP]extern bool CloseAll = false ; //Global variable

void CloseAllTrades()

{

int cnt;

CloseAll = false;

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

CloseAll = CloseAll || !OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

}

}

void start()

{

while(CloseAll) {CloseAllTrades(); return;}

...

La principal ventaja de este método es que el EA intenta cerrar cada posición en cada tick hasta que todas estén cerradas.

 

Necesito ayuda con mi primer EA semiprofesional

Hola a todos...

Hice un EA por el gran sitio web bulder asesor experto y lo pruebo y encontró profitble para el último año, pero creo que se puede mejorar ...

Si alguien puede ayudar a mejorar ese EA?

detallado sobre EA..

el EA pased en dos indecators uno de ellos es el mío y el otro se puede encontrar en bublic fourms " cero lag macd "

Ahora el experto está trabajando todo el tiempo entrar en la compra a continuación, cerrar y revertir a vender y así sucesivamente ...

necesito hacer que funcione sólo en tiempos spesfic, añadir un money managemint y la última cosa que necesito para retrasar la excute de comprar o vender con la próxima vela "1 minuto", pero el trabajo EA en la vela 1H de hecho ...

asi que espero encontrar como se puede ayudar en eso

Gracias a todos

Saludos cordiales

Tamer

Archivos adjuntos:
 

¿cómo hacer referencia al nombre del archivo que estoy ejecutando?

Hola,

Quiero saber cómo puedo hacer referencia a un nombre de archivo que estoy ejecutando.

Por ejemplo si ejecuto un script llamado supertrader.mq4 y quiero abrir un archivo de registro llamado supertrader_logfile desde el script supertrader.

¿Hay alguna variable que contenga el nombre del archivo que estoy ejecutando?

Gracias.

 
star90:
Hola,

Quiero saber cómo puedo hacer referencia a un nombre de archivo que estoy ejecutando.

Por ejemplo, si ejecuto un script llamado supertrader.mq4 y quiero abrir un archivo de registro llamado supertrader_logfile desde el script supertrader.

¿Hay alguna variable que contenga el nombre del archivo que estoy ejecutando?

Gracias.

Quizás añadiendo void Print( ...) al script.

void Print( ...) Imprime un mensaje en el registro de expertos.

 

Para adria

¿Has visto mi MP?

Big Be

 

Ola de lobos. Necesito su ayuda

Estimado Codersguru,

No soy programador y en mi estilo de prueba y error, la onda de lobo que intenté mejorar está dando la señal " el segundo parámetro, ObjectTextSetFunction debe ser una cadena.

Por favor, ayúdame a rectificar.

Gracias de antemano.

Archivos adjuntos:
wolfwave.rar  3 kb
 

Hola chicos Necesito una función bool que devuelva true si han pasado 5 minutos, o 10 minutos o lo que sea. Ya sé cómo comprobar si hay una nueva barra, pero no es lo suficientemente frecuente.

 
nittany1:
Hola chicos Necesito una función bool que devuelva true si han pasado 5 minutos, o 10 minutos o lo que sea. Ya sé cómo comprobar si hay una nueva barra, pero no es lo suficientemente frecuente.

Quizás

double LastRedraw = 0;

if(TimeLocal() - LastRedraw > 300)

{

Print();

ObjectsRedraw();

Print("ObjectsRedraw Done");

LastRedraw = TimeLocal();

}

 
Linuxser:
Quizás

double LastRedraw = 0;

if(TimeLocal() - LastRedraw > 300)

{

Print();

ObjectsRedraw();

Print("ObjectsRedraw Done");

LastRedraw = TimeLocal();

}

[/code]

O esto:

[CODE]

bool ElapsedTimeCheck(int MyMinutes)

{

static datetime OldTime;

if (OldTime == 0)

OldTime = TimeCurrent() + MyMinutes * 60; // se inicializa una vez...

if (TimeCurrent() >= OldTime)

{

OldTime = TimeCurrent() + MyMinutes * 60;

bool cond = true;

}

else cond = false

return(cond);

}