und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5

Die Ersetzung der CRect und CCanvas (Die standarte Bibliothek - einige Fehler wurden korrigiert) - Bibliothek für den MetaTrader 5
- Veröffentlicht:
- Doerk Hilger
- Ansichten:
- 851
- Rating:
- Veröffentlicht:
- 2016.09.20 10:00
- Aktualisiert:
- 2016.11.22 07:34
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Der echte Autor:
MetaQuotes Software, die Korrektur und Verbesserung vom Doerk.
Während der Pixel-Arbeit mit der standaten Bibliothek wird auffällig, dass es in einigen Stellen nicht genügend Pixel gibt. Diese komische Sache wird vor allem von einigen Fehlern in der Klasse CRect verursacht. Das Hauptproblem liegt darin, dass die originale Klasse einen Fehler bei der Berechnung der Höhe und Breite der Rechtecke gibt, die fast auf alle derivativen Klasse CWnd einen Einfluss hat, denn CWnd wird auf Basis CRect begründet.
Im originalen CRect wird die Breite in der folgenden Weise berechnet:
width = x2 - x1
Das ist einfach falsch. Bei der Erstellung eines rechteckigen Objektes, von 0,0 bis 10,10, wird ein Objekt der Breite in 11 Pixel sein, und nicht in 10 Pixel. Auf dieser Weise ist die richtige Antwort
width = x2 - x1 +1
In einigen anderen Klassen der standarten Bibliothek wird die Breite richtig berechnet, aber nicht immer (das heißt in CCanvas bei einer Erstellung und des Aufrufs zur Ressource im Speicher, aber nicht bei der Ladung der Rechtecke). Jedenfalls ist dieses Verhalten nicht folgerichtig und muss korrigiert werden.
Nun ist es möglich geworden, den Unterschied zwischen zwei Rechtecken mit Hilfe der einfachen Operatoren durchzuführen, wie == != >= <= > <
statt der Kodierung
if (rect1.left==rect2.left && rect1.top==rect2.rect.top && rect1.right==rect2.rect.right && rect1.bottom==rect2.bottom)
muss man nur das Folgende eingeben
if (rect1==rect2)
Darüber hinaus, auch für die Erweiterung oder Vermehrung der Rechtecke werden die unären Operatoren wie ++, --, + unterstützt.
Empfehlungen:
- Ersetzen Sie den Rect.mqh mit dieser Datei im Ordner Controls. Stellen Sie ihn nicht in einem anderen Ordner, er wird einfach nicht funktionieren.
- Ersetzen Sie Canvas.mqh im Ordner Canvas mit der hinzugefügten Datei. Stellen Sie ihn nicht in einem anderen Ordner, er wird nicht funktionieren.
- Machen Sie eine Reserve-Kopie dieser Datei und Sie stellen ihn in neuen Versionen MetaTrader zum Anfangs-Ordner wiederher.
- Wenn MetaQuotes Originale mit diesen Dateien ersetzt, denke ich, werden Sie sowieso darüber informiert.
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/13936

Es zeigt die Anzahl der Dezimalstellen (die Anzahl der Stellen in dem Bruchteil), Zeit und markierenden Ankerpunkte der graphischen Objekte.

Der Indikator TEMA_CUSTOM in einer Kerzen-Form.

Der Experte Exp_TEMA_CUSTOM wurde aufgrund der veränderten Bewegungsrichtung des Indikators TEMA_CUSTOM gebaut.

Der Experte Exp_XDerivative wurde aufgrund der veränderten Bewegungsrichtung des Oszillators XDerivative gebaut.