El error es que no hay operaciones comerciales - página 7

 

Razonable, Artyom. Realmente no hay impresoras de errores en este código rudimentario. Definitivamente lo añadiré y lo revisaré de nuevo. Pero en eso, el EA principal tiene mensajes para cada error.

Y sobre la segunda pregunta, cuando el validador estableceel lote mínimo 0,2 en el entorno informativo e intenta abrir una operación con un depósito inicial de 1$. Está claro que ningún cheque o huella pasará esta prueba. Está garantizado que terminará con el error 134 si no se comprueba nada como en el código anterior. O "no trade" si comprueba todo y no envía la orden de apertura al servidor.

¿Cuál es la forma de salir de este círculo vicioso?

¿Por qué no hay operaciones en el NZDUSD SIEMPRE? He comprobado ambos EAs. Se lo envié a mi amigo para que lo comprobara en su cuenta en aras de la pureza del experimento. Tampoco tenía oficios. No importaba si la prueba tenía éxito o no. No hay restricciones para operar con este par, como se puede ver en el código.

No soy sólo yo y mi EA. No hay operaciones en el NZDUSD de nadie que haya publicado el informe del validador en este hilo y en los hilos vecinos.
 
Andrey Kaunov:

Razonable, Artyom. Realmente no hay impresoras de errores en este código rudimentario. Definitivamente lo añadiré y lo revisaré de nuevo. Pero en eso, el EA principal tiene mensajes para cada error.

Y sobre la segunda pregunta, cuando el validador estableceel lote mínimo 0,2 en el entorno informativo e intenta abrir una operación con un depósito inicial de 1$. Está claro que ningún cheque o huella pasará esta prueba. Está garantizado que terminará con el error 134 si no se comprueba nada como en el código anterior. O "no trade" si comprueba todo y no envía la orden de apertura al servidor.

¿Cuál es la forma de salir de este círculo vicioso?

¿Por qué no hay operaciones en el NZDUSD SIEMPRE? He comprobado ambos EAs. Se lo envié a mi colega para que lo comprobara en su cuenta en aras de la pureza del experimento. Tampoco tenía oficios. No importaba si la prueba tenía éxito o no. No hay restricciones para operar con este par, como se puede ver en el código.

No soy sólo yo y mi EA. No hay operaciones en el NZDUSD de nadie que haya publicado el informe del validador en este hilo y en los hilos vecinos.

Tú mismo lo has dicho:

comprobar todo y no enviar una orden al servidor.

Tienes que hacerlo tú mismo en lugar de esperar el inevitable error del servidor. Y asegúrese de informar al registro sobre la imposibilidad de enviar la orden al servidor por tal o cual razón.

 
Artyom Trishkin:

...

Tienes que hacerlo tú mismo, no esperar el inevitable error del servidor. Y asegúrese de informar al libro de registro que la orden no puede ser enviada al servidor por tal o cual razón.

Así no paso la cuenta, Artyom. Y después de una hora de comprobación obtengo un informe que ya se puede enmarcar:

¿Y la segunda pregunta, sobre el NZDUSD? ¿Tal vez sea eso? Siempre tengo ofertas en EURUSD, pero el validador de NZDUSD parece tropezar. A veces se desliza más, luego pasa la prueba:

Pero en la mayoría de los casos se congela y genera un error de validación. Compruebe este NZDUSD, me parece que es el problema.

 
Andrey Kaunov:

Entonces no paso la prueba, Artyom. Y después de una hora de comprobación, obtengo un informe que ya puedo enmarcar:

que es más que suficiente para arreglar todo en tierra.

los informes de error del validador solían ser mucho más modestos

ejecutar el probador de la estrategia en NZDUSD H1 y ver lo que se obtiene en el registro

lo mismo con GBPUSD M30

 

Renat, esto es lo que en ese código rudimentario podría no funcionar. En mi probador, funciona con cualquier par. Aquí lo he mejorado un poco. Compruébelo usted mismo, tal vez se me escapa algo...

#property version   "1.00"
#property strict

int test_ticket[2]={0,0};
double   gl_lots,
         gl_ask,
         gl_bid;
string   gl_comm;         
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {
//---

//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
//---

}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   gl_lots=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   gl_ask=NormalizeDouble(Ask,_Digits);
   gl_bid=NormalizeDouble(Bid,_Digits);
   gl_comm="test";
//---
   if(AccountFreeMarginCheck(_Symbol,OP_BUY,gl_lots)<=0 || GetLastError()==134) {
      printf("Not enough money for the minimum lot: %.4f",gl_lots); 
      ExpertRemove();
   }
   if(test_ticket[1]<8 && test_ticket[0]==0) {
      test_ticket[0]=OrderSend((StringCompare(_Symbol,"NZDUSD")==0?"NZDUSD":_Symbol),OP_BUY,gl_lots,gl_ask,30,0.0,0.0,gl_comm,33333,0,clrNONE);
      if(test_ticket[0]>0) test_ticket[1]++;
   }   
   if(test_ticket[0]>0)
      if(OrderSelect(test_ticket[0],SELECT_BY_TICKET)) {
         if(OrderCloseTime()==0 && OrderOpenTime()+300<TimeCurrent())
            if(OrderClose(test_ticket[0],OrderLots(),gl_bid,30,clrNONE)) {
               printf("Test order closed, ticket #%d",test_ticket[0]);
               test_ticket[0]=0;
            }   
      }
}
//+------------------------------------------------------------------+

Todavía no tengo operaciones en el NZDUSD, a pesar de todos mis temores:

Pero ahora el validador no mostrará el error 134 y no mostrará que lo he probado con 0.2 lotes a 1 dólar de depósito inicial

 
Andrey Kaunov:

Renat, esto es lo que en ese código rudimentario podría no funcionar. En mi probador, funciona con cualquier par. Así que lo actualicé un poco:

Y todavía no hay operaciones en el NZDUSD, por el amor de Dios:

Ejecútelo en un probador normal, puede haber errores en el registro
 

Cuál es el punto, Renat. Ahí lo tienes.



 
Andrey Kaunov:

Renat, esto es lo que en ese código rudimentario podría no funcionar. En mi probador, funciona con cualquier par. Aquí lo he mejorado un poco. Compruébelo usted mismo, tal vez se me escapa algo...

Todavía no tengo operaciones en el NZDUSD, a pesar de todos mis temores:

Pero ahora el validador no mostrará el error 134 y no mostrará que lo he probado con 0.2 lotes con el depósito inicial de $1.

El Asesor Experto no puede ser descargado.

 
Artyom Trishkin:

El experto no puede ser descargado.

Artyom, era exactamente lo mismo sin descargar. No se trata del Experto, sino del NZDUSD. ¡¡¡Presta atención a la esencia, no a los detalles!!!

Descargando para no obtener el error de exceder el tamaño del archivo de registro.
 
Andrey Kaunov:

Artyom, era exactamente lo mismo sin la carga. No se trata del EA, sino del NZDUSD. ¡¡¡Presta atención a la esencia, no a los detalles!!!

El validador recorre los parámetros. Cuando se cumple la primera combinación sin operaciones, descarga el Asesor Experto. Eso es todo. Las pruebas adicionales son inútiles.

La esencia del asunto es que no permite que el validador trabaje con el Asesor Experto.

Las pruebas se superan incluso si no hay operaciones en algunos de los símbolos. Lo principal es que si no se puede realizar una operación comercial, el Asesor Experto emitirá una entrada de registro al respecto y continuará trabajando.
Verá, usted está haciendo un programa para la gente, no un validador. ¿Por qué necesita un programa en su mercado que no maneja los errores, sino que simplemente los borra del gráfico? ¿Comprarías tú mismo un milagro así?

Razón de la queja: