Fehler, Irrtümer, Fragen - Seite 2490
![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
Haben Sie mein Zitat im folgenden Beitrag aufmerksam gelesen?
Dieses Verhalten ist seit der Einführung der Einstellung "maximale Anzahl von Balken pro Chart", d.h. seit Beginn von MT4, immer vorhanden. Und wir haben in diesen 15 Jahren viele Male erklärt, warum wir die Anzahl der Balken nicht jedes Mal entsprechend dieser Einstellung reduzieren. Und jetzt machen wir nicht jedes Mal Abstriche.
Niemand liest die Dokumentation. Aber es ist ein Paradoxon. Sie fordern uns immer noch auf, etwas anderes in die Dokumentation zu schreiben, das sie nicht lesen.
Slawa, ich habe keine Beschwerden. Ich habe sorgfältig gelesen und nicht nur Ihr Zitat und dieses eine
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wanzen, Wanzen, Fragen
Slava, 2019.06.29 18:25
rates_total zeigt immer die Anzahl der im aktuellen Diagramm verfügbaren Balken an.
Ich verstehe den Sinn Ihrer Aussage nicht
und dies
Forum für Handel, automatisierte Handelssysteme und Strategietests
Wanzen, Wanzen, Fragen
Slawa, 2019.06.29 18:42
Ich habe das Client-Terminal im Moment nicht zur Hand, um die Hilfe zu zitieren. Von einem mobilen Gerät aus mit zwei Klickshttps://www.metatrader5.com/ru/terminal/help/startworking/settings#max_bars
Speziell hervorgehobener Absatz.
Für eine wirtschaftlichere Berechnung können Indikatoren mehr Balken zur Verfügung haben, als im Parameter "Max bars in window" angegeben. Wenn neue Balken eintreffen, werden ältere Balken nicht sofort aus dem Datencache entfernt. Dadurch wird der Indikator nicht bei jedem neuen Balken komplett neu berechnet, sondern berechnet seine Werte nur zusätzlich für neue Balken.
Natürlich verstehe ich etwas nicht, deshalb frage ich noch einmal nach und versuche zu verstehen. Ich denke, es wird keine Änderungen geben. Bitte verstehen Sie meine Aussagen nicht als Beschwerde.
Der Verweis ist nicht korrekt, er ist irreführend, ich schriebhttps://www.mql5.com/ru/forum/304239/page57#comment_11519307
In MQL5 die Puffer im Allgemeinen arbeiten als gewöhnliche Arrays, in MT4 das Terminal behandelt mit Puffern - es zurückgesetzt sie auf EMPTY_VALUE, dann ... Ich weiß nicht mehr, wo ich über den Unterschied zwischen MT5- und MT4-Indikatoren geschrieben habe
Sie müssen die Puffer löschen - Sie löschen sie wie ein normales Array, das Terminal setzt nur die Größe des Array-Puffers selbst.
Igor, können Sie mir in einfachem Russisch erklären: Wenn jedes Loch des Indikatorpuffers mit einigen Werten gefüllt wird, die den dort enthaltenen Müll ersetzen, welchen Zweck hat es dann, diese Löcher zu erzwingen, bevor sie mit den richtigen Werten gefüllt werden? Für den Verlust der Ausführungsgeschwindigkeit?
Igor, können Sie in einfachem Russisch erklären: Wenn jedes Loch des Indikatorpuffers mit einigen Werten gefüllt wird, die den dort enthaltenen Müll ersetzen, welchen Zweck hat es dann, diese Löcher zwangsweise zu leeren, bevor sie mit den benötigten Werten gefüllt werden? Für den Verlust der Ausführungsgeschwindigkeit?
Das Füllen von "Löchern" ist nur bei einem Indikator mit "Pfeilen" kritisch, in MT4 werden diese "Löcher" bei der Initialisierung des Indikators automatisch mit dem Wert EMPTY_VALUE gefüllt
im MT5 muss dies vom Programmierer erledigt werden
oder in MT5 sollte der Programmierer die Indikatorpuffer über das if() else-Konstrukt füllen
d.h. dies wird in MT4 funktionieren:
if(...) Buf[i] = high[i];
im MT5 müssen Sie schreiben:
oder in MT5 müssen Sie die Indikatorpuffer leeren, sonst zieht der Indikator "Müll" aus dem Array, das durch den Indikatorpuffer .... gebunden ist, wenn Sie die TF wechseln. es ist eine Frage des Geschmacks, wie man schreibt und was man dabei berücksichtigt
SZY: Geschwindigkeit? Nun, messen Sie die Geschwindigkeit, in 99% der Fälle sind die eingebauten Funktionen schneller, aber es gibt keinen Unterschied in der Leistung zwischen dem Füllen jedes Balkens in der Schleife EMPTY_VALUE und einer Initialisierung mit ArrayInitialize(Buf,EMPTY_VALUE)
das Füllen von "Löchern" ist nur bei einem Indikator mit "Pfeilen" kritisch, in MT4 werden diese "Löcher" bei der Initialisierung des Indikators automatisch mit dem Wert EMPTY_VALUE gefüllt
im MT5 muss dies vom Programmierer erledigt werden
oder in MT5 sollte der Programmierer die Indikatorpuffer über das if() else-Konstrukt füllen
d.h. dies wird in MT4 funktionieren:
im MT5 müssen Sie schreiben:
oder in MT5 müssen Sie die Indikatorpuffer leeren, sonst zieht der Indikator "Müll" aus dem Array, das durch den Indikatorpuffer .... gebunden ist, wenn Sie die TF wechseln. es ist eine Frage des Geschmacks, wie man schreibt und was man dabei berücksichtigt
Nun, messen Sie die Geschwindigkeit, in 99% der Fälle laufen die eingebauten Funktionen schneller, aber es gibt keinen Unterschied in der Leistung zwischen dem Füllen jedes Balkens in der EMPTY_VALUE-Schleife und der einmaligen Initialisierung mit ArrayInitialize(Buf,EMPTY_VALUE).
All dies ist nur ein Gezeter. So war es, so will ich es haben, es ist schwer, meine Gewohnheiten und andere Gründe zu ändern.
Das if else-Konstrukt lässt sich leicht ersetzen durch
Buf[i] = условие ? high[i] : EMPTY_VALUE;
Das ist alles nur Nörgelei. So war es, so will ich es haben, es ist schwierig, meine Gewohnheiten zu ändern, und andere Gründe.
Das if else-Konstrukt lässt sich leicht ersetzen durch
Wenn Sie pingelig sind, Tipps zur Steigerung der Leistung in C++ oder C # nur empfehlen, nicht zu verwenden "bedingte Operator ? Ich glaube, ich habe einmal einen Artikel über Habra gelesen (ich habe ihn nicht getestet, ich schreibe so bequem wie möglich)
;)
Wenn ich pingelig bin, ist der Rat, wie man die Leistung in C++ oder C# zu verbessern, nicht zu verwenden "bedingte Operator ? Ich glaube, ich habe einmal einen Artikel über Habra gelesen (ich habe ihn nicht getestet, ich schreibe selbst so bequem wie möglich)
;)
Nun, der Compiler hier ist kein Idiot und optimiert besser als die "Gurus" auf dem Hubr
Bei solchen Gelegenheiten wiederhole ich immer: "Die Sonne geht am Morgen auf und am Abend unter..." - Erkennen Sie hier eine Logik? - Ja, das ist logisch, aber sind in meinem Satz auch Informationen enthalten? - Sie ist nicht da.
Ich werde es nicht testen? : , Kompiliermaschine.... Hubr, gut...
Ich werde es nicht testen? :
Getestet MT5:
2019.06.30 13:37:04.230 tst (EURUSD,H1) Testing if() cycles=99999999999999 time=10859 ms
2019.06.30 13:37:15.116 tst (EURUSD,H1) Testing ? : Zyklen=999999999999 Zeit=10891 ms
2019.06.30 13:38:05.348 tst (EURUSD,H1) Testing if() cycles=99999999999999 time=10843 ms
2019.06.30 13:38:16.190 tst (EURUSD,H1) Testing ? : Zyklen=999999999999 Zeit=10844 ms
2019.06.30 13:38:32.111 tst (EURUSD,H1) Testing if() cycles=99999999999999 time=10860 ms
2019.06.30 13:38:42.955 tst (EURUSD,H1) Testing ? : Zyklen=999999999999 Zeit=10843 ms
2019.06.30 13:46:09.087 tst EURUSD,H1: Testing ? : Zyklen=999999999999 Zeit=33234 ms
2019.06.30 13:45:35.854 tst EURUSD,H1: Test if() cycles=99999999999999 time=32953 ms
2019.06.30 13:44:43.421 tst EURUSD,H1: Testing ? : Zyklen=999999999999 Zeit=333298 ms
2019.06.30 13:44:10.094 tst EURUSD,H1: Test if() cycles=99999999999999 time=33016 ms
2019.06.30 13:42:56.925 tst EURUSD,H1: Testing ? : Zyklen=999999999999 Zeit=33344 ms
2019.06.30 13:42:23.584 tst EURUSD,H1: Test if() cycles=99999999999999 time=32953 ms
Mir ist schon seit längerer Zeit aufgefallen, dass die Hervorhebung von benutzerdefinierten Makronamen in einem großen Projekt nicht immer funktioniert. Viele Makros, die in anderen Dateien definiert sind, werden aus irgendeinem Grund nicht hervorgehoben. Ich kann noch kein Muster finden. Alles, was ich sehe, ist, dass alle Makros, die in einer bestimmten Datei definiert sind, ab einer bestimmten Zeile in anderen Dateien nicht mehr hervorgehoben werden. Ist das bei jemandem anders auch der Fall?
Ich habe festgestellt, dass, wenn Sie als Parameter einer Funktion schreiben, diese nicht aufleuchtet. Ich denke, es ist kein vollständiger Spieltyp. Oder wie man es genauer nennt, weiß ich nicht.