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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3784
Beiträge: 36758
Benutzer: 5.988
Aktive Benutzer: 484
Links: 80
Wir begrüßen unseren neuesten Benutzer: Geccco
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einem Tag
- Geccco
vor einem Tag
- forexadven...
vor einem Tag
- mikedyke
vor 2 Tagen
- dmaha
vor 4 Tagen
- Take2

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 66
Gesamt: 67
Team: 0
Team:  
Benutzer:  Domke01
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 15
exergon befindet sich auf einem aufstrebenden Ast
Standard Zugriff mehrerer EAs auf globale Variable

Hallo zusammen,

ich habe ein Problem. Bei mir laufen mehrere EAs auf unterschiedlichen Charts. Nun möchte ich die Lotgröße bei neuen Orders in Abhängigkeit des Profit des Tages berechnen. Hierzu habe ich die Variable "Extern double SaldoGesamt" in allen EAs definiert. Ich weiß nur nicht genau wie ich auf diese zugreifen kann und wie ich sie verändern kann. Aktuell versuche ich es wie folgt:

#
//ENDPRÜFUNG !!! Prüfen ob Ticket 1 geschlossen und Profit auswerten
//Ticket lokalisieren
if((OrderSelect(TicketNummerShort1, SELECT_BY_TICKET,MODE_HISTORY) == true) && (Verriegelung == 1))
{
//Abfragen ob Orderclostime gesetzt
if((OrderCloseTime() != 0) )
{

//Profit speichern
double tempprofit1;
tempprofit1 = OrderProfit();

//Globale Variable (SaldoGesamt) auslesen
bool GVauslesentemp = false;
while(GVauslesentemp != true)
{
//Globale Variable auslesen
GVauslesentemp = GlobalVariableGet("SaldoGesamt",SaldoGesamt);
}

SaldoGesamt = SaldoGesamt + tempprofit1;
Print("Saldo Gesamtmodell aller Währungen heute: ",SaldoGesamt);

//Globale Variable (SaldoGesamt) aktualisieren bzw. zurückschreiben
bool GVauslesentemp2 = false;
while(GVauslesentemp2 != true)
{
//Globale Variable zurückschreiben
GVauslesentemp2 = GlobalVariableSet("SaldoGesamt",SaldoGesamt);
}

........
#

Beim Kompilieren kommt kein Fehler aber wenn er in die Schleife läuft hängt sich der EA auf. Was mache ich falsch? Hat mir jemand einen Tipp?

Vielen Dank im Voraus.

VG Exergon
Mit Zitat antworten
  #2 (permalink)  
Alt vor 4 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.857
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

while(GVauslesentemp != true)
Hierbei ist doch GVauslesentemp kein bool-Variable!!

GVauslesentemp = GlobalVariableGet("SaldoGesamt",SaldoGesamt);
falsche Syntax, da hätte der Compiler eigentlich meckern müssen.
GVauslesentemp = GlobalVariableGet("SaldoGesamt");

GVauslesentemp2 = GlobalVariableSet("SaldoGesamt",SaldoGesamt);
Auch falsche Systax, da hat nur zu stehen: GlobalVariableSet("SaldoGesamt",SaldoGesamt);
GVauslesentemp2 wurde als bool deklariert, soll aber eine double-Zahl zugewiesen werden, das geht natürlich nicht.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 15
exergon befindet sich auf einem aufstrebenden Ast
Standard

Hallo Traderdoc,

vielen Dank für Deine Antwort. Hat geklappt....jetzt funktioniert es! Prima!

Darf ich noch fragen: Wenn ich es im Netz richtig gelesen habe bleiben die externen Variablen einige Tage gespeichert. Ist das so? Bedeutet das, dass die globale Variable des Vortages am nächsten Tag beim Auslesen noch den selben Wert wie am Tag zuvor hat (oder nach 4 Tagen ohne ZUgriff wie vor 4 Tagen) - sofern nicht mehr darauf zugegriffen wurde?

Herzlichen Dank Dir...

VG Exergon :-)
Mit Zitat antworten
  #4 (permalink)  
Alt vor 4 Wochen
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 291
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

MQL5 Reference:
Zitat:
Global variables are kept in the client terminal for 4 weeks since the last access, then they will be deleted automatically. An access to a global variable is not only setting of a new value, but reading of the global variable value, as well.
Otto
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #5 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 15
exergon befindet sich auf einem aufstrebenden Ast
Standard

Danke Otto...ja so hatte ich es auch noch im Kopf...thanks!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
globale variable, mql4, programmierung, programmierung metatrader, programmierung mql4, zugriff globale variable


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 14:39 Uhr.



spam firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 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.
-----------------------------------------------------------------------------------------------------------------------------