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

 

deberías comprobarlo en el modo de prueba, para ver si se repite o no

 

Un EA puede pretender usar números mágicos (e incluso usarlos la mayoría de las veces) pero debido a un error de codificación (que es la norma en la escena de la duplicación de código spaghetti [copiar-pegar] de mql4) a veces no usa su magia sino que usa algún código inherentemente erróneo como por ejemplo:

for(...){
   OrderSelect(...);
   if (OrderSymbol() == Symbol()){
      OrderClose(...);
   }
}

que está enterrado y olvidado entre toneladas de bloques de código similares duplicados (y copiados-pegados) y que por alguna razón sólo se ejecuta a veces durante la luna llena (hay otro bloque de código idéntico de 500 líneas (con otras 4 ocurrencias del mismo bucle) para la luna nueva y otros dos bloques de este tipo para el resto de las veces en algunas de las otras ramas del único gran monstruo-if/else del infierno pero estos ya han sido "arreglados").


Ahí tienes tu error y ahí se va tu dinero: Algún desconocido aspirante a duplicador de código de 15 años (o debería decir C0d3r) con CERO idea pr0gg3d (sic!) algún EA k3wl (su primer y completamente no probado) (porque se aburrió con php) y lo publicó en algún foro (o dejó que su primo de 21 años lo vendiera por dinero) y le causó una pérdida de varios x-mil dólares. Pregúntame en privado a dónde debes enviar el 20% del dinero ahorrado durante los próximos 3 meses en los que NO utilizarás este tipo de EAs.


Este hilo debería cerrarse ahora exactamente en este punto y luego ser clavado en la parte superior del foro con letras rojas en negrita hasta el fin de los tiempos.

 
Santa madre de ..... una limonada más y nadie pediría ayuda en este foro... lol.
 
ubzen:
Santa madre de ..... una limonada más y nadie pediría ayuda en este foro... lol.

Mi despotricación fue doble.

La parte entre líneas iba dirigida principalmente contra los que escriben y venden este tipo de EAs pero dudo que puedan siquiera entenderlo. La otra parte que está escrita en inglés sencillo sólo está resumiendo el evento y la situación de las víctimas y OP es una víctima (víctima de las falsas reclamaciones pero también víctima de su propia ingenuidad). El daño ya no se puede reparar, el dinero ya no existe. Sólo se puede aprender de él y hay que aprender de él. Y por último la última frase de mi post (3 meses, 20%) pretendía amplificar el dolor percibido para maximizar el efecto de aprendizaje.


Esto suena duro pero es la amarga verdad.


La razón del error está en uno de sus EAs que está cerrando las órdenes de otros EAs aunque pretende usar un número mágico falla en usar realmente este número a veces. Y esto sucede porque los diletantes están escribiendo y vendiendo EAs disfuncionales a gente inocente. La única solución a este problema es NO utilizar EAs que no hayan sido auditados a fondo, esto incluye automáticamente todos los EAs comerciales para los que no hay código fuente disponible. No hay manera de aprender a codificar o contratar a un codificador competente y revisar y probar a fondo el código de cualquier EA de terceros y no utilizar ningún EA de código cerrado en absoluto.

 
Estoy totalmente de acuerdo contigo y mi anterior post reflejaba un sentimiento similar. Enseñé que era un poco duro - pero es la verdad. Proporcionar un EA sin apoyo es un crimen. Sí - lo dije (Tal vez ahora los moderadores realmente Bloquear el puesto en rojo). ¡Creo que el OP hizo un buen dinero b4 el bugs.... de lo contrario Ouch!
 

P

> Empiezo a pensar que MT4 puede tener problemas al manejar varios EAs al mismo tiempo

Normalmente no es un problema, he apilado muchos más EA's que este por instancia y muchas instancias por VPS

> Sospecho que quizás los indicadores se están fastidiando, generando señales para operar y luego para cerrar

Eso podría ser una idea, especialmente si se trata de un EA para operar en horas tranquilas y el corredor ha pasado recientemente a STP/ECN...

Las enormes variaciones resultantes en el spread y/o el gapping en los marcos de tiempo más cortos pueden alterar las señales de entrada/salida de varios tipos

FWIW

-BB-

 

Es un error, de algún tipo. La definición de error es que el software se comporta de una manera que usted preferiría que no lo hiciera.

Podría ser el programa de la aplicación, o el lenguaje de programación en el que se escribió la aplicación.

En cualquier caso, sin acceso al código fuente o a un caso de prueba reproducible, todo lo demás son suposiciones.

 

Ponga cada uno de los EAs en su propia cuenta demo separada y adicionalmente abra una operación abierta manualmente con stop y take profit lejanos y órdenes limitadas y stop introducidas manualmente en el mismo par/par de divisas en cada cuenta y luego simplemente déjelos funcionar a todos unos días/semanas. Si alguno de estos EAs de repente decide cerrar su operación abierta manualmente, mover su stop o cancelar una de las órdenes de entrada, entonces sin duda ha identificado el EA culpable. Intente demandarlos para recuperar su dinero porque un EA NO DEBE sabotear ninguna otra actividad de trading bajo ninguna circunstancia.

Esta es la ley número 1 de la robótica del trading: "Un robot no puede dañar las operaciones de un ser humano" (Esto incluye naturalmente las operaciones de sus otros EAs)

 

Interesante. Trata de establecer algún tipo de prueba sobre cómo se supone que funciona o no un EA.

Entonces da el gran salto, demanda y luego convence al tribunal sobre cómo se supone que funciona o no un EA.

Por supuesto, tiene que empezar por explicar al tribunal en qué consiste una EA. Para entonces, los gastos de su abogado pueden ser superiores a cualquier posible reclamación que el tribunal pueda concederle, suponiendo, de nuevo, que eso vaya a ocurrir. De lo contrario, tus pérdidas simplemente se verán agravadas.

P.D.: Leído de nuevo, alguien ha descompilado la fuente, lo que facilita la argumentación en los tribunales. Pero entonces, ¿es legal descompilar y, por tanto, robar el código?

 

Descompilar el código y robarlo son dos cosas diferentes. Descompilar es sólo traducirlo a un lenguaje legible. Un tribunal debería permitir que un documento escrito en un idioma extranjero se tradujera a un idioma que el juez pudiera leer. Nadie consideraría esto como un "robo".

¿O es el código de la máquina una especie de lenguaje sagrado que bajo ninguna circunstancia puede ser traducido o leído por el común de los mortales? ¿Ni siquiera por los jueces? ¿Sólo por los programadores inaugurados y sus máquinas?


Y aunque no fuera así, las mismas cosas sobre el comportamiento del EA también podrían probarse desensamblando el código de bytes o el propio código máquina. (desensamblar es sólo imprimirlo en un formato agradable y escribir una pequeña explicación junto a cada instrucción de la máquina) o simplemente demostrando el comportamiento en una prueba repetible.