Errori, bug, domande - pagina 582

 
ivandurak:

Qui sotto c'è uno script che dovrebbe emettere le etichette per il carattere selezionato, indipendentemente dal carattere su cui viene lanciato. Tuttavia, emette le etichette solo quando viene lanciato sullo stesso carattere. Plz ha bisogno di una spinta.


Invece di:

   CopyRates(Symbol(),0,0,10,price);

bisogno di

   CopyRates("EURUSD",0,0,10,price);
 
uncleVic:

Invece di:

bisogno di

Perché non funziona con Symbol()?
 
tol64:
Perché non funziona con Symbol()?

emette le etichette sul simbolo selezionato, indipendentemente dal simbolo su cui è lanciato.

con Symbol() prenderà quella che viene lanciata.

 

Perché l'enumerazione ENUM_APPLIED_PRICE inizia con 1?

   ENUM_APPLIED_PRICE enm;
   for(int i=0;i<10;i++)
     {
      enm=i;
      Print(EnumToString(enm));
     }

risultato:

        ENUM_APPLIED_PRICE::9
        ENUM_APPLIED_PRICE::8
        PRICE_WEIGHTED
        PRICE_TYPICAL
        PRICE_MEDIAN
        PRICE_LOW
        PRICE_HIGH
        PRICE_OPEN
        PRICE_CLOSE
        ENUM_APPLIED_PRICE::0
 

Qual è l'ora restituita dalla funzione TimeCurrent( )?

La guida recita:

Restituisce l'ultima ora conosciuta del server, l'ora di arrivo dell'ultima quotazione di uno dei simboli selezionati in Market Watch. Nel gestore OnTick() questa funzione restituirà il tempo del tick in arrivo da elaborare. In altri casi (per esempio, nei gestori OnInit(), OnDeinit(), OnTimer() e così via) questo è il tempo dell'ultimo arrivo della quotazione per qualsiasi simbolo disponibile nella finestra "Market Watch", lo stesso tempo mostrato nell'intestazione di questa finestra. Il valore del tempo è generato sul server commerciale e non dipende dalle impostazioni del tempo del PC dell'utente.

L'ora di arrivo dell'ultima quotazione per qualsiasi simbolo - può essere significativamente diversa per simboli diversi da- specialmente per quelli, per i quali gli scambi sono chiusi))

Se si guarda la panoramica del mercato - server MQL (l'immagine è presa oggi):


Vediamo l'ora 15:22:42 - non corrisponde a nessuno dei simboli. Forse qualcosa deve essere modificato sul server?

 

Signori MQ ha un piccolo suggerimento:

Quando si ottimizza un EA, si può accidentalmente chiudere il terminale. È possibile fare una conferma per chiudere.

Per coloro che non ne hanno bisogno fare un flag nelle impostazioni del tester.

Spero che altri utenti di MT mi sostengano. È un peccato quando alcuni giorni di lavoro vanno in fumo e bisogna ricominciare tutto da capo.

 
vdv2001:

Signori MQ ha un piccolo suggerimento:

Quando si ottimizza un EA, si può accidentalmente chiudere il terminale. È possibile fare una conferma per chiudere.

Per coloro che non ne hanno bisogno fare un flag nelle impostazioni del tester.

Spero che altri utenti di MT mi sostengano. È un peccato quando alcuni giorni di lavoro vanno in fumo e bisogna ricominciare tutto da capo.

E c'è anche una perdita di contatto nell'interruttore di rete (non si sa mai quanti problemi ha l'utente finale). In generale, il problema deve essere ampliato,

Fate un salvataggio automatico intermedio dei dati interni del tester (sapete, l'ultima popolazione),

in modo che (il tester) possa continuare la ricerca dall'ultimo punto salvato in un nuovo inizio.

HZZ Questa funzione è stata a lungo testata sui giochi (rari giochi possono essere superati regolarmente senza salvare) e si giustifica abbastanza bene. Quindi non sarebbe un nuovo modello della moto.

 

Con tutto il rispetto, vi prego di spiegare il problema. Imho, il problema non è nello sciatore e non nell'asfalto, gli sci rimangono. Come è possibile che il ciclo diventi infinito? O calciare in direzione dello sci.

class proba
  {
   private:
      int   Nambe;
   public:
       void     Init(){Nambe=10 ;};
       void     Vedenie() {Nambe--  ;};
       bool     Start(){if (Nambe >0) return(true); return(false) ;};        
  };
//=========================================================================
proba cikl;
void OnStart()
  {
      cikl.Init();
      while(cikl.Start())
        {
         cikl.Vedenie() ;
         Print(" Функция старт вернула ",cikl.Start());
        }
  }
 

Se si corregge il testo della classe in questo modo

class proba
  {
   private:
      int   Nambe;
   public:
       void     Init(){Nambe=10 ;};
       void     Vedenie() {Nambe--  ;};
       bool     Start(){
         if (Nambe >0)return(true);
         return(false) ;
       };        
  };

allora tutto funziona:

2011.11.27 11:06:13 proba (EURUSD,M30) La funzione start ha restituito false

2011.11.27 11:06:12 proba (EURUSD,M30) La funzione start ha restituito true

2011.11.27 11:06:12 proba (EURUSD,M30) La funzione Start è tornata vera

2011.11.27 11:06:12 proba (EURUSD,M30) La funzione Start è tornata vera

2011.11.27 11:06:11 proba (EURUSD,M30) La funzione Start è tornata vera

2011.11.27 11:06:10 proba (EURUSD,M30) La funzione Start è tornata vera

2011.11.27 11:06:09 proba (EURUSD,M30) La funzione Start è tornata vera

2011.11.27 11:06:07 proba (EURUSD,M30) La funzione Start è tornata vera

2011.11.27 11:05:59 proba (EURUSD,M30) La funzione Start è tornata vera

2011.11.27 11:05:44 proba (EURUSD,M30) La funzione Start è tornata vera

Meraviglie.

 
gdtt:

Se fissate il testo della classe in questo modo

funziona.

meraviglie.

Ctrl-C Ctrl-V non funziona plz spiegare che cosa il trucco, e quale versione avete. Ho la build 540 dell'11 novembre 2011.