Fehler, Irrtümer, Fragen - Seite 582

 
ivandurak:

Im Folgenden finden Sie ein Skript, das die Beschriftungen für das ausgewählte Zeichen ausgeben soll, unabhängig davon, auf welches Zeichen es geworfen wird. Es gibt die Beschriftungen jedoch nur aus, wenn es auf dasselbe Zeichen geworfen wird. Ich brauche einen Anstoß.


Anstelle von:

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

brauchen

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

Anstelle von:

brauchen

Warum funktioniert es nicht mit Symbol()?
 
tol64:
Warum funktioniert es nicht mit Symbol()?

gibt die Beschriftungen des ausgewählten Symbols aus, unabhängig davon, auf welches Symbol es geworfen wird.

mit Symbol() wird diejenige genommen, die geworfen wird.

 

Warum beginnt die Aufzählung ENUM_APPLIED_PRICE mit 1?

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

Ergebnis:

        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
 

Wie lautet die von der Funktion TimeCurrent( ) zurückgegebene Uhrzeit?

Die Hilfe lautet:

Gibt die letzte bekannte Serverzeit zurück, also die Ankunftszeit des letzten Kurses eines der ausgewählten Symbole in Market Watch. Im OnTick()-Handler gibt diese Funktion die Zeit des eingehenden Ticks zurück, der verarbeitet werden soll. In anderen Fällen (z. B. in den Handlern OnInit(), OnDeinit(), OnTimer() usw.) ist dies die Zeit des letzten Kurses für ein beliebiges im Fenster "Market Watch" verfügbares Symbol, d. h. die Zeit, die in der Kopfzeile dieses Fensters angezeigt wird. Der Zeitwert wird auf dem Handelsserver generiert und hängt nicht von den Zeiteinstellungen auf dem PC des Benutzers ab.

Die Ankunftszeit der letzten Notierung für ein beliebiges Symbol - sie kann sich für verschiedene Symbole von erheblich unterscheiden - insbesondere für diejenigen, für die der Handel geschlossen ist).

Wenn Sie sich die Marktübersicht ansehen - MQL-Server (das Bild ist von heute):


Wir sehen die Zeit 15:22:42 - sie stimmt mit keinem der Symbole überein. Vielleicht muss etwas am Server geändert werden?

 

Meine Herren, MQ hat einen kleinen Vorschlag:

Bei der Optimierung eines EA kann es vorkommen, dass Sie das Terminal versehentlich schließen. Ist es möglich, dass die Bestätigung des Abschlusses erforderlich ist?

Für diejenigen, die es nicht brauchen, machen Sie eine Flagge in den Einstellungen des Testers.

Ich hoffe, dass andere MT-Nutzer mich unterstützen werden. Es ist eine Schande, wenn ein paar Tage Arbeit den Bach runtergehen und man wieder von vorne anfangen muss.

 
vdv2001:

Meine Herren, MQ hat einen kleinen Vorschlag:

Bei der Optimierung eines EA kann es vorkommen, dass Sie das Terminal versehentlich schließen. Ist es möglich, dass die Bestätigung des Abschlusses erforderlich ist?

Für diejenigen, die es nicht brauchen, machen Sie eine Flagge in den Einstellungen des Testers.

Ich hoffe, andere MT-Nutzer werden mich unterstützen. Es ist eine Schande, wenn ein paar Tage Arbeit den Bach runtergehen und man wieder von vorne anfangen muss.

Außerdem gibt es einen Kontaktverlust im Netzschalter (man weiß nie, was der Endverbraucher für Probleme hat). Generell muss das Problem breiter gefasst werden,

Machen Sie eine automatische Zwischenspeicherung der internen Daten des Testers (Sie wissen schon, die letzte Population),

damit er (der Prüfer) bei einem Neustart die Suche am letzten gespeicherten Punkt fortsetzen kann.

HZZ Diese Funktion ist seit langem an Spielen getestet worden (seltene Spiele können regelmäßig ohne Speichern durchgespielt werden) und rechtfertigt sich recht gut. Es handelt sich also nicht um ein neues Modell des Fahrrads.

 

Bei allem Respekt, bitte erklären Sie das Problem. Imho liegt das Problem nicht beim Skifahrer und nicht beim Asphalt, die Skier bleiben. Wie ist es möglich, dass der Kreislauf endlos wird? Oder in die Richtung des Skis treten.

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

Wenn Sie den Klassentext wie folgt korrigieren:

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

dann funktioniert alles:

2011.11.27 11:06:13 proba (EURUSD,M30) Die Startfunktion hat false zurückgegeben

2011.11.27 11:06:12 proba (EURUSD,M30) Die Startfunktion gab true zurück

2011.11.27 11:06:12 proba (EURUSD,M30) Startfunktion gab true zurück

2011.11.27 11:06:12 proba (EURUSD,M30) Startfunktion gab true zurück

2011.11.27 11:06:11 proba (EURUSD,M30) Startfunktion gab true zurück

2011.11.27 11:06:10 proba (EURUSD,M30) Startfunktion gab true zurück

2011.11.27 11:06:09 proba (EURUSD,M30) Startfunktion gab true zurück

2011.11.27 11:06:07 proba (EURUSD,M30) Startfunktion gab true zurück

2011.11.27 11:05:59 proba (EURUSD,M30) Startfunktion gab true zurück

2011.11.27 11:05:44 proba (EURUSD,M30) Startfunktion gab true zurück

Wunder.

 
gdtt:

Wenn Sie den Klassentext wie folgt ändern:

es funktioniert.

fragt sich.

Ctrl-C Ctrl-V funktioniert nicht plz erklären, was der Trick, und welche Version Sie haben. Ich habe Build 540 vom 11. November 2011.