Maximale und minimale sichtbare Quoten - Seite 4

 
Der Benutzer verwendet графики с отступами от правого края. Сколько баров отображается на таком графике ? Eine reine geometrische Konstante, unabhängig von Perioden, Verlauf, Scrollen und allem anderen.
Und wenn Sie darüber nachdenken?
Angenommen, das Diagramm wird so weit wie möglich nach rechts gescrollt, dann ist der Einzug sichtbar und es befinden sich beispielsweise 100 Balken im Diagramm.
Wenn wir jedoch das Diagramm nach links scrollen, um es einzurücken, werden 100 + so viele Balken angezeigt, wie in den Einzug passen.
 
Angenommen, das Diagramm wird so weit wie möglich nach rechts gescrollt, dann ist der Einzug sichtbar und es befinden sich beispielsweise 100 Balken im Diagramm. <br/ translate="no"> Aber wenn wir das Diagramm nach links scrollen, um es einzurücken, gibt es 100 + so viele Balken, wie die Einrückung zulässt.


Es ist uninteressant, die Karte von Hand zurückzuspulen.


Welche Systemfunktionen und Bibliotheken müssen mit
verbunden werden? - Ermitteln der vertikalen und horizontalen Größe des aktuellen Diagramms in Pixeln;

1. GetClientRect aus user32.dll


Ich habe keine Erfahrung mit dem Import von *.dll.
Ich fand eine Beschreibung von GetClientRect

Mit der Funktion GetClientRect werden die Koordinaten des Arbeitsbereichs des Fensters ermittelt. Die Arbeitskoordinaten definieren die obere linke und untere rechte Ecke des Arbeitsbereichs. Da sich die Arbeitskoordinaten auf die linke obere Ecke des Arbeitsbereichs des Fensters beziehen, sind die Koordinaten der linken oberen Ecke (0,0).
Syntax
BOOL GetClientRect
(
HWND hWnd, // Fensterdeskriptor
LPRECT lpRect // Adresse der Arbeitskoordinatenstruktur
);
Parameter
hWnd
Identifiziert das Fenster, dessen Arbeitskoordinaten zurückgegeben werden sollen.
lpRect
Gibt die RECT-Struktur an, die die Arbeitskoordinaten aufnimmt. Die Elemente links und oben sind Null. Die Elemente rechts und unten enthalten die Breite und Höhe des Fensters.
Rückgabewerte
Wenn die Funktion erfolgreich abgeschlossen wurde, ist der Rückgabewert ungleich Null. Schlägt die Funktion fehl, ist der Rückgabewert Null. Um erweiterte Fehlerdaten zu erhalten, rufen Sie GetLastError auf.


In anderen Quellen wird diese Funktion als nichtig beschrieben. Was soll man glauben?

Ist es notwendig, #import "user32.dll" anzugeben, um eine Verbindung herzustellen?

Einigen Quellen zufolge ist die RECT-Struktur in winuser.h beschrieben, anderen in windef.h. Keine dieser Dateien ist auf meinem Rechner vorhanden.

#include <winuser.h> oder #include <windef.h> ?

Was sollte als hWnd-Fensterbezeichner angegeben werden?

Wie erhält man die erforderlichen Parameter aus der lpRect-Struktur? MQL4 unterstützt keine komplexen Datentypen (Strukturen).


Welche Systemfunktionen und -bibliotheken sollten mit

verbunden werden? - Erhalten Sie maximale und minimale scheinbare Kurse des aktuellen Charts;

Vielleicht ist es sinnvoll, die Sprache MQL4 mit entsprechenden Funktionen zu ergänzen?




|------------------------------------------------| <- 1.8595
|................................................|
|................................................|
|.............--- Hoch ........................|
|................................................|
|................................................|
|................................................|
|................................................|
|................................................|
|................................................|
|............................--- Tief..........|
|................................................|
|................................................|
|----
 
Liebe Entwickler!

Bitte beantworten Sie meine Fragen.
 
Programmierfragen werden im speziellen MQL4.COMmunity-Forum diskutiert.

Auf der Website finden sich zahlreiche Artikel und eine Sammlung von Programmen. Zögern Sie nicht, sie zu lesen. Insbesondere die Frage der Mindest- und Höchstquoten wurde hier erörtert: "MQL4: Abfangen".

Ich zitiere aus
===
Wenn Sie die Größe des Fensters in Pixeln kennen, können Sie einfach die Funktionen BarsPerWindow und FirstVisibleBar verwenden. Es ist kein Problem, die Nummer des Balkens zu berechnen.
Komplizierter wird es bei der Preiskoordinierung. Wenn die Skala automatisch ist, können wir sie berechnen, indem wir 5 % der Differenz zwischen den Höchst- und Mindestpreisen am oberen und unteren Rand addieren. Wenn die Skala fest ist, kann sie nicht berechnet werden, da es keine Informationen über die Ober- und Untergrenze gibt.
===
 
<br / translate="no"> Ich zitiere
===
Wenn Sie die Größe des Fensters in Pixeln kennen, können Sie die Funktionen BarsPerWindow und FirstVisibleBar problemlos verwenden. Es ist kein Problem, die Taktzahl herauszufinden.
Komplizierter wird es bei der Preiskoordinierung. Wenn die Skala automatisch ist, können wir sie berechnen, indem wir 5 % der Differenz zwischen den Höchst- und Mindestpreisen am oberen und unteren Rand addieren. Wenn die Skala fest ist, kann sie nicht berechnet werden, da es keine Informationen über die Ober- und Untergrenze gibt.
===


Reales Beispiel: EURUSD, M1
Hoch 1,2613 Max. sichtbarer Wert 1,2620 delta 0,0007
Tief 1,2602 Min 1,2600 delta 0,0002 sichtbarer Wert

Wo sind 5%?

Die GetClientRect-Suche im MQL4.COM-Forum ergibt 2 Referenzen. Keine spezifischen Antworten oder Empfehlungen.
 
<br/ translate="no"> Eine Suche nach GetClientRect im MQL4.COMmunity Forum ergibt 2 Referenzen. Keine spezifischen Antworten oder Empfehlungen.

Sie stellen also eine Frage. Ich habe Sie in ein spezielles Forum für diesen Zweck eingeladen.
Außerdem habe ich mich selbst zitiert: "Mit der Preiskoordinierung ist es komplizierter. Das bedeutet, dass es auf die Frage keine eindeutige Antwort gibt.

Übrigens, 5% ist nicht der Preis, sondern die Anzahl der Pixel zwischen dem Höchst- und dem Mindestpreis.
 
Nur die Höchst- und Tiefstpreise sind für den Benutzer noch verfügbar. Gemäß dem obigen Beispiel können Textobjekte nur auf 50 % der Diagrammfläche angezeigt werden. Ist das normal?
 
<br / translate="no"> Sie stellen also eine Frage. Ich habe Sie in ein spezielles Forum für diesen Zweck eingeladen.
Außerdem habe ich mich selbst zitiert: "Mit der Preiskoordinierung ist es komplizierter. Das bedeutet, dass es auf die Frage keine eindeutige Antwort gibt.

Übrigens, 5% ist nicht der Preis, sondern die Anzahl der Pixel zwischen dem Höchst- und dem Mindestpreis.


Ich habe Ihren Rat befolgt und Ihre Frage im MQL4.COM-Forum gestellt. Ich habe keine Antwort erhalten, keine Antwort und keine Hoffnung. Bitte um Hilfe.
 
Liebe Entwickler!

Bitte helfen Sie mir mit der GetClientRect-Funktion von user32.dll, um die vertikale und horizontale Größe des aktuellen Diagramms in Pixel zu erhalten.

Die Beschreibung der Funktion ist oben angegeben.

Um sie zu verbinden, geben Sie #import "user32.dll" an.

Als Bezeichner des Fensters hWnd geben wir den von der Funktion WindowHandle (...) zurückgegebenen Wert an.

Wie erhält man die erforderlichen Parameter aus der lpRect-Struktur, wenn MQL4 keine komplexen Datentypen (Strukturen) unterstützt?
 
Liebe Entwickler!

Seit mehr als einem Monat bitte ich um Hilfe bei der Lösung meines Problems, ohne Erfolg.

Auf manche Beiträge wird nach ein oder zwei Stunden geantwortet, andere werden lange Zeit ignoriert. Und warum?