Mit anderen Worten: Es gibt keinen internen (Standard-)Zugang, aber es gibt einen externen Zugang. Aber um sie zu verwenden, müssen Sie sie ausdrücklich angeben. Das leuchtet mir ein
template<typename T> class A {};
class B {
template<typename T> void f( A<T>& );
};
template<typename T>
void B::f( A<T>& ) {} //Error: 'f' - member function already defined with different parameters
aber sonst:
template<typename T> class A {};
class B {
template<typename T> void f( A<T>& ) {} //нормально
};
gut. Welchen Unterschied macht das?
template<typename T> class A {};
template<typename T>
class B {
void f( A<T>& );
};
template<typename T>
void B::f( A<T>& ) {} //нормально
ist das auch in Ordnung. Und die Hauptsache ist, dass vor (in Build 2085) es alle normal kompiliert - ohne Fehler!
Könnten Sie mir bitte sagen, ob es möglich ist, einen Haltepunkt zu setzen, der zu einem bestimmten Zeitpunkt (auf einem bestimmten Balken) während des Debugging ausgelöst wird? D.h., ich möchte, dass die Geschichte an eine bestimmte Stelle weitergeleitet wird, und an dieser Stelle würde ein Haltepunkt ausgelöst werden, und ich könnte den Debugger an der gewünschten Stelle durchlaufen.
Ich habe einen EA im Tester gestartet, Netting. Ich habe mich noch nicht viel mit Limits beschäftigt, meine Frage bezieht sich auf BuyLimit, mit Positionsumkehr. Lösen sie wirklich mit Slippage zum Besseren aus oder hängt es vom Broker ab? Oder ist es das Falsche im Prüfgerät?
Und aus irgendeinem Grund endete die Linie für die Verkaufsposition nicht an der niedergeschlagenen Grenze, sondern ging weiter über den Bildschirmrand hinaus.
1. es gibt einen Befehl "DatabaseImport", in der Dokumentation zu den Parametern Flags Erklärung gibt es nicht genau diese Flags. Ich habe sowohl "0" als auch die Parameter von DatabaseExport ausprobiert, die Kompilierung funktioniert, aber bei der Ausführung wird Fehler 5131 zurückgegeben. In der Dokumentation gibt es keinen solchen Fehler. Weiß jemand, was es mit diesem Fehler auf sich hat? Was ist falsch an dieser Zeile?
longDatabaseExport(
int database, // хендл базы данных, полученный в DatabaseOpen conststring table_or_sql, //
имя таблицы или SQL-запрос conststring filename, // имя CSV-файла для экспорта данных uint flags, // комбинация флагов conststring separator // разделитель данных в CSV-файле
);
d.h. der Tabellenname sollte auch erkannt werden! Was ist los?
w.s. Meine Herren Entwickler, welches zehnte Auge sollte vermuten, dass die Tabelle, in der der Import durchgeführt wird, nicht existiert? und warum müssen Sie den Import exportieren, wenn der Ordner, in dem Sie speichern könnenemql5/files beim Starten gelöscht wird? Wie kann man mit einer permanenten Datei arbeiten? Oder ist es immer notwendig, durch Debugging zu starten und Zeit zu haben, die notwendige Datei vor der Initialisierung einzufügen? Was ist ....
Könnten Sie mir bitte sagen, ob es möglich ist, einen Haltepunkt zu setzen, der zu einem bestimmten Zeitpunkt (auf einem bestimmten Balken) während des Debugging ausgelöst wird? D.h., ich möchte, dass die Geschichte an eine bestimmte Stelle weitergeleitet wird, und an dieser Stelle würde ein Haltepunkt ausgelöst werden, und ich könnte den Debugger an der gewünschten Stelle durchlaufen.
Im Strategietester gibt es gleich nach dem Start ein Feld mit der Bezeichnung "Blättern bis". In das Feld ganz rechts geben Sie die Zeit ein, bis zu der Sie laufen wollen. Sie halten also in dem Moment an, in dem Sie es brauchen, und setzen dann einen Haltepunkt in den Code, um ihn zu verfolgen.
Alexandr Koptelov: 1. es gibt einen Befehl "DatabaseImport", in der Dokumentation zu den Parametern Flags Erklärung gibt es nicht genau diese Flags. Ich habe sowohl "0" als auch die Parameter von DatabaseExport ausprobiert, die Kompilierung funktioniert, aber bei der Ausführung wird ein Fehler 5131 zurückgegeben. In der Dokumentation gibt es keinen solchen Fehler. Weiß jemand, was es mit diesem Fehler auf sich hat? Was ist falsch an der Zeile; ?
2. Warum funktioniert die Linie und warum nicht? Mit dem, was in der Dokumentation steht
d.h. der Tabellenname sollte auch erkannt werden! Was ist los?
s.w. Meine Herren Entwickler, welches zehnte Auge sollte vermuten, dass die Tabelle, in der der Import durchgeführt werden soll, nicht existiert? und warum braucht man überhaupt einen Export-Import, wenn der Ordner, in dem manemql5/files speichern kann, beim Start geleert wird? Wie kann man mit einer permanenten Datei arbeiten? Oder ist es immer notwendig, durch Debugging zu starten und Zeit zu haben, die notwendige Datei vor der Initialisierung hinzuzufügen? Was ist ....
Arbeiten Sie in einem Tester oder Debugger, wobei sich die Basis in einem gemeinsamen Ordner befindet.
Könnten Sie mir bitte sagen, ob es möglich ist, einen Haltepunkt zu setzen, der zu einem bestimmten Zeitpunkt (auf einem bestimmten Balken) während des Debugging ausgelöst wird? D.h., ich möchte, dass die Geschichte bis zu einer bestimmten Stelle aktiv ist und dann ein Haltepunkt an dieser Stelle ausgelöst wird, so dass ich den Debugger auf dem Balken, den ich brauche, durchlaufen kann.
Setzen Sie die Bedingung
if(TimeCurrent() == nnnTime)
DebugBreak();
und starten Sie die Fehlersuche. Sobald die Zeit die angegebene Zeit erreicht, wird das Debugging gestoppt und nach allen Manipulationen drücken Sie Shift+F11, um den Tester fortzusetzen.
Gibt es keine Möglichkeit, Drucken im Optimierungsmodus zu aktivieren? Die Option "Vollständige Optimierungsprotokolle" ist aktiviert, aber nur der Druck von OnInit wird in die Protokolle aufgenommen, während ich ihn z. B. von OnTester benötige.
#define MACRO( X ) aaa##X = X
#define bbb 5voidOnStart()
{
int MACRO( bbb );
printf( "%d", aaabbb ); //Error: 'aaabbb' - undeclared identifier
}
Und in C++ ist das in Ordnung. ## hat höhere Priorität - bbb wird zuerst ersetzt, und dann wird bbb durch 5 ersetzt, was nicht der Fall sein sollte:
int aaa5 = 5; //неправильно (*)
So sollte es sein:
int aaabbb = 5; //правильно (**)
Aufgrund dieses Fehlers kann eine Routineoperation nicht durch ein Makro ersetzt werden. (*) kann gegebenenfalls durch eine andere Aufzeichnungsform erhalten werden, aber (**) kann in MQL auf keine Weise erhalten werden.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Mit anderen Worten: Es gibt keinen internen (Standard-)Zugang, aber es gibt einen externen Zugang. Aber um sie zu verwenden, müssen Sie sie ausdrücklich angeben. Das leuchtet mir ein
aber sonst:
gut. Welchen Unterschied macht das?
ist das auch in Ordnung. Und die Hauptsache ist, dass vor (in Build 2085) es alle normal kompiliert - ohne Fehler!
Guten Tag, liebe Experten!
Könnten Sie mir bitte sagen, ob es möglich ist, einen Haltepunkt zu setzen, der zu einem bestimmten Zeitpunkt (auf einem bestimmten Balken) während des Debugging ausgelöst wird? D.h., ich möchte, dass die Geschichte an eine bestimmte Stelle weitergeleitet wird, und an dieser Stelle würde ein Haltepunkt ausgelöst werden, und ich könnte den Debugger an der gewünschten Stelle durchlaufen.
Ich habe einen EA im Tester gestartet, Netting. Ich habe mich noch nicht viel mit Limits beschäftigt, meine Frage bezieht sich auf BuyLimit, mit Positionsumkehr.
Lösen sie wirklich mit Slippage zum Besseren aus oder hängt es vom Broker ab? Oder ist es das Falsche im Prüfgerät?
Und aus irgendeinem Grund endete die Linie für die Verkaufsposition nicht an der niedergeschlagenen Grenze, sondern ging weiter über den Bildschirmrand hinaus.
d.h. der Tabellenname sollte auch erkannt werden! Was ist los?
w.s. Meine Herren Entwickler, welches zehnte Auge sollte vermuten, dass die Tabelle, in der der Import durchgeführt wird, nicht existiert? und warum müssen Sie den Import exportieren, wenn der Ordner, in dem Sie speichern könnenemql5/files beim Starten gelöscht wird? Wie kann man mit einer permanenten Datei arbeiten? Oder ist es immer notwendig, durch Debugging zu starten und Zeit zu haben, die notwendige Datei vor der Initialisierung einzufügen? Was ist ....Guten Tag, liebe Experten!
Könnten Sie mir bitte sagen, ob es möglich ist, einen Haltepunkt zu setzen, der zu einem bestimmten Zeitpunkt (auf einem bestimmten Balken) während des Debugging ausgelöst wird? D.h., ich möchte, dass die Geschichte an eine bestimmte Stelle weitergeleitet wird, und an dieser Stelle würde ein Haltepunkt ausgelöst werden, und ich könnte den Debugger an der gewünschten Stelle durchlaufen.
1. es gibt einen Befehl "DatabaseImport", in der Dokumentation zu den Parametern Flags Erklärung gibt es nicht genau diese Flags. Ich habe sowohl "0" als auch die Parameter von DatabaseExport ausprobiert, die Kompilierung funktioniert, aber bei der Ausführung wird ein Fehler 5131 zurückgegeben. In der Dokumentation gibt es keinen solchen Fehler. Weiß jemand, was es mit diesem Fehler auf sich hat? Was ist falsch an der Zeile; ?
d.h. der Tabellenname sollte auch erkannt werden! Was ist los?
s.w. Meine Herren Entwickler, welches zehnte Auge sollte vermuten, dass die Tabelle, in der der Import durchgeführt werden soll, nicht existiert? und warum braucht man überhaupt einen Export-Import, wenn der Ordner, in dem manemql5/files speichern kann, beim Start geleert wird? Wie kann man mit einer permanenten Datei arbeiten? Oder ist es immer notwendig, durch Debugging zu starten und Zeit zu haben, die notwendige Datei vor der Initialisierung hinzuzufügen? Was ist ....Arbeiten Sie in einem Tester oder Debugger, wobei sich die Basis in einem gemeinsamen Ordner befindet.
Guten Tag, liebe Experten!
Könnten Sie mir bitte sagen, ob es möglich ist, einen Haltepunkt zu setzen, der zu einem bestimmten Zeitpunkt (auf einem bestimmten Balken) während des Debugging ausgelöst wird? D.h., ich möchte, dass die Geschichte bis zu einer bestimmten Stelle aktiv ist und dann ein Haltepunkt an dieser Stelle ausgelöst wird, so dass ich den Debugger auf dem Balken, den ich brauche, durchlaufen kann.
Setzen Sie die Bedingung
und starten Sie die Fehlersuche. Sobald die Zeit die angegebene Zeit erreicht, wird das Debugging gestoppt und nach allen Manipulationen drücken Sie Shift+F11, um den Tester fortzusetzen.Gibt es keine Möglichkeit, Drucken im Optimierungsmodus zu aktivieren? Die Option "Vollständige Optimierungsprotokolle" ist aktiviert, aber nur der Druck von OnInit wird in die Protokolle aufgenommen, während ich ihn z. B. von OnTester benötige.
Und in C++ ist das in Ordnung. ## hat höhere Priorität - bbb wird zuerst ersetzt, und dann wird bbb durch 5 ersetzt, was nicht der Fall sein sollte:
So sollte es sein:
Aufgrund dieses Fehlers kann eine Routineoperation nicht durch ein Makro ersetzt werden. (*) kann gegebenenfalls durch eine andere Aufzeichnungsform erhalten werden, aber (**) kann in MQL auf keine Weise erhalten werden.