Fehler, Irrtümer, Fragen - Seite 1824
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es als Administrator auszuführen hilft nicht?
Ich war kurz davor, Windows neu zu starten, schloss den mql5-Editor, schloss den mql4-Editor und schloss die Terminals MT5 und MT4. Aber ich musste etwas im mql4-Editor nachsehen. Ich öffnete sie erneut und, oh mein Gott, die Datei wurde kompiliert. Jetzt denke ich, dass zwei Editoren, mql4 und mql5, gleichzeitig arbeiten. Es ist seltsam, dass dieselben Dateien aus verschiedenen Verzeichnissen nicht in ihnen geöffnet werden.
Aber ich werde beobachten, wie sie zusammenarbeiten.
Ausgewählt. Die Null geschieht nur nach dem ersten Durchlauf und nicht unbedingt bei SGD-Symbolen.
SGDJPY wurde zufällig in die Quelle aufgenommen. Das Ergebnis wird bereits für die korrigierte Version angezeigt, bei der "SGDJPY" durch _Symbol ersetzt wird.
Konnte sie es reproduzieren?
Das Gleiche gilt für die 4. Ich habe sogar einen Kommentar dazu, damit ich es nicht vergesse. Jetzt habe ich MT4 auf 1052 aktualisiert - der Fehler ist nicht beseitigt. Die Ausführung als Administrator hilft nicht (Antwort auf Combinator)
Hier ist der Funktionscode für MQL4, ich verwende ihn im Indikator, er wird in OnCalculate aufgerufen. Wenn ich den Indikator zum Diagramm hinzufüge, ist alles in Ordnung. Aber wenn ich das Terminal neu starte - mehrere Nullwerte, siehe Ausgabe am Ende des Beitrags.
{
int dig=(int)MarketInfo(symbol,MODE_DIGITS);
if(dig == 0)
return(false); // symbol is none
double tickSizeMarketInfo = MarketInfo(symbol, MODE_TICKSIZE); // пункт в валюте котировки (0,00001 для EURUSD на 5-знаке)
double tickValue, tickSize2;
if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE, tickValue)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_VALUE) returns false");
if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tickSize2)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_SIZE) returns false");
Print("tickSizeMarketInfo= ", tickSizeMarketInfo, " tickSize2= ", tickSize2, " tickValue= ", tickValue);
if(tickSizeMarketInfo == 0 || tickSize2 == 0 || tickValue == 0.0)
return false;
double price=diff/(tickSize2/tickValue);
price4lot=NormalizeDouble(price,2);
return (true);
}
Ausgabe nach Neustart des Terminals:
2017.03.01 00:31:43.588 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0
2017.03.01 00:31:43.460 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0
2017.03.01 00:31:43.351 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0
2017.03.01 00:31:42.961 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0. 0
2017.03.01 00:31:42.910 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0. 0
2017.03.01 00:31:42.866 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0. 0
2017.03.01 00:31:42.301 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0. 0
2017.03.01 00:31:41.116 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0. 0
2017.03.01 00:31:41.116 ShowImportantParams EURUSD.e,M5: initialisiert
2017.03.01 00:31:41.080 Custom indicator ShowImportantParams EURUSD.e,M5: erfolgreich geladen
Bei den vier ist es dasselbe. Ich habe sogar einen Kommentar hinterlassen, damit ich ihn nicht verg esse.
Ich habe es nicht ausprobiert. Vor Build 1045 ist das nie vorgekommen. Und es passiert auch nicht mehr ständig. Sie können einen halben Tag lang arbeiten, und dann tritt dieser Fehler auf.
Ich war kurz davor, Windows neu zu starten, schloss den mql5-Editor, schloss den mql4-Editor und schloss die Terminals MT5 und MT4. Aber ich musste etwas im mql4-Editor nachsehen. Ich öffnete sie erneut und, oh mein Gott, die Datei wurde kompiliert. Jetzt denke ich, dass zwei Editoren, mql4 und mql5, gleichzeitig arbeiten. Es ist seltsam, dass dieselben Dateien aus verschiedenen Verzeichnissen nicht in ihnen geöffnet werden.
Aber ich werde beobachten, wie sie zusammenarbeiten.
2017.03.01 01:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
Es macht keinen Unterschied - der Fehler tritt immer wieder auf, egal ob ein oder zwei Editoren laufen:
2017.03.01 01:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
Verursacht der /portable-Modus ebenfalls ein Problem?
Dies ist der /portable Modus:
Sie müssen sich die Benutzer der entsprechenden Ordner ansehen. Ich glaube nicht, dass es an MT4 liegt, es sieht so aus, als gäbe es ein Problem beim Zugriff auf die Ordner. Vielleicht blockiert ein versteckter Prozess den Zugriff.
Dies ist der /portable Modus: