Fehler, Irrtümer, Fragen - Seite 418

 

Ich arbeite seit ein paar Tagen mit MT5 und habe festgestellt, dass Stops und Profits jetzt mit der Maus bearbeitet werden können, was gut ist, aber es gibt einen kleinen Fehler. Wenn ich die Maus auf den Stop bewege, ändert sich der Zeiger, um anzuzeigen, dass der Stop zur Bearbeitung aktiv ist, aber der Zeiger ändert sich auch, wenn ich das "Fadenkreuz"-Werkzeug benutze, was bedeutet, dass es nicht sehr bequem ist, wenn ich die Entfernung vom Stop messen will, weil der zweite Punkt hinter dem Zeiger liegt und ich nicht sehen kann, wohin ich ihn bringe. Ich wollte PrintScreen verwenden, aber es macht kein Bild von der Maus.

Fazit: Die Messung mit dem "Fadenkreuz" vom Anschlag aus ist nicht sinnvoll.

 
mql5:
Der Fehler ist behoben.
Der "Abruf" der Schalterprüfung wurde diskutiert, und es ist unmöglich, eine korrekte/korrekte Kontrolle zu implementieren.
Der Wert des Schalterausdrucks kann z. B. alles Mögliche sein:

OK, ich verstehe. Der Compiler kann den Wert des Schalterausdrucks nicht anstelle des Programmierers kontrollieren.

Nebenbei bemerkt, wird dieses Konstrukt im obigen Beispiel verwendet:

enum EV { v1, v2, };
...
   switch(EV(3))

Bedeutet dies, dass es zulässig ist, sich auf Daten eines Aufzählungstyps nicht nur mit benannten Konstanten (v1, v2 usw.) zu beziehen, sondern auch durch Angabe ihrer Ordnungszahl in der Aufzählung ( EV(n) )?

...Ich habe solche Konstruktionen gemacht, um eine solche Frage zu lösen - aber hier kann es viel einfacher sein.

 
Yedelkin:

Bedeutet dies, dass es zulässig ist, auf Daten eines Aufzählungstyps nicht nur mit benannten Konstanten (v1, v2 usw.) zu verweisen, sondern auch durch Angabe ihrer Ordnungszahl in einer Aufzählung ( EV(n) )?

In diesem Fall wird nur die Standardkonvertierung des Typs int in EV angewendet. In funktionaler Notation.

Es gibt zwei mögliche syntaktische Formen der Typkonvertierung in mql5, die im Ergebnis gleichwertig sind: (Typ_name) Wert und Typ_name(Wert).

Ich meine, es handelt sich nicht um eine besondere Funktion im Zusammenhang mit Aufzählungen, sondern um eine ganz normale Typkonvertierung.

 
Jhonny:

Ich arbeite seit ein paar Tagen mit MT5 und habe festgestellt, dass Stops und Profits jetzt mit der Maus bearbeitet werden können, was gut ist, aber es gibt einen kleinen Fehler. Wenn ich die Maus auf den Stop bewege, ändert sich der Zeiger, um anzuzeigen, dass der Stop zur Bearbeitung aktiv ist, aber der Zeiger ändert sich auch, wenn ich das "Fadenkreuz"-Werkzeug benutze, was bedeutet, dass es nicht sehr bequem ist, wenn ich die Entfernung vom Stop messen will, weil der zweite Punkt hinter dem Zeiger liegt und ich nicht sehen kann, wohin ich ihn bringe. Ich wollte PrintScreen verwenden, aber es macht kein Bild von der Maus.

Fazit: Die Messung mit dem "Fadenkreuz" vom Anschlag aus ist nicht sinnvoll.

Ich stimme zu, es ist eine gute Beobachtung, aber es ist kein Fehler.

Gute Wünsche für MT5

 
MetaDriver:

In diesem Fall wurde lediglich eine Standardumwandlung von int in EV vorgenommen. In funktionaler Notation.

Es gibt zwei mögliche syntaktische Formen der Typkonvertierung in mql5, die im Ergebnis gleich sind: (Typ_name) Wert und Typ_name(Wert).

Ich meine, es handelt sich nicht um eine besondere Funktion im Zusammenhang mit Aufzählungen, sondern um eine ganz normale Typkonvertierung.

Super! Ich werde versuchen, es zu verdauen. Aber nach dem, was Sie gesagt haben, ist die Antwort auf meine Frage positiv. Das ist gut! Danke! (Lacht)
 

Der Test kann im Visualisierungsmodus nicht gestartet werden. Der Visualisierer selbst startet, aber der Test wird nicht gestartet. So steht es im Protokoll:

2011.06.16 21:25:47 EURUSD: Symbol synchronisiert, 2904 Bytes Symbolinfo erhalten
2011.06.16 21:25:47 Symbol EURUSD Synchronisierungsfehler
2011.06.16 21:25:47 kann keine Historie EURUSD,M1 erhalten
2011.06.06.16 21:25:47 Protokolldatei "C:\Programme\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log" geschrieben
2011.06.16 21:25:48 tester agent shutdown

 

Die Entwickler.

Ist der visuelle Tester wirklich so langsam oder bilde ich mir das nur ein?

 
molotkovsm:

Der Test kann im Visualisierungsmodus nicht gestartet werden. Der Visualisierer selbst startet, aber der Test wird nicht gestartet. Dies ist der Inhalt des Protokolls:

2011.06.16 21:25:47 EURUSD: Symbol synchronisiert, 2904 Bytes Symbolinformationen erhalten
2011.06.16 21:25:47 EURUSD-Symbol-Synchronisierungsfehler
2011.06.16 21:25:47 kann keinen Verlauf erhalten EURUSD,M1
2011.06.16 21:25:47 Protokolldatei "C:{Programmdateien\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log" geschrieben
2011.06.16 21:25:48 tester agent heruntergefahren

Das gleiche Problem. Das Agentenprotokoll kann nicht über den angegebenen Pfad geöffnet werden.

2011.06.16 22:40:52     tester agent shutdown
2011.06.16 22:40:52     log file "C:\Program Files\MetaTrader 5 - 64\Tester\Agent-127.0.0.1-3000\logs\20110616.log" written
2011.06.16 22:40:52     cannot get history EURUSD,M1
2011.06.16 22:40:52     symbol EURUSD synchronization error
2011.06.16 22:40:52     EURUSD: symbol synchronized, 2904 bytes of symbol info received
2011.06.16 22:40:51     Pentium Dual-Core  T4300 @ 2.10 GHz, 3001 MB
2011.06.16 22:40:51     13 Kb of total initialization data received
2011.06.16 22:40:51     successfully initialized
2011.06.16 22:40:51     expert file added: Experts\Тест.ex5. 2958 bytes loaded
2011.06.16 22:40:51     346 bytes of selected symbols loaded
2011.06.16 22:40:51     196 bytes of input parameters loaded
2011.06.16 22:40:51     1490 bytes of tester parameters loaded
2011.06.16 22:40:51     3788 bytes of group info loaded
2011.06.16 22:40:51     login (build 468)
2011.06.16 22:40:51     initialization finished
2011.06.16 22:40:51     MetaTester 5 started on 127.0.0.1:3000
2011.06.16 22:40:51     MetaTester 5 x64 build 468 (16 Jun 2011)


 
Bitte geben Sie den Code an.
 
Renat:
Bitte geben Sie mir den Code.

Gute Nacht, ich habe mich gefragt, ob in diesem Code

  if(B >= spred && IND == true && proverka()==true)

nach der Überprüfung von B>spred, das "FALSE" ist, werden die übrigen Werte überprüft

Dadurch erhöht sich die Testlaufzeit, so dass ich den Code wie folgt ändern muss

   if(B >= bar)
    {
     if (IND == true) 
      {
       if (proverka)==true)
        {
         .......

Und die zeitaufwändigste in Bezug auf die Berechnungen ( proverka() - Kopieren von Pufferwerten eines Indikators)

Ich habe es als Letztes eingegeben, aber es wird nicht überprüft, ob es das Letzte ist. Das frage ich mich.

Und warum ist das so?

Oder es wird das letzte nicht überprüft:

 if(B >= bar) if (IND == true) if (proverka()==true)