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)
-   -   Zähler für neue Objekte (http://www.expert-advisor.com/forum/showthread.php?t=6403)

Max2018 28.04.19 17:44

Zähler für neue Objekte
 
Hallo,

wie kann ich in einer void Funktion bei jedem neuen Objekt einen dazu zählen. Also:

1. Ich zeichne 3 Rectangles ein = Zähler steht auf n=3
2. Ich lösche 1 Rectangle = Zähler steht immer noch auf n=3
3. Ich zeichne wieder einen Rectangle ein = Zähler steht nun auf n=4
usw
D.h. der zählt nur wenn ein Objekt hinzu kommt, lässt aber Löschungen unberücksichtigt.

ObjectTotal () geht nicht, da der ja auch immer zurück springt wenn einer gelöscht wird...

:confused:

AVT 28.04.19 18:23

Du holst Dir in einer Variablen den Anfangswert, den Du haben willst (also z.B. aus allen bisherigen Objekten mit ObjectsTotal).
Wenn beim nächsten Aufruf von ObjctsTotal die Anzahl weniger ist als die Variable - na dann bleibt die Variable eben so wie sie ist.
Wenn beim nächsten Aufruf die Anzahl aber höher ist, wird die Variable auf die Anzahl angepaßt.
Passt das? AVT

Max2018 28.04.19 18:35

Hallo, vielen Dank für die schnelle Antwort. Nein ich glaube das passt nicht, wenn ich zu einem Zeitpunkt sowohl ein Rectangle lösche und eins hinzu füge, dann wäre ObjectTotal gleich. Der Zähler soll aber dann dennoch weiter zählen.
:confused:

AVT 28.04.19 19:16

Zitat:

Zitat von Max2018 (Beitrag 42395)
Hallo, vielen Dank für die schnelle Antwort. Nein ich glaube das passt nicht, wenn ich zu einem Zeitpunkt sowohl ein Rectangle lösche und eins hinzu füge, dann wäre ObjectTotal gleich. Der Zähler soll aber dann dennoch weiter zählen.
:confused:

Willst Du die per Code hinzufügen oder manuell reinmalen?
Per Code setzt Du einfach den Counter einen höher in der ObjectCreate Funktion.

traderdoc 28.04.19 21:23

Zitat:

Zitat von AVT (Beitrag 42396)
Willst Du die per Code hinzufügen oder manuell reinmalen?
Per Code setzt Du einfach den Counter einen höher in der ObjectCreate Funktion.

Das funktioniert eingeschränkt. Wenn der EA, warum auch immer ausfällt, dann hat der EA beim nächsten Start den Wert dieses Counters verloren.

Sicherer wäre bei solchen Counters die Benutzung von globalen Variablen. Die sind auch noch bis 29 Tage nach dem ersten Beschreiben auslesbar, selbst wenn auf diese GV in dieser Zeit nie zugegriffen wurde bzw. eben der PC ausfällt oder was auch immer passiert ist.

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:09 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