Problema con MT4 al abrir una operación y volver a cerrarla inmediatamente - página 5

 
7bit:

Todavía no se sabe qué EA está causando esto.


Todo lo que hemos visto hasta ahora son los síntomas y algunas teorías. Necesitamos los registros de los expertos en la carpeta experts/logs de los 4 terminales que cubren el mismo período de tiempo para hacer cualquier otra conclusión. Estos registros podrían apoyar o descartar mi teoría y mostrarán quién está enviando las órdenes de cierre.

pensé que estaba ejecutando cada EA en una cuenta/terminal diferente?

//Después de releer el hilo he visto que está ejecutando 30 EAs en 4 terminales.

//z.

 
zzuegg:

pensé que estaba ejecutando cada EA en una cuenta/terminal diferente?

necesitamos tantos registros como terminales haya. Recuerdo que mencionó 4 terminales, cada una ejecutando unos cuantos EAs. Pero realmente no importa cuántos, lo más importante es mirar los registros de todos los terminales al mismo tiempo.

Una operación abierta por el EA1 en la terminal1 podría ser cerrada por el EA2 que se ejecuta en la terminal2. El EA1 reabriría inmediatamente la operación y el EA2 volvería a cerrar inmediatamente esta operación ad infinitum.

El registro de expertos del terminal1 se llenaría de entradas sobre OPEN y el registro de expertos del terminal2 se llenaría de entradas sobre CLOSE. En el historial de la cuenta todas las pérdidas se atribuirán al EA1 porque es el que abre la operación y el EA2 permanecerá completamente bajo el radar, su nombre no se mencionará en el historial de la cuenta. Sólo en el registro de expertos del terminal en el que se está ejecutando.


Lo prometo: Si finalmente se encuentra el EA infractor será el único que no sufrió todo esto, el único que parecía comportarse bien todo el tiempo, el menos sospechoso será el culpable.

 

Una vez, uno de mis EA tuvo un problema similar, el código culpable fue:

if(Close[1]<Open[1] && Close[2] < Open[2]){
  //CLOSE ALL PROFITALBE BUYS
}

Esto ocurrió sólo una vez... tuve la suerte de cerrar sólo las operaciones rentables... así que mi EA hizo 100 operaciones y las cerró tan pronto como fueron positivas.

 



Este problema ocurrió por primera vez en mayo de 2010 y afectó a un EA llamado "Callibre"

Me desperté por la mañana y había un agujero de 4.000 dólares en la cuenta, y la pestaña de Historia tardaba siglos en cargarse.

Hablé con el broker y conseguí un volcado de los registros de su servidor MT4 (adjunto).

También se adjunta un gráfico que muestra las operaciones.

Los registros del servidor correlacionan que las operaciones de apertura y cierre provienen del mismo EA.

En ese momento culpé al EA, pensando que el problema sólo ocurría con ese EA.

*** En el campo Comentarios del registro de transacciones del servidor puedo decir que el mismo EA (Callibre en este ejemplo) abrió las operaciones y luego las cerró directamente.

El problema desapareció durante 4 meses y asumí que era ese EA.

El último par de semanas el problema ha reaparecido, a través de 4 diferentes EAs que han estado funcionando bien durante varios meses, y a través de 2 diferentes corredores.

Este fin de semana desinstalaré todas las copias de MT4 y las volveré a instalar desde cero. También limpiaré la carpeta de Expertos y me aseguraré de que estoy ejecutando la última copia de todo.

Se agradece cualquier otra sugerencia.
 
 
peterc005:
Desde el campo Comentarios en el registro de transacciones del servidor puedo decir que el mismo EA (Callibre en este ejemplo) abrió las operaciones, y luego las cerró inmediatamente.

Pedro: Como ya he explicado, el campo de comentarios muestra quién abrió la operación, pero no muestra quién la cerró. Esto puede ser engañoso y contraintuitivo y es la razón por la que está buscando en el lugar equivocado. El campo de comentarios se establece con el octavo parámetro en la función OrderSend(). Esto es cuando se abre el pedido. Después de este momento el campo de comentario es fijo y no se puede cambiar más. OrderClose() no permite especificar ninguna información textual. No importa cómo o quién cierre la orden, ésta mantendrá su comentario o se le añadirá [sl] o [tp] o algunas otras cadenas para indicar el stoploss o el takeprofit o el cierre parcial o el margin call, etc.

Una orden cerrada por OrderClose() mantendrá su comentario original. El único lugar donde se puede averiguar quién llamó a OrderClose() es buscándolo en los registros de expertos de todos los terminales que estaban funcionando en ese momento.

Por favor, adjunte los 4 logs de expertos de los 4 terminales que se encuentran en la carpeta experts/logs/ en cada máquina en la que tenga un terminal funcionando (este es el log de la pestaña "expertos" de cada uno de estos terminales) para averiguar quién cerró las operaciones. No es el calibre EA.

 

Hola 7bit, en breve subiré los logs.

Una cosa que noté en los logs de los días de infracción fue un montón de estos errores:

00:11:16 Gestor de memoria: no puede asignar 160308896 bytes de memoria

00:11:16 HistoryBase: no hay suficiente memoria para 'EURGBP1' en AddTick()

Haciendo una búsqueda en Google se ve que esto es causado por demasiadas barras en un gráfico. Tenía el parámetro Max Bars configurado en un valor alto para poder descargar más historial, pero desde entonces he reducido esta configuración.

Me pregunto si estos errores han jodido las señales de los indicadores, causando problemas a los EAs.

¡¡¡Ahora mismo esta es mi teoría favorita !!!

 
peterc005:

00:11:16 Manejador de memoria: no puede asignar 160308896 bytes de memoria

00:11:16 HistoryBase: no hay suficiente memoria para 'EURGBP1' en AddTick()


No creo que esto sea relevante. Y tampoco dice quién hizo realmente la llamada a OrderClose().
 
7bit:
No creo que esto sea relevante. Y tampoco dice quién hizo realmente la llamada a OrderClose().

Sigo sospechando que la falta de recursos de memoria fastidió un indicador, provocando la apertura y el cierre de las operaciones. Si es el caso, será muy difícil probarlo.
 

A continuación hay extractos de las dos carpetas de Logs que son un ejemplo de lo que está sucediendo.

Este EA es FAP Turbo LT. que he estado ejecutando durante años y siempre se ha comportado bien.

La carpeta Logs muestra lo que hace MT4, que es abrir y luego cerrar la operación, en este caso la operación # 2662451

Lo extraño es que en el archivo de registro de Expertos, la operación se abre, luego se modifica para establecer el SL + TP, pero no hay ningún registro que muestre que se cerró.

He mirado otros registros en el registro de Expertos cuando el FAP Turbo está funcionando bien, y este EA definitivamente genera un registro de Cierre normalmente, pero no en este caso.

He mirado todos los archivos de registro que he podido encontrar para otras instancias de MT4, pero no hay otras referencias a esta operación.

Carpeta MT4\Logs:

17:28:49 '103028': la orden fue abierta : #2662451 comprar 0.20 EURUSDFXF a 1.2909 sl: 0.0000 tp: 0.0000

17:28:49 '103028': modificar la orden #2662451 comprar 0.20 EURUSDFXF a 1.2909 sl: 0.0000 tp: 0.0000 -> sl: 1.2407 tp: 1.2929

17:29:02 '103028': cerrar la orden #2662451 comprar 0.20 EURUSDFXF a 1.2909 sl: 1.2407 tp: 1.2929 al precio 1.2906

17:29:02 '103028': solicitud aceptada por el servidor


Carpeta MT4\Experts\Logs:

17:28:48 FapTurbo50 EURUSDFXF,M5: open #2662451 buy 0.20 EURUSDFXF at 1.2909 ok

17:28:49 FapTurbo50 EURUSDFXF,M5: modificar #2662451 comprar 0.20 EURUSDFXF a 1.2909 sl: 1.2407 tp: 1.2929 ok

Razón de la queja: