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)
-   -   Gültigkeit globaler Variablen (http://www.expert-advisor.com/forum/showthread.php?t=3816)

Dick_Turpin 20.08.14 21:40

Gültigkeit globaler Variablen
 
Es geht um globale Variablen. Angenommen mein EA enthält u.a. folgendes:

Globale bool Variable:
Offene_Orders=false;

In der Tick-Function steht sinngemäß folgendes:
ist eine offene Order vorhanden, setze die Variable Offene_Orders auf true.

Da eine offene Order vorhanden ist wird die Variable Offene_Orders auf true gesetzt.
Bevor nun der nächste Tick kommt, wird die Order z.B. manuell gelöscht.

Beim nächsten Tick steht die Variable Offene_Orders immer noch auf true, obwohl keine offene Order mehr da ist, da die globalen Variablen bei einem neuen Tick nicht erneut eingelesen werden sondern nur das ausgeführt wird, was in der Tick-Function steht.

Ist es dann in diesem Fall notwendig, die Definition
Offene_Orders=false;
nicht als globale Variable sondern in der Tick-Function zu definieren?

Gruß
Dick

traderdoc 20.08.14 22:29

Ich würde das wie immer so lösen:
Code:

void CheckOpenOrders() {
  int ticketnumber = 0;
  bool result;
  int cnt;
  OrderBuy = false;
  OrderSell = false;

  .....
}

D.h. diese Funktion wird immer mit als erstes angesprungen. Und die Variablen OrderBuy bzw. OrderSell werden nur dann true, wenn auch tatsächlich eine Buy- und/oder SellOrder offen ist.

Ob nun als globale oder als lokale Variablen, hängt vom Ort des späteren Gebrauchs ab. Sollen diese Variablen funktionsübergreifend benutzt werden, dann sollten es globale sein, außer die Werte werden mit der Funktion rückübergeben.

traderdoc

Dick_Turpin 21.08.14 08:37

Vielen Dank traderdoc und mal ein Lob an Dich, dass Du hier immer so fleißig antwortest, auch wenn die Fragen für Dich bestimmt oft zum Gähnen sind...

Aber ich kämpfe mich weiter durch ... und ... es macht mir richtig Spaß! Allerdings leidet im Moment meine Familie etwas, denn sobald ich von der Arbeit nach Hause komme, gehts nach einem kurzen Käffchen direkt an den Laptop. Und abends muss mich meine Frau fast ins Bett prügeln ;)

traderdoc 21.08.14 13:21

Zitat:

Zitat von Dick_Turpin (Beitrag 27223)
... und ... es macht mir richtig Spaß! ... Und abends muss mich meine Frau fast ins Bett prügeln ;)

Ja!, das kenne ich nur zu gut, also Ersteres!
Zum Prügeln kommt sie nicht.

traderdoc


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