Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   beobachten von Chartbreite, -shift, -skalierung (http://www.expert-advisor.com/forum/showthread.php?t=6478)

AVT 13.08.19 16:13

beobachten von Chartbreite, -shift, -skalierung
 
Ich habe einen Indikator in einem Unterfenster.
Dessen Größeneinstellungen werden berechnet durch die Einstellungen im Hauptfenster (wie breit es ist, wie groß die Bars skaliert sind, und wie groß der Shiftwert vom rechten Rand ist).
Wird jetzt das Hauptfenster verändert, zum Beispiel enger gemacht, dann muß auch die Darstellung im Unterfenster enger werden, das heißt die Lage/Position der Elemente muß neu berechnet werden.
Alle Variablen, die Grundlage der Berechnung sind, wurden global gesetzt, so daß sie überall verfügbar sind.

Frage: wo packe ich die Beobachtung von Veränderungen am besten hin (also Abfragen wenn DerzeitigeChartBreite =! ChartBreiteVariable dann Neuberechnen)? Mir fällt dazu als einfachste Lösung nur der Timer ein, aber vielleicht gibt es noch andere Möglichkeiten.

Danke :) AVT

MA-EA 14.08.19 01:04

Würde sagen direkt nach Start() Variablen und Funktionen einbaun. :confused:

Edit:Aber wird das Alles nich normalerweise vom MT4 eingerichtet?

Edit:Bezieht sich der Indikator nicht auf die Kerzen, statt auf irgendwelche Pixel und so weiter?

AVT 14.08.19 12:39

Zitat:

Zitat von MA-EA (Beitrag 42739)
Würde sagen direkt nach Start() Variablen und Funktionen einbaun.

Die Variablen sind global am Anfang.
Es gibt bereits eine Funktion, die alles enthält was zum Ändern nötig ist.

Zitat:

Zitat von MA-EA (Beitrag 42739)
Aber wird das Alles nich normalerweise vom MT4 eingerichtet?
Bezieht sich der Indikator nicht auf die Kerzen, statt auf irgendwelche Pixel und so weiter?

Wenn ich sage, mache im Unterfenster einen Strich oder ein Rechteck genau dort, wo sich im Hauptfenster die Mitte der sichtbaren Kerzen befindet (die Position muß man vorher ausrechnen) - dann macht der MT4 das nur dann alleine, wenn der Indikator ent- und wieder geladen wird (weil beim Neustart auch die Berechnung gemacht wird).
Wenn ich aber das Hauptfenster z.B. breiter mache, dann werden mehr Kerzen angezeigt, die Mitte müßte sich verschieben - tut sie aber nicht, weil in diesem Fall der Indikator nicht neu gestartet wird. Also muß ich selber dafür sorgen. Das nur zur Vervollständigung.

Ich habe das ganze jetzt übrigens einfach in die Timer Funktion gepackt und Schluß mit Suche nach Alternativen. Bis auf eine Sache funktioniert es. AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:55 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum