Problema con la convalida di EA sul mercato - pagina 7

 
Sergey Gritsay:

Ciao a tutti! Chi è stato in grado di bypassare il controllo con un saldo di $ 1, ho nel mio codice è controllare se non abbastanza soldi operazioni commerciali non eseguire. Di conseguenza, ottengo il seguente log di convalida

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


Cosa succede se controllo il mio saldo durante l'inizializzazione e controllo il margine minimo richiesto per il lotto minimo, e se non ho abbastanza soldi, dovrei semplicemente non avviare il mio Expert Advisor?
 
Alexey Kozitsyn:
Cosa succede se nella fase di inizializzazione si controlla il saldo, si controlla il margine minimo richiesto per il lotto minimo e, se non è sufficiente, semplicemente non si avvia l'Expert Advisor?
provato non aiuta
 
Sergey Gritsay:
provato non aiuta

Hm. Interessante, dato che, di fatto, l'uscita in fase di inizializzazione significa che i parametri di ingresso, che in questo caso potrebbero includere il bilanciamento...

L'Expert Advisor dà un errore in questo caso? O "parte" in silenzio?

 
Alexey Kozitsyn:

Hm. Interessante, dato che, di fatto, l'uscita in fase di inizializzazione significa che i parametri di ingresso, che in questo caso potrebbero includere il bilanciamento...

L'Expert Advisor dà un errore in questo caso? O "parte" in silenzio?

Sto aggiungendo questo codice

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

ricevo questa risposta

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 convalida è fallita di nuovo.

 
Sergey Gritsay:

Aggiungo questo codice

MT5? Apparentemente MT4. E perché controllare solo il tester?
 

Infatti, c'è un articolo sull'argomento. E c'è un codice:

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);
  }

Quindi, se a qualcuno non piace qualcosa, si colleghi a questo articolo.

 
Alexey Kozitsyn:
MT5? Apparentemente MT4. Perché controllare solo il tester?
Cosa intendi nel tester? Quando faccio trading ho il controllo organizzato nella funzione di apertura dell'ordine
 
Sergey Gritsay:
Cosa intendi nel tester? Quando faccio trading, ho il controllo organizzato nella funzione di apertura dell'ordine
if(IsTesting())
Non ho capito bene a cosa serve questa condizione, allora?
 
Alexey Kozitsyn:

Infatti, c'è un articolo sull'argomento. E c'è un codice:

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);
  }

Quindi, se a qualcuno non piace qualcosa, si colleghi a questo articolo.

se si usa questa funzione si ottiene un errore di convalidanon ci sono operazioni di trading e non è chiaro come aggirarlo correttamente
 
Sergey Gritsay:
se si usa questa funzione si ottiene un errore di convalidanon ci sono operazioni di trading e non è chiaro come aggirarlo
Fai una domanda al moderatore del mercato...