Limitar el maximo numero de ordenes al día MT4Hola a tod@s, la velita de antes de ayer por la noche del dax me ha activado una secuencia de ordenes seguidas en el EA, nada grave por suerte, ahora el riesgo de que ocurra ha bajado, pero aun existe y no me gusta nada, la pregunta que me hago es conoceis alguna forma de limitar la cantidad de ENTRADAS de ordenes por día digamos a 2, sin que deje de ejecutar las que tengan T profits y que ya estan en el mercado.
Saludos y gracias
Re: Limitar el maximo numero de ordenes al día MT4Hola baltic46!
Desde mi ignorancia de estudiante de MQL4, lo que haría es que al primer tick de apertura de las 8:00 del DAX, el programa hiciera un bucle con valor de 2. Luego crear un operador condicional que cuando haya dado esas 2 vueltas, cierre la salida del OrderSend. Así que aunque el programa le mande mensajes contínuos de poner órdenes, en la expresión definitiva del OrderSend lo limitará a las 2 primeras por dia que le llegarán. También dejaría correr las activas del dia anterior. Al dia siguiente a las 8:00, haría un reset del bucle a 0 y de nuevo limitaría en nº de órdenes a 2. Lo que para que eso funcione tu EA tiene que estar en marcha a las 8:00, ya que eso "la hora" sería el activador. Saludos.
Re: Limitar el maximo numero de ordenes al día MT4Gracias por el aporte, lo intetaré esta noche a ver que sale, también había pensado hacer un recuento de órdenes que estén dentro, y filtrarlas por la fecha y hacer la limitación con un condicionante a un máximo de 2 por día.
Saludos
Re: Limitar el maximo numero de ordenes al día MT4Si sabes hacerlo por fecha creo que aún es mejor.
No se si se puede extraer la fecha del ticket del OrderSend de las órdenes ya colocadas, yo no lo se hacer. Si te sale bien, podrias colocar aqui esa parte del código... será de interés para los que aprendemos. Un saludo.
Re: Limitar el maximo numero de ordenes al día MT4La posible solución al problema la he planteado de la siguiente forma, para el dax que empieza a las 8:00 y termina a las 22:00. Se hace un recuento de órdenes totales a las 8:00 mediante OrdersTotal(), se le asigna una variable a ese valor, cada vez que se llame a meter una orden se le pone un condicionante de que la OrdersTotal() sea <=al número de órdenes por día+ la propia variable que ha guardado la cantidad de órdenes a las 8:00
8:00. Variableordenestotales= OrdersTotal() If( Orderstotal()<=variableordenestotales+2) Llamamos a Largos Y con esto creo que se limitan. Saludos
Re: Limitar el maximo numero de ordenes al día MT4Me parece bien... lo que no doy es con lo de poner la hora en una variable para que pregunte si es >= a 8:00.
He probado con Hour, TimeCurrent, TimeLocal y no me sale en BackTest.
Re: Limitar el maximo numero de ordenes al día MT4El MT4 generalmente actúa cuando se produce un tick, por lo que las 8:00:00 es difícil de pillarlo, lo que puedes hacer son dos formas, una es utilizar la función OnTime que realiza cálculos cada segundo y otra que es como lo hago yo es darle margen para calcular lo de las 8:00, a ver si lo explico, utilizo en la función Start() que se calcula a cada tick una variable que la llamo lahoradecimal y que es double, esta variable utiliza 3 variables más una llamada labora=hour(), otra elminutodecimal=minute()/100, y otra llamada elsegundodecimal=Secods()/10000, de forma que lahoradecimal=lahora+elminutodecimal+elsegundodecimal de forma que las 8:00:00 sería la horadecimal= 8.0000 y las 8 y 15 segundos sería lahoradecimal=8.0015. Para hacer el recuento de órdenes a las 8:0000 le pongo el condicionante que eso lo haga cuando laboradecimal>=8 y labora decimal<=8.0015 de forma que garanticemos que en esos 15 segundos se produce un tick y poder hacer el recuento de órdenes, eso si cuando metas órdenes debes de pedirle al EA que las haga después de las 8:0015
Es un poco a lo bruto pero yo soy bastante novato en MT4 pero a mi me funciona Existen otras formas más elegantes como cuando se produzca un chartevent pero no he investigado por ese lado. En tu caso que le has puesto hour()>=8 te va a calcular las órdenes totales en cada tick que se de entré las 8:00 y las 8:5959 y es una hora de margen debes de limitar con un <= para utilizar un intervalo de tiempo con 10-15 seg vas sobrado Saludos
Re: Limitar el maximo numero de ordenes al día MT4chicos, escribi el codigo de una forma de fijarse cuantas ordenes hay, lo hice como subprograma, para que simplemente coloquen antes de OrderSend en sus EA el codigo
espero les sea util
15 mensajes
• Página 1 de 2 • 1, 2
|
|
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados