Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Hola expertos, ¿cuál es su opinión sobre esta solución?
Hola expertos, ¿cuál es su opinión sobre esta solución?
Por supuesto. Esto es un cierre total todo.
A veces hay situaciones (por ejemplo, usted quiere cerrar demasiadas operaciones abiertas inmediatamente) cuando la versión "original" no funciona. Esta versión es buena para esto.
Por supuesto. Esto es un cierre total.
A veces hay situaciones (por ejemplo, usted quiere cerrar demasiadas operaciones abiertas inmediatamente) cuando la versión "original" no funciona. Esta versión es buena para esto.
Hola,
Tengo una pregunta sobre los bucles while. Quiero ejecutar el EA actual en un bucle con la mayor frecuencia posible. Así que mi idea es poner el código actual dentro de un bucle while con una función sleep incluida dentro que hace que el while sólo se ejecute cada 1 milisegundo.
Sin embargo, cuando hice esto, (tengo algunas llamadas a la función Print("...") que mantiene un registro de lo que está sucediendo en cada bucle), veo esta congelación, y no más impresiones en la pantalla.
Me pregunto cuál puede ser el problema. ¿Es correcto ejecutar el EA en un bucle tan frecuente como 1ms? ¿Habría un problema con tratar de obtener la última oferta / demanda, por ejemplo, desde el servidor cada milisegundo? ¿Esto pondría demasiada carga allí, causando la congelación?
Posiblemente algo más mi algoritmo está haciendo esto, no estoy seguro.
Lo he ejecutado en ciclos de 200ms y sigo teniendo el mismo problema (aunque no tan inmediato). ¿Podría haber un problema con la impresión de demasiadas líneas en el archivo de registro?
Gracias por cualquier consejo sobre esto.
Saludos,
C.
14967057:
Tengo una pregunta sobre los bucles while. Quiero ejecutar el EA actual en un bucle con la mayor frecuencia posible.
Así que mi idea es poner el código actual dentro de un bucle while con una función sleep incluida dentro que haga que el while sólo se ejecute cada 1 milisegundo.
¿Podría haber un problema al tratar de obtener la última oferta o demanda?
¿Podría haber un problema con la impresión de demasiadas líneas en el archivo de registro?
Hola,
Resulta que el problema que tenía no era debido a encapsular mi código EA dentro de un bucle while con un sleep de 1ms. Esta parte parece estar bien (independientemente de que imprima a pantalla o no) ya que lo tengo funcionando desde hace media hora sin fallos.
El problema se debía a otro while furtivo que tenía en el código y que al final hacía que el EA se quedara atrapado en un bucle infinito.
Gracias por las aportaciones gooly y Roesder.
Saludos,
Hola a todos. He leído este tema y tengo una pregunta. Trato de hacer un código, que eliminar la orden pendiente (sólo STOP, sin LÍMITE), pero sólo si otro orden pendiente se activó (inicio ser OP_SELL o OP_BUY). Así que el código es este (pero hay un error, pero no sé dónde). ¿Podría ver mi código por favor?
OrdersTotal() no es correcto...
Me ha sorprendido que la secuencia de código for..loop que utiliza OrdersTotal() no da resultados correctos (observado con dos brokers diferentes).
Estoy usando la versión 1090 de MT4 en un escritorio Linux Ubuntu-MATE 16.04, corriendo WINE 3.0
Esto es lo que he estado usando...
for(int cc = 0; cc < OrdersTotal(); cc++)
{
if (!OrderSelect(cc, SELECT_BY_POS, MODE_TRADES) ) continue;
if (OrderSymbol() != Symbol() ) continue;
if (OrderType() > 1) continue; //--ignorar las operaciones pendientes
OpenTradecnt++; //--cuenta cada posición viva de ese símbolo que exista
Print("el recuento de las operaciones abiertas de este símbolo es: ", OpenTradecnt);
}
He notado con dos brokers diferentes que el valor de OrdersTotal() no siempre coincide con lo que se muestra en la pestaña 'Trade' del broker de MT4. Inicialmente, pensé que era el broker el que hacía que OrdersTotal() no funcionara correctamente. Cuando me di cuenta en el segundo broker, empecé a preguntarme si MT4 tenía un 'problema' interno, o si mi código era incorrecto O si se trataba de un problema de sincronización de MT4 con el servidor .....
Después de leer este hilo del foro, me pregunto si tendría un cambio en los resultados para cambiar el for..loop para leer:
for(int cc = OrdersTotal() - 1; cc >= 0; cc--)
{
...........
}
O, ¿hay alguna bandera o línea de código que garantice que el OrdersTotal() se sincronice correctamente durante un evento OnTick()?
¡Cualquier aclaración con respecto a esto sería muy útil y sería muy apreciado!
Por favor, utilice el botón </> para insertar su código.