Account Properties
To obtain information about the current account there are several functions: AccountInfoInteger(), AccountInfoDouble() and AccountInfoString(). The function parameter values can accept values from the corresponding ENUM_ACCOUNT_INFO enumerations.
For the function AccountInfoInteger()
ENUM_ACCOUNT_INFO_INTEGER
Identifier |
Description |
Type |
ACCOUNT_LOGIN |
Account number |
long |
ACCOUNT_TRADE_MODE |
Account trade mode |
|
ACCOUNT_LEVERAGE |
Account leverage |
long |
ACCOUNT_LIMIT_ORDERS |
Maximum allowed number of active pending orders |
int |
ACCOUNT_MARGIN_SO_MODE |
Mode for setting the minimal allowed margin |
|
ACCOUNT_TRADE_ALLOWED |
Allowed trade for the current account |
bool |
ACCOUNT_TRADE_EXPERT |
Allowed trade for an Expert Advisor |
bool |
ACCOUNT_MARGIN_MODE |
Margin calculation mode |
For the function AccountInfoDouble()
ENUM_ACCOUNT_INFO_DOUBLE
Identifier |
Description |
Type |
ACCOUNT_BALANCE |
Account balance in the deposit currency |
double |
ACCOUNT_CREDIT |
Account credit in the deposit currency |
double |
ACCOUNT_PROFIT |
Current profit of an account in the deposit currency |
double |
ACCOUNT_EQUITY |
Account equity in the deposit currency |
double |
ACCOUNT_MARGIN |
Account margin used in the deposit currency |
double |
ACCOUNT_MARGIN_FREE |
Free margin of an account in the deposit currency |
double |
ACCOUNT_MARGIN_LEVEL |
Account margin level in percents |
double |
ACCOUNT_MARGIN_SO_CALL |
Margin call level. Depending on the set ACCOUNT_MARGIN_SO_MODE is expressed in percents or in the deposit currency |
double |
ACCOUNT_MARGIN_SO_SO |
Margin stop out level. Depending on the set ACCOUNT_MARGIN_SO_MODE is expressed in percents or in the deposit currency |
double |
ACCOUNT_MARGIN_INITIAL |
Initial margin. The amount reserved on an account to cover the margin of all pending orders |
double |
ACCOUNT_MARGIN_MAINTENANCE |
Maintenance margin. The minimum equity reserved on an account to cover the minimum amount of all open positions |
double |
ACCOUNT_ASSETS |
The current assets of an account |
double |
ACCOUNT_LIABILITIES |
The current liabilities on an account |
double |
ACCOUNT_COMMISSION_BLOCKED |
The current blocked commission amount on an account |
double |
For function AccountInfoString()
ENUM_ACCOUNT_INFO_STRING
Identifier |
Description |
Type |
ACCOUNT_NAME |
Client name |
string |
ACCOUNT_SERVER |
Trade server name |
string |
ACCOUNT_CURRENCY |
Account currency |
string |
ACCOUNT_COMPANY |
Name of a company that serves the account |
string |
There are several types of accounts that can be opened on a trade server. The type of account on which an MQL5 program is running can be found out using the ENUM_ACCOUNT_TRADE_MODE enumeration.
ENUM_ACCOUNT_TRADE_MODE
Identifier |
Description |
ACCOUNT_TRADE_MODE_DEMO |
Demo account |
ACCOUNT_TRADE_MODE_CONTEST |
Contest account |
ACCOUNT_TRADE_MODE_REAL |
Real account |
In case equity is not enough for maintaining open positions, the Stop Out situation, i.e. forced closing occurs. The minimum margin level at which Stop Out occurs can be set in percentage or in monetary terms. To find out the mode set for the account use the ENUM_ACCOUNT_STOPOUT_MODE enumeration.
ENUM_ACCOUNT_STOPOUT_MODE
Identifier |
Description |
ACCOUNT_STOPOUT_MODE_PERCENT |
Account stop out mode in percents |
ACCOUNT_STOPOUT_MODE_MONEY |
Account stop out mode in money |
ENUM_ACCOUNT_MARGIN_MODE
Identifier |
Description |
ACCOUNT_MARGIN_MODE_RETAIL_NETTING |
Used for the OTC markets to interpret positions in the "netting" mode (only one position can exist for one symbol). The margin is calculated based on the symbol type (SYMBOL_TRADE_CALC_MODE). |
ACCOUNT_MARGIN_MODE_EXCHANGE |
Used for the exchange markets. Margin is calculated based on the discounts specified in symbol settings. Discounts are set by the broker, but not less than the values set by the exchange. |
ACCOUNT_MARGIN_MODE_RETAIL_HEDGING |
Used for the exchange markets where individual positions are possible (hedging, multiple positions can exist for one symbol). The margin is calculated based on the symbol type (SYMBOL_TRADE_CALC_MODE) taking into account the hedged margin (SYMBOL_MARGIN_HEDGED). |
i am aware of those but they are predefined variable with predefined value. and you can only read them, can't write to it
what i need is the ability to store a value that is tied to the account
Why dont you simply put such vars in a struct and save that to a file?
For the OP question this would be sufficient. But there could be situations when a client trades from different PCs and wants to have a centralized storage of some data (did you hear about synchronization between devices, which is very common today?). In case of MetaTrader the answer is no. The only shared storage is trading history.
For the OP question this would be sufficient. But there could be situations when a client trades from different PCs and wants to have a centralized storage of some data (did you hear about synchronization between devices, which is very common today?). In case of MetaTrader the answer is no. The only shared storage is trading history.
Not sure it's a responsibility of Metaquotes to provide such storage. There is a lot of techniques already available and that can be used from MT4/MT5.
Not sure it's a responsibility of Metaquotes to provide such storage. There is a lot of techniques already available and that can be used from MT4/MT5.
- 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 all,
let's say the value 100 in a variable and that variable is tied to the account number. is that possible?
the reason why i want to do that is because if my mt4 crashed and i need to restart my ea, all the variable value are gone
so if i can somehow store this value that is tied to my account number, then this issue is resolved
any idea?