Afflitto dall'errore non ci sono operazioni commerciali - pagina 7

 

Ragionevole, Artyom. Non ci sono davvero stampanti di errori in questo codice rudimentale. Lo aggiungerò sicuramente e lo controllerò di nuovo. Ma in questo, l'EA principale ha messaggi per ogni errore.

E sulla seconda domanda, quando il validatore impostail lotto minimo 0,2 nell'ambiente informativo e prova ad aprire un trade con un deposito iniziale di $1. È chiaro che nessun assegno o stampa supererà questo test. È garantito che finisca con l'errore 134 se non viene controllato nulla come nel codice precedente. O "no trade" se si controlla tutto e non si invia l'ordine di apertura al server.

Qual è il modo per uscire da questo circolo vizioso?

Perché non ci sono scambi su NZDUSD SEMPRE? Ho controllato entrambi gli EA. L'ho mandato al mio collega per controllarlo sul suo conto per la purezza dell'esperimento. Anche lui non aveva scambi. Non importava se il test avesse avuto successo o meno. Non ci sono restrizioni al trading su questa coppia, come potete vedere dal codice.

Non siamo solo io e la mia EA. Nessun trade su NZDUSD da parte di chi ha postato il report del validatore in questo thread e in quelli vicini.
 
Andrey Kaunov:

Ragionevole, Artyom. Non ci sono davvero stampanti di errori in questo codice rudimentale. Lo aggiungerò sicuramente e lo controllerò di nuovo. Ma in questo, l'EA principale ha messaggi per ogni errore.

E sulla seconda domanda, quando il validatore impostail lotto minimo 0,2 nell'ambiente informativo e prova ad aprire un trade con un deposito iniziale di 1$. È chiaro che nessun assegno o stampa supererà questo test. È garantito che finisca con l'errore 134 se non viene controllato nulla come nel codice precedente. Oppure "no trade" se si controlla tutto e non si invia l'ordine di apertura al server.

Qual è il modo per uscire da questo circolo vizioso?

Perché non ci sono scambi su NZDUSD SEMPRE? Ho controllato entrambi gli EA. L'ho mandato al mio amico per controllarlo sul suo conto per la purezza dell'esperimento. Anche lui non aveva scambi. Non importava se il test avesse avuto successo o meno. Non ci sono restrizioni al trading su questa coppia, come potete vedere dal codice.

Non siamo solo io e la mia EA. Nessun trade su NZDUSD da parte di chi ha postato il report del validatore in questo thread e in quelli vicini.

L'hai detto tu stesso:

controllare tutto e non inviare un ordine al server.

Dovete farlo voi stessi invece di aspettare l'inevitabile errore del server. E assicuratevi di segnalare al log l'impossibilità di inviare l'ordine al server per tale e tale motivo.

 
Artyom Trishkin:

...

Dovete farlo voi stessi, non aspettare l'inevitabile errore del server. E assicuratevi di segnalare al registro che l'ordine non può essere inviato al server per tale e tale motivo.

È così che non passo il controllo, Artyom. E dopo un'ora di controllo ottengo un rapporto, che è già nella cornice può essere arrotolato:

E la seconda domanda, sul NZDUSD? Forse è questo? Ho sempre accordi su EURUSD, ma il validatore NZDUSD sembra inciampare. A volte scivola ulteriormente, poi supera il test:

Ma nella maggior parte dei casi si blocca e genera un errore di convalida. Controlla questo NZDUSD, mi sembra che sia il problema.

 
Andrey Kaunov:

Allora non supero il test, Artyom. E dopo un'ora di controllo, ottengo un rapporto che posso già inquadrare:

che è più che sufficiente per sistemare tutto a terra.

i rapporti di errore del validatore erano molto più modesti

Esegui il tester della strategia su NZDUSD H1 e vedi cosa ottieni nel log

lo stesso con GBPUSD M30

 

Renat, questo è ciò che in quel codice rudimentale potrebbe non funzionare. Nel mio tester, funziona su qualsiasi coppia. Qui l'ho aggiornato un po'. Controlla tu stesso, forse mi sfugge qualcosa...

#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;
            }   
      }
}
//+------------------------------------------------------------------+

Non ho ancora nessun trade su NZDUSD, nonostante tutte le mie paure:

Ma ora il validatore non mostra l'errore 134 e non mostra che ho testato con 0,2 lotti a $1 di deposito iniziale

 
Andrey Kaunov:

Renat, questo è ciò che in quel codice rudimentale potrebbe non funzionare. Nel mio tester, funziona su qualsiasi coppia. Così l'ho aggiornato un po':

E ancora non ci sono scambi su NZDUSD, per la miseria:

Eseguilo in un normale tester, ci possono essere errori nel log
 

Qual è il punto, Renat. Bene, ci siamo.



 
Andrey Kaunov:

Renat, questo è ciò che in quel codice rudimentale potrebbe non funzionare. Nel mio tester, funziona su qualsiasi coppia. Qui l'ho aggiornato un po'. Controlla tu stesso, forse mi sfugge qualcosa...

Non ho ancora nessun trade su NZDUSD, nonostante tutte le mie paure:

Ma ora il validatore non mostrerà l'errore 134 e non mostrerà che ho testato con 0,2 lotti al deposito iniziale di $1.

Expert Advisor non può essere scaricato.

 
Artyom Trishkin:

L'esperto non può essere scaricato.

Artyom, era esattamente lo stesso senza scaricare. Non si tratta dell'Esperto, ma del NZDUSD. Fate attenzione all'essenza, non ai dettagli!!!

Scaricando per non ottenere l'errore di superare la dimensione del file di log.
 
Andrey Kaunov:

Artem, era esattamente lo stesso senza l'upload. Non si tratta dell'EA, ma di NZDUSD. Fate attenzione all'essenza, non ai dettagli!!!

Il validatore passa attraverso i parametri. Quando la prima combinazione si incontra con nessun trade, scarica l'Expert Advisor. Questo è tutto. Ulteriori test sono inutili.

Il nocciolo della questione è che non si permette al validatore di lavorare con l'Expert Advisor.

I test vengono superati anche se non ci sono scambi su alcuni dei simboli. La cosa principale è che se un'operazione di trading non può essere eseguita, l'Expert Advisor emetterà una voce di registro su di essa e continuerà a lavorare.
Vedete, state facendo un programma per le persone, non un validatore. Perché avete bisogno di un programma nel vostro mercato che non gestisce gli errori, ma semplicemente li cancella dal grafico? Comprereste voi stessi un tale miracolo?