Errori, bug, domande - pagina 306

 
Jager:
Se le compilazioni sono le stesse ovunque, prova anche a cancellare le cartelle tester\Agent-x.x.x.x-xxxxx\bases (sugli agenti remoti e su quelli locali). Ha funzionato per me se stavo ottimizzando sui preventivi MQ e quello successivo sui preventivi A-ri - a volte gli agenti remoti non volevano iniziare nessuno dei due.
 
notused:
Se le compilazioni sono le stesse ovunque, prova anche a cancellare le cartelle tester\Agent-x.x.x.x-xxxxx\bases (sugli agenti remoti e su quelli locali). Ha funzionato per me, se ho eseguito l'ottimizzazione sulle citazioni MQ, e quella successiva sulle citazioni A-ri - a volte gli agenti remoti non volevano eseguire nessuno dei due.
Se ci sono decine di agenti su diversi computer, non è realistico. Si suppone che funzioni senza intervento esterno.
 

L'auto-sostituzione di "uint" invece di "int" per lo snippet è una perdita di tempo. I principianti cadono spesso in questo trucco:

for (uint i = 0; i < SomeObject.Count - 1; i++)

uint può essere qualsiasi numero intero senza segno

 
Per qualche ragione, molto spesso, dopo che l'ottimizzatore ha finito il suo lavoro, la barra del menu contestuale "Run Single Test" non è attiva nella scheda"Optimisation Results" e, di conseguenza, non parte nemmeno il click con il tasto sinistro del mouse sulla linea di passaggio.
 

Oggi mi sono reso conto che rendere dinamici i parametri EA

ed è impossibile combinare l'Expert Advisor e l'indicatore in un solo

...insieme.

C'è qualche modo?

 
Im_hungry:

Oggi mi sono reso conto che non è possibile rendere dinamici i parametri EA nell'EA, e non è possibile combinare un EA con un indicatore in uno. Non c'è proprio modo di farlo?

Fareste meglio a descrivere non le vostre conclusioni, ma gli scopi e gli obiettivi che state cercando di raggiungere.

 
Yedelkin:

Faresti meglio a descrivere, non le tue conclusioni, ma gli scopi e gli obiettivi che stai cercando di raggiungere.

Tutto questo è corretto, naturalmente. Ecco il compito:

rendere il parametro dell'indicatore dinamico, quando si chiude la posizione

Cambiamo uno dei parametri dell'indicatore, cioè il compito.

Ecco la mia soluzione:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   vhandle=iCustom(NULL,0,"МТ5"); 
   if(vhandle<0)
     {
      Alert("Ошибка при создании индикаторов: ",GetLastError());
      return(-1);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   IndicatorRelease(vhandle);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{ 
   if (isNewBar()==true)
     {
     ArraySetAsSeries(Sp1Buffer,true);
     ArraySetAsSeries(Sp2Buffer,true);
//----------------------
     vhandle=iCustom(NULL,0,"МТ5",Symbol1,100,Lots,Close());
     if(vhandle<0)
       {
        Alert("Ошибка при создании индиката: ",GetLastError());
       }
     if(CopyBuffer(vhandle,0,0,50,Sp1Buffer)<0 || CopyBuffer(vhandle,1,0,50,Sp2Buffer)<0)
       {
        Alert("Ошибка копирования буферов индикатора номер ошибки:",GetLastError());
       }
     }    
}
//+==================================================================+
int Close()
{
...
}


Posso dire che questo codice funziona perché i test mostrano risultati diversi, ma non è chiaro

ma è difficile capire perché funziona così male.

si blocca e dà gli stessi valori nel buffer, anche se è impossibile (2 settimane con gli stessi valori

Se non va in loop, scrive solo errore:

messaggio via Alert

Ошибка копирования буферов индикатора номер
 

Gli agenti remoti hanno smesso di aggiornarsi.

2011.02.19 21:15:01     Tester  tester agent VPN  20 lvlaxim is failed
2011.02.19 21:15:01     VPN  20 lvlaxim connect closed
2011.02.19 21:15:01     Tester  tester agent VPN  20 lvlaxim cannot synchronized
2011.02.19 21:14:00     VPN  20 lvlaxim Old build 392 of Tester Agent. Attempt to update.
2011.02.19 21:14:00     VPN  20 lvlaxim authorized (agent build 392)
2011.02.19 21:13:59     VPN  20 lvlaxim connected

2011.02.19 19:08:29     VPN  20 lvlaxim connect closed
2011.02.19 19:08:29     Tester  tester agent VPN  20 lvlaxim cannot synchronized
2011.02.19 19:07:28     VPN  20 lvlaxim Old build 392 of Tester Agent. Attempt to update.
2011.02.19 19:07:28     VPN  20 lvlaxim authorized (agent build 392)
 
Voodoo_King:

costruire 401.

1) Sembra che gli utenti di MT5 non aspetteranno mai che gli sviluppatori aggiungano un interruttore sul modulo tester e

scrivere una linea di codice con una condizione if... per evitare l'apertura della finestra di visualizzazione ad ogni esecuzione

anche se molti utenti in questo thread l'hanno chiesto molte volte molte costruzioni fa.

2) Si prega di ripristinare l'output del calcolo del tempo di ottimizzazione rimanente nella finestra del tester a grandezza naturale (come era in MT4).

Sono pienamente d'accordo - forse in servicedesk? (chiudilo cento volte).
 
notused:

L'auto-sostituzione di "uint" invece di "int" per lo snippet è una perdita di tempo. I nuovi arrivati cadono spesso in un simile trucco:

uint può essere qualsiasi numero intero senza segno

Grazie