¡¡Por favor, ayúdame a resolver este misterio!! - página 2

 
WHRoeder:
A menos que esté utilizando el modo visual en el probador, nunca habrá nada en el diario.
Eso no es correcto. No se emite nada al diario durante la optimización, pero la salida al diario funciona bien si el modo visual NO está marcado. (Acabo de probarlo en la versión 445)
 

En cualquier caso, ¡estoy utilizando el modo visual!

Hay algo más que es muy extraño. Cuando ejecuto el MISMO EA con los MISMOS parámetros más de una vez, ¡obtengo diferentes operaciones en el Modo Visual mostrado!

¡La mayoría de las veces el 90% son las mismas - pero en ciertos lugares hay resultados diferentes con múltiples ejecuciones!

¿Hay algunos búferes (por ejemplo, variables) que deben ser inicializados o borrados después de cada ejecución? Intento inicializar todas las variables en la sección de declaración.

¿Tal vez mi ordenador se ha vuelto loco? Me estoy agarrando a un clavo ardiendo.

 
ernest02:

En cualquier caso, ¡estoy utilizando el modo visual!

Hay algo más que es muy extraño. Cuando ejecuto el MISMO EA con los MISMOS parámetros más de una vez, ¡obtengo diferentes transacciones en el Modo Visual mostrado!

La mayoría de las veces el 90% son iguales, pero en algunos lugares hay resultados diferentes con múltiples ejecuciones.

¿Hay algunos búferes (por ejemplo, variables) que deben ser inicializados o borrados después de cada ejecución? Intento inicializar todas las variables en la sección de declaración.

¿Quizás mi ordenador se ha vuelto loco? De momento me agarro a un clavo ardiendo.

¿Cuál es el margen de error de cada prueba?
 

¡Bien, chicos! ¡Resuelvan esto!

Mira el trozo de código más grande que he publicado.

La primera línea es una declaración "if" y si es verdadera procesará las líneas siguientes.

Una de las acciones que tiene que tener lugar es el cierre de cualquier orden de compra abierta.

Ahora, cuando ejecuto el EA en el probador, realmente cierra cualquier orden de compra, PERO...

Se salta la declaración de impresión en medio del código - ¡y eso no se registra en el Diario!

Así que sé que el código se está procesando, pero sólo ciertas declaraciones de impresión se registran en el diario, pero otras no.

Por favor, explíqueme esto.

 
ernest02:

Ahora, cuando ejecuto el EA en el probador, realmente cierra cualquier orden de compra PERO...

Se salta la declaración de impresión en el medio del código - ¡y eso no se registra en el Diario!

Así que sé que el código se está procesando, pero sólo ciertas declaraciones de impresión se registran en el diario, pero otras no.

¡Así que por favor explíqueme eso!

Lo siguiente se imprimirá en el diario...

   Print("SellTicket is ",SellTicket);    // <----- this will print

   if (SellTicket >= 0) 
      {
      PlaySound("news.wav");
      SellTime = OrderOpenTime();
      SellSignal = false;

      }
   Print("SellSignal2 is ", SellSignal);  // <----- this will print

si no se imprimen, entonces, por lo que puedo ver, las posibilidades son las siguientes

  • usted no está ejecutando el código que ha publicado
  • las órdenes de compra están siendo cerradas por algún otro código/función

 

si SellTicket es igual a cero, ¿en serio?

if (SellTicket >= 0) // ???

Haga clic con el botón derecho del ratón en el diario, seleccione abrir y abra el registro del diario con el bloc de notas.

La pestaña del diario no siempre muestra todos los registros.

 

He mirado el archivo de registro y no hay transacciones de venta o compra registradas allí ni ninguno de los otros comandos de "impresión".

¡Estoy tan desmotivado! Llevo 2 semanas con esto y no he hecho ningún progreso y me he quedado sin ideas de cuál podría ser el problema.

(Sólo quiero decir por lo que vale que también tengo Metatrader 5 instalado en mi comouter y ejecutar Windows 7 que almacena algunos datos y archivos de registro en Virtual Store en los usuarios)

 
ernest02:

He mirado el archivo de registro y no hay transacciones de venta o compra registradas allí ni ninguno de los otros comandos de "impresión".

¡Estoy tan desmotivado! Llevo 2 semanas con esto y no he hecho ningún progreso y me he quedado sin ideas de cuál podría ser el problema.

(Sólo quiero decir por lo que vale que también tengo Metatrader 5 instalado en mi comouter y ejecutar Windows 7 que almacena algunos datos y archivos de registro en Virtual Store en los usuarios)

Ah, ¿dónde tienes instalado MT4 es en Archivos de Programa? si lo hace tal vez usted tiene un problema UAC. Usted podría tratar de una nueva instalación de MT4 en un directorio que no es Archivos de Programa, por ejemplo, C:\MT4-Installs\ y tratar su EA.
 

He creado una carpeta en C:/ donde he instalado MT4, pero tengo otras dos copias (una en vivo y otra de demostración) que están instaladas en Archivos de Programa (x86).

No tengo ningún archivo de registro con las dos últimas pero sí tengo archivos de registro bajo la raíz de MT4. (Por eso puedo informar sobre lo que hay en el archivo de registro)

Ahora acabo de notar otra anomalía. (Ya mencioné el hecho de que obtengo resultados diferentes de dos ejecuciones idénticas)

Utilizo iCCI para seguir el índice CCI para tomar decisiones de transacciones de compra/venta. ¡He descubierto que las transacciones ocurren incluso cuando la condición del CCI no es verdadera!

¡Esto es un lío! Añoro mis días de XP donde mi sistema parecía ser mucho más simple y estable.

¡Estoy a punto de tirar la toalla!

 
@ernest02: Simplemente reescribe el código. Utiliza las funciones Print/Alert/Comment para depurar tus códigos. Si no sabes por qué se ejecuta OrderSend, imprime los valores de las variables que lo activan [justo encima de OrderSend]. Si no sabe por qué CCI == true, imprima los valores de las variables que activan la llamada a CCI [antes de la llamada a CCI]. Siga moviendo la declaración de impresión hacia atrás de esta manera hasta que encuentre el culpable.