Download MetaTrader 5

is there a variable that is tied to the account number?

To add comments, please log in or register
Create interesting Forum topics concerning the automated trading!
bobo1974
216
bobo1974 2016.05.06 19:20 

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? 

Marco vd Heijden
Moderator
4685
Marco vd Heijden 2016.05.06 19:41  

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

ENUM_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

ENUM_ACCOUNT_STOPOUT_MODE

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

ENUM_ACCOUNT_MARGIN_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).

bobo1974
216
bobo1974 2016.05.06 19:49  

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

Doerk Hilger
1154
Doerk Hilger 2016.05.07 15:35  
Why dont you simply put such vars in a struct and save that to a file?
Stanislav Korotky
17884
Stanislav Korotky 2016.05.07 18:49  
Doerk Hilger:
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.

Alain Verleyen
Moderator
30722
Alain Verleyen 2016.05.07 19:18  
Stanislav Korotky:

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.

Stanislav Korotky
17884
Stanislav Korotky 2016.05.08 20:52  
Alain Verleyen:

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.

Yes. That is called a workaround, no native support in MT4/MT5. Of course, they can design their products as they want. And this feature is not primary.
To add comments, please log in or register