Problema com a validação da EA no mercado - página 7

 
Sergey Gritsay:

Olá a todos! Quem foi capaz de contornar o cheque com um saldo de US$ 1, eu tenho em meu código é cheque se não houver operações comerciais de dinheiro suficiente. Assim, recebo o seguinte log de validação

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


E se eu verificar meu saldo durante a inicialização e verificar a margem mínima exigida para o lote mínimo, e se eu não tiver dinheiro suficiente, eu não deveria simplesmente começar meu Expert Advisor?
 
Alexey Kozitsyn:
E se na fase de inicialização você verificar o saldo, verificar a margem mínima exigida para o lote mínimo e, se não for suficiente, simplesmente não iniciar o Expert Advisor?
tentou, não ajuda
 
Sergey Gritsay:
tentou, não ajuda

Hm. Interessante, já que, de fato, a saída na fase inicial significa que os parâmetros de entrada, que neste caso poderiam incluir o equilíbrio...

O Expert Advisor dá algum erro neste caso? Ou "parte" silenciosamente?

 
Alexey Kozitsyn:

Hm. Interessante, já que, de fato, a saída na fase inicial significa que os parâmetros de entrada, que neste caso poderiam incluir o equilíbrio...

O Expert Advisor dá algum erro neste caso? Ou "parte" silenciosamente?

Estou adicionando este código

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

recebo esta resposta

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


A validação falhou novamente.

 
Sergey Gritsay:

Eu acrescento este código

MT5? Aparentemente, MT4. E por que apenas verificar no testador?
 

Na verdade, há um artigo sobre o assunto. E há um 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);
  }

Portanto, se alguém não gostar de algo, crie um link para este artigo.

 
Alexey Kozitsyn:
MT5? Aparentemente, MT4. Por que apenas verificar no testador?
O que você quer dizer no testador? Ao negociar, tenho o cheque organizado na função de abertura de ordem
 
Sergey Gritsay:
O que você quer dizer no testador? Ao negociar, eu tenho o cheque organizado na função de abertura de ordem
if(IsTesting())
Não estou bem certo para que serve então esta condição?
 
Alexey Kozitsyn:

Na verdade, há um artigo sobre o assunto. E há um 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);
  }

Portanto, se alguém não gostar de algo, crie um link para este artigo.

se você usar esta função você recebe um erro de validaçãonão há operações comerciais e não está claro como contornar isto corretamente
 
Sergey Gritsay:
se você usar esta função você recebe um erro de validaçãonão há operações comerciais e não está claro como contornar isto
Fazer uma pergunta ao moderador do mercado...