Global variables are defined at the same level as functions, i.e. they are not local in any block. Example: int GlobalFlag=10; // global variable int start() { ... } Scope of global variables is the entire program. Global variables are accessible from all functions defined in the program. They are initialized with zero if no other initial value is explicitly defined. I assume program is the strategy or indicator and not terminal. Global is simply word for global among all functions inside same study |
In that case, I don't understand this sentence : "Global variables of the client terminal are accessible simultaneously from all MQL4 programs launched in the client terminal."
Maybe you should use GlobalVariableGet() and GlobalVariableSet() functions. Check documentation.
Seems global variables dont support strings. In case you want try permvar here is sample script;
#property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #import "permvar.dll" string PVVersion(); int PVInit(string); int PVError(); int PVString(int,string,string); int PVValue(int,string,int); int PVDouble(int,string,double); int PVWipe(string); string PVGetString(int,string); int PVGetValue(int,string); double PVGetDouble(int,string); int PVRelease(); int UnixTime(); #import int start() { Print("Permvar Version : ",PVVersion()); // lets init int hnd = PVInit("mt4"); if (hnd>0) { // Store PVValue(hnd,"myA",5); PVValue(hnd,"myB",21); PVValue(hnd,"StoreTime",UnixTime()); // Read Print ("Reading variables from ",PVGetValue(hnd,"StoreTime")); Print ("Value of myA = ",PVGetValue(hnd,"myA")); Print ("Value of myB = ",PVGetValue(hnd,"myB")); Print ("myA + myB = ",PVGetValue(hnd,"myA") * PVGetValue(hnd,"myB")); } return(0); }
Sorry - I didn't express myself clearly.
I have a GV set by an expert via the function . This GV = 50 (the right value appears in the Global Variables when I go to the tools - global variables menu).
When I call this GV with an another expert via the function GlobalVariableGet, the expert is importing the following value : 1255033797.00000000.
Why is that ?
Thanks
Can you show please the code snippets from both EAs.
Looks like perhaps you're getting a datetime in there.
You sure you're issuing a GlobalVariableGet() - the reason I ask is that GlobalVariableSet returns a datetime.
CB
Can you show please the code snippets from both EAs.
Looks like perhaps you're getting a datetime in there.
You sure you're issuing a GlobalVariableGet() - the reason I ask is that GlobalVariableSet returns a datetime.
CB
Thanks for the help. You were right.
I was copy-pasting my code when I saw my error : the GlobalVariableGet function was in fact a Set one. That's why I got this error.
Seems global variables dont support strings. In case you want try permvar here is sample script;
Hi.
How do I properly call the permvar.dll for MetaTrader 5 _64 (mql5) ?Thanks.
![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi,
I have a small problem. I'm trying to work with global variables.
I have a GV set by an expert. This GV = 50 (the right value appears in the Global Variables when I go to the tools - global variables menu).
When I call this GV with an another expert, the expert is importing the following value : 1255033797.00000000.
Why is that ?
Thanks