Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 3966
Beiträge: 37822
Benutzer: 6.258
Aktive Benutzer: 407
Links: 80
Wir begrüßen unseren neuesten Benutzer: Fago
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 16 Stunden
- Fago
vor 23 Stunden
- Fikri2015
vor einem Tag
- xifengit
vor 2 Tagen
- CEO1992
vor 2 Tagen
- AlexSk91

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 32
Gesamt: 32
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 20.08.14
Mitglied
 
Registriert seit: Aug 2014
Ort: Hessen
Beiträge: 101
Dick_Turpin befindet sich auf einem aufstrebenden Ast
Standard 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
  #2 (permalink)  
Alt 20.08.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.010
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 21.08.14
Mitglied
 
Registriert seit: Aug 2014
Ort: Hessen
Beiträge: 101
Dick_Turpin befindet sich auf einem aufstrebenden Ast
Standard

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
  #4 (permalink)  
Alt 21.08.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.010
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Dick_Turpin Beitrag anzeigen
... 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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Thema geschlossen

Lesezeichen

Stichworte
globale variable, globale variablen, gültigkeit, gültigkeit globale variablen, gültigkeit variablen, mql4, programmierung, programmierung metatrader, variblen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 05:04 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------