Programar cambio de día

Responder
Nerol
Mensajes: 3
Registrado: 11 Sep 2022 20:37

Programar cambio de día

Mensaje por Nerol »

Buenas, estoy creando un EA que abre operaciones cada día a la misma hora y si llega a su tp o sl se cierran, pero no se cómo puedo programar para que cada noche se reinicie automáqticamente, básicamente lo necesito para hacer backtesting de largos periodos, actualmente solo puedo verificar hacer día a día y me genera mucho trabajo si quiero probar variantes.

Gracias
Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Programar cambio de día

Mensaje por Foréxitos »

Hola Nerol, una vez me topé con este mismo problema y lo solucione con una variable y la función Day(). No sé si es la mejor manera porque una misma idea puede ser programada mil veces. Ahora no estoy con mi CPU así que te lo explico fácil por si acaso.
Creas por fuera una variable:
Int d;
Y en la condición que pone tu orden diaria le agregas lo siguiente:
if(.............&&d!=Day()){............d=Day();}
Saludos.
ImagenImagenImagenImagenImagen
Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Programar cambio de día

Mensaje por Foréxitos »

Para, estoy viendo que tu EA pone más de una orden por día.... entonces no te sirve lo que te puse porque te pondría una por día...
ImagenImagenImagenImagenImagen
Nerol
Mensajes: 3
Registrado: 11 Sep 2022 20:37

Re: Programar cambio de día

Mensaje por Nerol »

Gracias Foréxitos por la respuesta, para concretar, lo que necesito es poder ejecutar el EA en el "probador de estrategias" y que pueda hacer un mes seguido (por ejemplo) sin tener que ir cambiando la fecha día a día (que es lo que hago ahora) porque si lo ejecuto (por ejemplo una semana) me hace la operación del primer día, pero el resto de días no.
El EA abre una operación y si se cierra en SL abre otra que si cierra en SL ya no hace nada más hasta el día siguiente. Si la primera operación alcanza el TP se detiene y no vuelve a ejecutar hasta el día siguiente.
No se si me explico.
Gracias
Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Programar cambio de día

Mensaje por Foréxitos »

Hola Nerol... entonces esta bien lo que te dije pero le tendrías que agregar lo siguiente.... (todo eso si vas de a una orden)
if(.............&&d!=Day()&&OrdersTotal()<1){............d=Day();}
acá estas diciendo:
si se da la condición de entrada (que eso depende de como lo hiciste) y la variable "d" no es igual que el día actual y el total de las ordenes es cero... poneme una orden (esto ya lo hiciste con TP y SL) y dale a "d" el nuevo valor que es el día actual. Saludos
ImagenImagenImagenImagenImagen

Nightmare
Mensajes: 459
Registrado: 23 May 2018 09:23

Re: Programar cambio de día

Mensaje por Nightmare »

Nerol escribió: 11 Sep 2022 20:46 ... EA que abre operaciones cada día a la misma hora...

Gracias

bool verificaHora()
{
int gmtHoraInicioMasOffset = HoraGMTdeseada + GMToffset;

if (gmtHoraInicioMasOffset > 23) gmtHoraInicioMasOffset -= 24;
if (gmtHoraInicioMasOffset < 0) gmtHoraInicioMasOffset += 24;

bool miFiltroHorario = ( TimeHour(TimeCurrent()) == gmtHoraInicioMasOffset );

if ( miFiltroHorario ) return true;
else return false;
}

donde
HoraGMTdeseada: hora gmt a la que quieres abrir operacion, si por ejm pones 22 que es el inicio de cada dia.

GMToffset: depende del broker (y de la epoca del año q cambia en 1)
Nerol
Mensajes: 3
Registrado: 11 Sep 2022 20:37

Re: Programar cambio de día

Mensaje por Nerol »

Hola,
@Foréxitos, @Nighmare

Mil Gracias, lo pruebo y os digo
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Expert Advisors”