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
Welcher ist es?
Ich habe es an einigen Blinkern ausprobiert. Beide haben gut funktioniert, jetzt nicht mehr.
2) es gibt oft Probleme beim Versuch, einen Testlauf mit Verbindung zu den Kernen durchzuführen (funktioniert beim n-ten Durchlauf). siehe Bild.
Eine Gruppe von Telepathen befasst sich bereits mit Ihrem Problem.
Man muss kein Telepath sein, um zu verstehen, dass iCustom() nicht so funktioniert, wie es sollte.
um es zu testen, können Sie den Code des Expert Advisors ausführen:
double buffer[];
ResetLastError();
int MA_handle = iCustom(NULL, 0, "Examples\\Custom Moving Average", 21, 0, MODE_SMMA);
//int MA_handle = iMA(NULL, 0, 21, 0, MODE_SMMA, PRICE_MEDIAN);
Print("MA_handle = ", MA_handle, " error = ", GetLastError());
int copy = CopyBuffer(MA_handle, 0, 0, 5, buffer);
if (copy == -1) Print("Failed to get Custom Moving Average indicator");
sonst
for (int i = 0; i < 5; i++) Print("buffer[", i, "] = ", buffer[i];
und die Meldung "Failed to get Custom Moving Average indicator values" wird angezeigt.
D.h. CopyBuffer gibt einen Fehler (-1) für den iCustom()-Indikator-Handle zurück. Wenn wir den Standard-iMA()-Indikator nehmen, funktioniert derselbe Code!
Sehen Sie sich die Indizierungsrichtung des resultierenden Arrays an, vielleicht muss es erweitert werden.
Mit der Indizierungsrichtung ist alles in Ordnung, und in früheren Builds funktionierte dies auch. In 448 und 450 funktionierte es nicht.
Ich habe schon oft vorgeschlagen, dass die Entwickler die Hauptfunktionen des Terminals gründlicher testen sollten,
aber von Build zu Build erhalten sie unterschiedliche kritische Fehler anstelle von kritischen Fehlern.
D.h. eine Sache ist behoben und eine andere Sache, die normalerweise funktionierte, geht kaputt und es ist kein Ende in Sicht. Ich schätze, ich werde nie eine stabile Version kommen sehen (((
Der Schlupf vor dem Kopieren von Daten, dauert es Zeit, um den Indikator zu berechnen, so dass, obwohl der Griff korrekt zurückkehrt, die Daten noch nicht berechnet worden,
Im Allgemeinen wird empfohlen, Indikatoren in der Inite aufzurufen und Daten bereits in OnTick() oder anderen speziellen Funktionen abzufragen.
wieder, Sie kopieren 5 Daten von Null bar, aber in der copybuffer Null bar ist irgendwo um 1970 (hängt von max bar Einstellungen), das ist, warum ich sagte Blick auf die Array-Indizierung.
Der Schlupf vor dem Kopieren von Daten, dauert es Zeit, um den Indikator zu berechnen, so dass, obwohl der Handle korrekt zurückkehrt, die Daten noch nicht berechnet worden sind.
Sleep(1000); // 1 Sekunde nach dem Aufruf von iCustom() hat geholfen, ABER. Soll ich die Verzögerungszeit jetzt ablesen? Woher soll ich wissen, wie lange der Berechnungsprozess dauern wird?
es ist falsch, den korrekten Indikatorgriff zu geben, der auf Müll zeigt! und es muss vorher richtig funktioniert haben, weil es kein solches Problem gab.
Im Allgemeinen wird empfohlen, die Indikatoren in der Initis aufzurufen und die Daten bereits in OnTick() oder anderen speziellen Funktionen abzufragen.
Das ist ein guter Tipp für mich, danke ), denn wenn ich es so gemacht hätte, hätte ich das Problem nicht gesehen...
Wieder sind Sie kopieren 5 Daten von null bar, aber in copyBuffer null bar ist irgendwo um 1970 (hängt von max bar Einstellungen), das ist, warum ich sagte, schauen Sie sich die Indizierung des Arrays.
Soweit ich aus der Hilfedokumentation verstehe, ist in CopyBuffer() der Nullbalken tatsächlich "Gegenwart", und schon beim Kopieren wird das Array erweitert.
Sleep(1000); // 1 Sek. nach Aufruf von iCustom() hat geholfen, ABER... Was soll ich jetzt mit der Verzögerungszeit anfangen? Woher soll ich wissen, wie lange der Berechnungsprozess dauern wird?
Es ist falsch, den richtigen Blinker zu setzen, der auf den Müll hinweist! Und es muss vorher richtig funktioniert haben, denn es gab kein solches Problem.
Können die folgenden Indikatoroptionen (rot eingekreist) programmatisch gesetzt werden?
Ich habe keine Möglichkeit gefunden, dies zu tun.
Ich weiß nicht, ob dies ein Fehler ist, aber ich denke, es gibt Fehler im Code der Bibliotheken für alle Arten von Muvings (SignalFrAMA, SignalAMA, SignalMA, SignalDEMA, SignalTEMA) für den Master, sieheCSignalTEMA::ShortCondition()
Auch in der SignalMA-Bibliothek in
Ich weiß nicht, ob dies ein Fehler ist, aber ich denke, es gibt Fehler im Code der Bibliotheken für alle Arten von Muvings (SignalFrAMA, SignalAMA, SignalMA, SignalDEMA, SignalTEMA) für den Master, siehe CSignalTEMA::ShortCondition()
Auch in der SignalMA-Bibliothek in
https://www.mql5.com/ru/forum/1111/page391#comment_67358
Geben Sie den vollen Wortlaut des Anrufs an.
/i:<Pfad zum MQL5-Ordner>.
Geben Sie die vollständige Zeichenkette an.
Hier sind alle ausprobierten Optionen:
Nach jedem Versuch wurde geprüft, ob die Datei unter dem folgenden Pfad existiert
D:\Users\Дмитрий\AppData\Roaming\MetaQuotes\Terminal\44 D6FB562C883F0C70690F3306A3851D\MQL5\Scripts\sInstallerTestScript.ex5
Der Einbrecher auf dem Weg
D:\Users\Дмитрий\AppData\Roaming\MetaQuotes\Terminal\44 D6FB562C883F0C70690F3306A3851D\MQL5\Include\InstallerTestInclude\IncInstallerTest.mqh
existiert.
Die Existenzprüfung wurde von der Funktion durchgeführt: