Fehler, Irrtümer, Fragen - Seite 311

 

Fehler im neuen Build, nur auf x64 Systemen möglich (speziell Windows 7, Core i7 Prozessor). In der vorherigen Version gab es diesen Fehler nicht. Dieser Fehler hat die folgende Bedeutung.

Wenn ich den Expert Advisor-Quellcode nicht wesentlich ändere (z. B. nur den Wert einer Variablen) und danach neu kompiliere, bleibt das Testergebnis gleich.

Ich bin sogar zu folgendem gekommen:

In die void-Funktion OnTick() füge ich return; :) ein, kompiliere, führe aus, und das Ergebnis ist dasselbe: !!!! Im Allgemeinen sollte die Linie jedoch lauten.

Der Ausweg bestand entweder darin, die *.ex5-Datei zu löschen und erneut zu kompilieren, oder irgendeinen Unsinn zu schreiben, um den Compiler zum Treten zu bringen, und dann zu kompilieren.

Morgen werde ich prüfen, ob das Gleiche bei x32-Bit-Betriebssystemen passiert.

Mir ist auch aufgefallen, dass es zu lange dauert, neue Fenster mit Diagrammen auf x64 zu öffnen und zu lange dauert, sie zu entfernen!

Und das Terminal bleibt mit der Aufschrift "no response" etwa 5 Sekunden lang hängen.

 
bobsley:

Fehler im neuen Build, nur auf x64 Systemen möglich (speziell Windows 7, Core i7 Prozessor). In der vorherigen Version gab es diesen Fehler nicht. Dieser Fehler hat die folgende Bedeutung.

Wenn ich den Expert Advisor-Quellcode nicht wesentlich ändere (z. B. nur den Wert einer Variablen) und danach neu kompiliere, bleibt das Testergebnis gleich.

Ich bin sogar zu folgendem gekommen:

In der void OnTick() Funktion füge ich return; :) ein, kompiliere, führe aus und das Ergebnis ist das gleiche !!!! Im Allgemeinen sollte die Linie jedoch lauten.

Der Ausweg bestand entweder darin, die *.ex5-Datei zu löschen und neu zu kompilieren, oder irgendeinen Unsinn zu schreiben, um den Compiler zum Treten zu bringen, und dann zu kompilieren.

Morgen werde ich prüfen, ob das Gleiche bei x32-Bit-Betriebssystemen passiert.

Mir ist auch aufgefallen, dass es zu lange dauert, neue Fenster mit Diagrammen auf x64 zu öffnen und zu lange dauert, sie zu entfernen!

Und das Terminal bleibt mit der Aufschrift "no response" etwa 5 Sekunden lang hängen.

Überprüfen Sie diesen Ordner (Benutzername\AppData\Roaming\MetaQuotes\Terminal\72CEBD0F7A5518983A10360D0E46A5B6\MQL5), vielleicht wird Ihr EA dort kompiliert
 
bobsley:

Fehler im neuen Build, nur auf x64 Systemen möglich (speziell Windows 7, Core i7 Prozessor). In der vorherigen Version gab es diesen Fehler nicht. Dieser Fehler hat die folgende Bedeutung.

Wenn ich den Expert Advisor-Quellcode nicht wesentlich ändere (z. B. nur den Wert einer Variablen) und danach neu kompiliere, bleibt das Testergebnis gleich.

Ich bin sogar zu folgendem gekommen:

In der void OnTick()-Funktion füge ich return; :) ein, kompiliere, führe aus, und das Ergebnis ist dasselbe !!!! Im Allgemeinen sollte die Linie jedoch lauten.

Der Ausweg bestand entweder darin, die *.ex5-Datei zu löschen und erneut zu kompilieren, oder irgendeinen Unsinn zu schreiben, um den Compiler zum Treten zu bringen, und dann zu kompilieren.

Morgen werde ich prüfen, ob das Gleiche bei x32-Bit-Betriebssystemen passiert.

...

Ich habe diesen Fehler nicht speziell entdeckt, aber ich habe ein ähnliches Verhalten auf 32-Bit festgestellt. Es ist der Fehler, der auftritt, wenn Sie einen Ausdruck kompilieren, den Sie nicht beendet haben, wie ein Semikolon.
 
Im_hungry:
Natürlich gibt es eine Geschichte, aber nicht alle Würmer haben eine Ausbreitungsgeschichte!

1. Wir werden nicht über alles reden, nur über diesen einen, den Server des Entwicklers - access.metatrader5.com:443 (nun, ich habe im Moment niemanden mit einer besseren Geschichte in MT5 getroffen).

Nehmen wir mein Drehbuch, es ist nicht sehr gut, aber dennoch ist es nicht fertig. Lassen wir es mit TF "1 Woche" und der Anzahl der Balken 930 laufen.

Wir erhalten das folgende Ergebnis

2011.02.22 11:38:50     -   1:1993.05.09 00:00 open = 1.2368, high = 1.2368, low = 1.2084, close = 1.219, volume = 252, spread = 50
2011.02.22 11:38:50     -   0:1993.05.02 00:00 open = 1.2334, high = 1.2466, low = 1.2267, close = 1.2332, volume = 0, spread = 0
2011.02.22 11:38:50     -   Скопировано баров: 930

Die Spreads auf den wöchentlichen Balken stammen vom 02.05.1993, und die Geschichte der Balken ist sogar noch tiefer. Aber diese Daten sind vielleicht nicht so tief, wenn es den Euro offiziell seit 1999 gibt (obwohl das, Gott sei Dank, eine andere Frage ist).

2. Lassen Sie uns nun versuchen, die Tiefe der Spread-Informationen auf Tages-Charts zu spezifizieren.

Gehen wir von der Tatsache aus, dass es 5 Handelstage in der Woche gibt, und versuchen wir, den Beginn der Geschichte der Spread-Daten auf den Tages-Charts zu finden (ich werde von Anfang an sagen, dass die ungefähre Zahl 4630 ist).

2011.02.22 11:56:06     -   2:1993.05.13 00:00 open = 1.2148, high = 1.2158, low = 1.2084, close = 1.2099, volume = 100, spread = 50
2011.02.22 11:56:06     -   1:1993.05.12 00:00 open = 1.2138, high = 1.2171, low = 1.2105, close = 1.2152, volume = 0, spread = 0
2011.02.22 11:56:06     -   0:1993.05.11 00:00 open = 1.2167, high = 1.2202, low = 1.2121, close = 1.2141, volume = 0, spread = 0
2011.02.22 11:56:06     -   Скопировано баров: 4630

So können wir sehen, dass die Geschichte des Spreads auf den Tagesbalken mit 1993.05.13 beginnt.

PS

Ich denke, weiter sortieren durch Analogie (das älteste Datum auf den kleinsten Zeitrahmen, wie ich verstehe und wird, dass der Ort, den wir suchen) ...

Ich will nur darauf hinweisen, dass sich das ausbreitet:

H12 verfügbar seit 1993.05.13 (aber Balken dort, wie ich verstanden täglich) - Tiefe ist etwa 7790 Bars

H6 sind ab 1993.05.13 verfügbar (tägliche Balken) - Tiefe ist ungefähr 14100 Balken

 
sergey1294:
Überprüfen Sie diesen Ordner (Username\AppData\Roaming\MetaQuotes\Terminal\72CEBD0F7A5518983A10360D0E46A5B6\MQL5), vielleicht wird Ihr EA dort kompiliert

Ich habe natürlich nachgesehen, es ist alles leer. Und warum sollte das so sein, ich habe die Experten in ..\Experts\Examples\

dort erscheinen ihre Kompilationen.

Heute habe ich es unter x32 OS bei der Arbeit überprüft. Vor dem Upgrade war alles in Ordnung, dann wurde das Terminal aktualisiert und sofort trat der gleiche Fehler auf!

 
 double op, sp;
     
     if ( ObjectGetDouble ( 0,"Open", OBJPROP_PRICE,0,op) &&  ObjectGetDouble ( 0,"Stop", OBJPROP_PRICE,0,sp ) ){
     
        if ( is40x_b0[0] > 0 && Tick.bid > op && Tick.bid < sp ){ <--------------- Дает предупреждение possible use of uninitialized variable 'sp'
         Sell(); 
        }
        
        if ( is40x_b1[0] > 0 && Tick.ask < op && Tick.ask > sp ){
         Buy(); 
        }

     }
 
Academic:


muss es so sein
 double op=0, sp=0;
 
sergey1294:
Es muss so sein.
Und warum?
 
Academic:
Warum?

Daran ist wirklich nichts auszusetzen.

Die Variablen werden bei der Initialisierung zurückgesetzt.

Hier können Sie es sich ansehen.

int i;

printf("i=%d",i);

 
bobsley:

Daran ist wirklich nichts auszusetzen.

Die Variablen werden bei der Initialisierung zurückgesetzt.

Hier können Sie es sich ansehen.

int i;

printf("i=%d",i);

Diese Warnung sollte nicht ausgegeben werden, da ein Verweis an die Funktion ObjectGetDouble übergeben wird und die if-Anweisung den von beiden Aufrufen zurückgegebenen Wahrheitswert prüft und daher nur dann, wenn beide Funktionen wahr zurückgeben, diese Variablen behandelt werden, was bedeutet, dass diese beiden Variablen nicht auf den richtigen Wert gesetzt werden können.

Документация по MQL5: Графические объекты / ObjectGetDouble
Документация по MQL5: Графические объекты / ObjectGetDouble
  • www.mql5.com
Графические объекты / ObjectGetDouble - Документация по MQL5