Fehler, Irrtümer, Fragen - Seite 2575
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
Der Speicher wird im mql-Code wie folgt zugewiesen
heraus und als Zeiger auf zugewiesenen Speicher übergeben, da string in mql wichar_t* in dll ist
Oh, wie verkorkst...
Ich kenne die String-Implementierung nicht, ich kann nur raten, aber nach dem Fehler zu urteilen, erstellt string out einen Zeiger auf dem Stapel, der auf 0x0000000000 initialisiert ist und Sie sicher einen Null-Zeiger in der DLL dereferenzieren.
Oh, es ist so kompliziert...
Ich kenne die String-Implementierung nicht, ich kann nur raten, aber nach dem Fehler zu urteilen, erstellt string out einen Zeiger auf dem Stapel, der auf 0x0000000000 initialisiert ist und Sie sicher einen Null-Zeiger in der DLL dereferenzieren.
Der Speicher wird im mql-Code wie folgt zugewiesen
out und wird als Zeiger auf zugewiesenen Speicher übergeben, da string in mql wchar_t* in dll ist
Untersuchen Sie die Vertiefung selbst, dort ist höchstwahrscheinlich etwas zu finden. In letzter Zeit habe ich Daten aus mql in C++/C#-Anwendungen von Drittanbietern eingespeist, ohne dass es irgendwelche Probleme gab.
Untersuchen Sie die Datei selbst, wahrscheinlich finden Sie dort etwas. In letzter Zeit habe ich Daten aus mql in C++/C#-Anwendungen von Drittanbietern eingespeist, ohne dass es irgendwelche Probleme gab.
Der Dll ist einfach, er wird nicht zur Verdeutlichung benötigt, die Idee selbst wird gezeigt.
Geben Sie die Ergebnisdaten auf der Konsole aus, alle Zeilen in der Konsole sind klar, ohne Lücken und ohne Störungen.
Ich übergebe das Ergebnis über wcscpy(out, data) an mql, aber jetzt bekomme ich Probleme.
Aber wenn ich eine von Hand geschriebene Zeichenfolge überprüfe.
Aus irgendeinem Grund habe ich keine Probleme.
Hm, betrachtet Typ String in Mql Terminal null wchar_t *?
Vorschlag, die Möglichkeiten des OnTimer()-Ereignisses ein wenig zu erweitern
Das OnTimer()-Ereignis tritt in dem Moment ein, in dem die Periodizität des Aufrufs mit der Funktion EventSetTimer() festgelegt wurde.
Es stellt sich heraus, die folgenden Expert Advisor:
Gibt ungefähr das Folgende aus:
Oft reicht es jedoch aus, das Auftreten des Signals nach dem Erscheinen eines weiteren Balkens zu überprüfen.
Es stellt sich zum Beispiel heraus, dass für PERIOD_M15 der Balken um 00:15:00 erscheint, aber die Prüfung durch den Expert Advisor kann ihn nur um 00:29:59 prüfen.
Für mehr oder weniger stabile und gleiche Ergebnisse, unabhängig von der Startzeit des Expert Advisors,
müssen Sie einen Timer für ein kürzeres Zeitintervall einstellen oder zusätzlich OnTick() verwenden.
Wie Experimente gezeigt haben, verlangsamt sich dadurch die Geschwindigkeit der Tests im Strategietester drastisch.
Anregung:
Hinzufügen einer Funktion, die es ermöglicht, die Anfangszeit festzulegen, ab der das OnTimer-Ereignis gezählt wird.
Zum Beispiel eine Funktion EventSetTimerFrom(const datetime SinceDT), die es Ihnen ermöglichen würde, den Timeraufruf einige Sekunden nach einem neuen Takt zu setzen.
Der Dll ist einfach, das überflüssige Zeug wurde aus Gründen der Übersichtlichkeit entfernt, die Idee wird dargestellt.
Ich füge das Ergebnis in die Konsole ein, alle Zeilen sind in Ordnung, keine Lücken, keine Pannen.
Ich übergebe das Ergebnis über wcscpy(out, data) an mql, aber jetzt bekomme ich Probleme.
Aber wenn ich eine von Hand geschriebene Zeichenfolge überprüfe.
Aus irgendeinem Grund habe ich keine Probleme.
Hm, betrachtet Typ String in Mql Terminal null wchar_t *?
Aber diese Funktion funktioniert.
Aber es ist etwas unübersichtlich, es sieht so aus, als ob am Ende einer Zeile ein zusätzliches } steht, eine zusätzliche Klammer taucht immer wieder auf und verschwindet.
wcslen(Daten)+1
wcslen(Daten)+2
hat nicht geholfen,
und wird ohne Fehler geparst, ohne Lecks.
keine Ahnung, was die Länge oder Größe eines Zeichens in einer mql-ähnlichen Zeichenfolge ist
liegt sicherlich ein Fehler im String-Typ vor.
Und in einem lange zurückliegenden Artikel in Abschnitt 3.3 Übergabe und Modifizierung von Zeichenketten wurde in dem Beispiel höchstwahrscheinlich ein Fehler gemacht.
Vielleicht funktioniert die mql-Stringkonvertierung irgendwo im Terminalcode auf die gleiche Weise, ohne Zeiger.
die Anfangszeit festlegen, ab der das OnTimer-Ereignis heruntergezählt wird.
Sie können dies durch wiederholten Aufruf von EventSetTimer selbst tun. Beachten Sie, dass der Timer im Konto (nicht im Tester) schwebt und ständig angepasst werden muss.
Sie können dies durch wiederholten Aufruf von EventSetTimer selbst tun. Beachten Sie, dass der Timer auf dem Konto (nicht im Tester) schwimmt und ständig angepasst werden muss.
Danke, nützliche Sache!
Es ist natürlich sehr merkwürdig, dass ein so einfacher Punkt im Terminal "out of the box" nicht beachtet wird.
Aber diese Funktion funktioniert.
Aber es scheint ein wenig umständlich zu sein, eine zusätzliche Klammer } erscheint oder verschwindet am Ende der Zeichenkette.
wcslen(Daten)+1
wcslen(Daten)+2
hat nicht geholfen,
und wird ohne Fehler geparst, ohne Lecks.
keine Ahnung, was die Länge oder Größe eines Zeichens in einer mql-ähnlichen Zeichenfolge ist
liegt sicherlich ein Fehler im String-Typ vor.
Und in einem lange zurückliegenden Artikel in Abschnitt 3.3 Übergabe und Modifizierung von Zeichenketten wurde in dem Beispiel höchstwahrscheinlich ein Fehler gemacht.
Vielleicht funktioniert die mql-Stringkonvertierung irgendwo im Terminalcode auf die gleiche Weise, ohne den Zeiger.
Der Dll ist einfach, er wurde aus Gründen der Übersichtlichkeit entfernt und die Idee wird dargestellt
Ihre Beispiele sind lustig, Sie haben alles entfernt, UB (Änderung von Stringliteralen) übrig gelassen, und jeder muss telepathieren. Wenn Sie einen klugen Ratschlag erwarten, geben Sie ein Minimum an funktionierendem Code (auf zwei Seiten), sonst ist es einfach nur Müll.