Problema con la validación de EA en el mercado - página 7

 
Sergey Gritsay:

Hola a todos! ¿Quién fue capaz de pasar por alto el cheque con un saldo de $ 1, tengo en mi código es comprobar si no hay suficientes operaciones comerciales de dinero no se realizan. En consecuencia, obtengo el siguiente registro de validación

test on EURUSD,H1
there are no trading operations
test on NZDUSD,H1
there are no trading operations
test on GBPUSDcheck,M30
there are no trading operations
test on XAUUSDcheck,Daily
there are no trading operations


¿Qué pasa si compruebo mi saldo durante la inicialización y compruebo el margen mínimo requerido para el lote mínimo, y si no tengo suficiente dinero, simplemente no debo iniciar mi Asesor Experto?
 
Alexey Kozitsyn:
¿Y si en la fase de inicialización se comprueba el saldo, se comprueba el margen mínimo requerido para el lote mínimo y, si no es suficiente, simplemente no se pone en marcha el Asesor Experto?
probado no ayuda
 
Sergey Gritsay:
probado no ayuda

Hm. Interesante, dado que, de hecho, la salida en la etapa de inicialización significa que los parámetros de entrada, que en este caso podrían incluir la balanza...

¿El Asesor Experto da un error en este caso? ¿O se "marcha" silenciosamente?

 
Alexey Kozitsyn:

Hm. Interesante, dado que, de hecho, la salida en la etapa de inicialización significa que los parámetros de entrada, que en este caso podrían incluir la balanza...

¿El Asesor Experto da un error en este caso? ¿O se "marcha" silenciosamente?

Estoy añadiendo este código

   if(IsTesting())
     {
     if(AccountFreeMarginCheck(_Symbol,OP_BUY,SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN))<=0.0)
     {
      return(INIT_PARAMETERS_INCORRECT);
     }

recibo esta respuesta

test on EURUSD,H1
there are no trading operations
test on NZDUSD,H1
2016.02.01 00:00  exp_martin_new NZDUSD,H1: initialization failed (32767)
there are no trading operations


La validación ha vuelto a fallar.

 
Sergey Gritsay:

Agrego este código

¿MT5? Aparentemente MT4. ¿Y por qué sólo se comprueba en el probador?
 

De hecho, hay un artículo sobre el tema. Y hay un código:

bool CheckMoneyForTrade(string symb, double lots,int type)
  {
   double free_margin=AccountFreeMarginCheck(symb,type,lots);
   //-- если денег не хватает
   if(free_margin<0)
     {
      string oper=(type==OP_BUY)? "Buy":"Sell";
      Print("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError());
      return(false);
     }
   //-- проверка прошла успешно
   return(true);
  }

Así que si a alguien no le gusta algo, que ponga un enlace a este artículo.

 
Alexey Kozitsyn:
¿MT5? Aparentemente MT4. ¿Por qué sólo se comprueba en el probador?
¿A qué te refieres en el probador? Al operar tengo la comprobación organizada en la función de apertura de órdenes
 
Sergey Gritsay:
¿A qué te refieres en el probador? Al operar, tengo la comprobación organizada en la función de apertura de órdenes
if(IsTesting())
No sé muy bien para qué sirve entonces esta condición.
 
Alexey Kozitsyn:

De hecho, hay un artículo sobre el tema. Y hay un código:

bool CheckMoneyForTrade(string symb, double lots,int type)
  {
   double free_margin=AccountFreeMarginCheck(symb,type,lots);
   //-- если денег не хватает
   if(free_margin<0)
     {
      string oper=(type==OP_BUY)? "Buy":"Sell";
      Print("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError());
      return(false);
     }
   //-- проверка прошла успешно
   return(true);
  }

Así que si a alguien no le gusta algo, que ponga un enlace a este artículo.

si se utiliza esta función se obtiene un error de validaciónno hay operaciones comerciales y no está claro cómo evitarlo correctamente
 
Sergey Gritsay:
si se utiliza esta función se obtiene un error de validaciónno hay operaciones comerciales y no está claro cómo evitarlo
Haz una pregunta al moderador del mercado...