Propriétés du Compte

Plusieurs fonctions existent pour obtenir des informations sur le compte actuel : AccountInfoInteger(), AccountInfoDouble() et AccountInfoString(). Les paramètres des fonctions sont l'une des valeurs de l'énumération ENUM_ACCOUNT_INFO.

Pour la fonction AccountInfoInteger()

ENUM_ACCOUNT_INFO_INTEGER

Identificateur

Description

Type

ACCOUNT_LOGIN

Numéro du compte

long

ACCOUNT_TRADE_MODE

Mode de trading du compte

ENUM_ACCOUNT_TRADE_MODE

ACCOUNT_LEVERAGE

Levier du compte

long

ACCOUNT_LIMIT_ORDERS

Nombre maximum autorisé d'ordre en attente actifs

int

ACCOUNT_MARGIN_SO_MODE

Mode pour définir la marge minimum autorisée

ENUM_ACCOUNT_STOPOUT_MODE

ACCOUNT_TRADE_ALLOWED

Trading autorisé pour le compte actuel

bool

ACCOUNT_TRADE_EXPERT

Trading autorisé pour un Expert Advisor

bool

ACCOUNT_MARGIN_MODE

Mode de calcul de la marge

ENUM_ACCOUNT_MARGIN_MODE

ACCOUNT_CURRENCY_DIGITS

Le nombre de décimales dans la devise du compte, qui sont nécessaires pour un affichage précis des résultats de trading

int

ACCOUNT_FIFO_CLOSE

Indication permettant de savoir que les positions ne peuvent être fermées que par une règle FIFO. Si la propriété est mise à true, alors chaque position sera fermé dans le même ordre que leur ouverture, en commençant avec la plus ancienne. Dans le cas d'une tentative de fermer les positions dans un ordre différent, le trader reçevra une erreur correspondante.

 

Pour les comptes avec un mode de comptabilisation autre que le hedging (ACCOUNT_MARGIN_MODE!=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), la valeur de la propriété est toujours false.

bool

Pour la fonction AccountInfoDouble()

ENUM_ACCOUNT_INFO_DOUBLE

Identificateur

Description

Type

ACCOUNT_BALANCE

Solde du compte dans la devise du dépôt

double

ACCOUNT_CREDIT

Crédit du compte dans la devise du dépot

double

ACCOUNT_PROFIT

Profit actuel d'un compte dans la devise du dépôt

double

ACCOUNT_EQUITY

Fonds du comptes dans la devise du dépot

double

ACCOUNT_MARGIN

Marge utilisée du compte dans la devise du dépôt

double

ACCOUNT_MARGIN_FREE

Marge libre d'un compte dans la devise du dépôt

double

ACCOUNT_MARGIN_LEVEL

Niveau de marge du compte en pourcentage

double

ACCOUNT_MARGIN_SO_CALL

Niveau de l'appel de marge. Suivant le mode, ACCOUNT_MARGIN_SO_MODE est exprimé en pourcentage ou dans la devise du dépôt

double

ACCOUNT_MARGIN_SO_SO

Niveau de marge stop out. Suivant le mode, ACCOUNT_MARGIN_SO_MODE est exprimé en pourcentage ou dans la devise du dépôt

double

ACCOUNT_MARGIN_INITIAL

Marge initiale. Le montant réservé sur le compte pour couvrir la marge de tous les ordres en attente

double

ACCOUNT_MARGIN_MAINTENANCE

Marge de maintien. Les fonds minimum réservés sur le compte pour couvrir le montant minimum de toutes les positions ouvertes

double

ACCOUNT_ASSETS

Les actifs courants d'un compte

double

ACCOUNT_LIABILITIES

Le passif courant d'un compte

double

ACCOUNT_COMMISSION_BLOCKED

Le montant des commissions actuellement bloqué sur un compte

double

Pour la fonction AccountInfoString()

ENUM_ACCOUNT_INFO_STRING

Identificateur

Description

Type

ACCOUNT_NAME

Nom du client

string

ACCOUNT_SERVER

Nom du serveur de trades

string

ACCOUNT_CURRENCY

Devise du compte

string

ACCOUNT_COMPANY

Nom de la société gérant le compte

string

Plusieurs types de comptes peuvent être ouverts sur un serveur de trades. Le type de compte sur lequel un programme MQL5 est en cours d'exécution peut être trouvé avec l'énumération ENUM_ACCOUNT_TRADE_MODE.

ENUM_ACCOUNT_TRADE_MODE

Identificateur

Description

ACCOUNT_TRADE_MODE_DEMO

Compte de démo

ACCOUNT_TRADE_MODE_CONTEST

Compte de concours

ACCOUNT_TRADE_MODE_REAL

Compte réel

Dans le cas où les fonds ne sont pas suffisants pour maintenir les positions ouvertes, la situation de Stop Out, c'est à dire la clôture forcée, survient. Le niveau minimum de marge auquel le Stop Out se produit peut être défini en pourcentage ou en termes monétaires. Pour connaître le mode défini pour le compte, utilisez l'énumération ENUM_ACCOUNT_STOPOUT_MODE.

ENUM_ACCOUNT_STOPOUT_MODE

Identificateur

Description

ACCOUNT_STOPOUT_MODE_PERCENT

Mode de stop out du compte en pourcentage

ACCOUNT_STOPOUT_MODE_MONEY

Mode de stop out deu compte en valeur

ENUM_ACCOUNT_MARGIN_MODE

Identificateur

Description

ACCOUNT_MARGIN_MODE_RETAIL_NETTING

Utilisé pour les marchés OTC pour interpréter les positions en mode "netting" (une seule position peut exister pour un symbole). La marge est calculée sur la base du type du symbole (SYMBOL_TRADE_CALC_MODE).

ACCOUNT_MARGIN_MODE_EXCHANGE

Utilisé pour les marchés boursiers. La marge est calculée sur la base des remises spécifiées dans les paramètres du symbole. Les remises sont définies par le courtier, mais ne peuvent être inférieures aux valeurs définies par la Bourse.

ACCOUNT_MARGIN_MODE_RETAIL_HEDGING

Utilisé pour les marchés boursiers où les positions individuelles sont possibles (hedging, plusieurs positions peuvent exister pour un même symbole). La marge est calculée sur la base du type du symbole (SYMBOL_TRADE_CALC_MODE) prenant en compte la marge hedgée (SYMBOL_MARGIN_HEDGED).

Un exemple de script affichant quelques informations du compte.

//+----------------------------------------------------------------------------------------------------+
//| Fonction de démarrage du script                                                                    |
//+----------------------------------------------------------------------------------------------------+
void OnStart()
  {
//--- Nom de la société
   string company=AccountInfoString(ACCOUNT_COMPANY);
//--- Nom du client
   string name=AccountInfoString(ACCOUNT_NAME);
//--- Numéro du compte
   long login=AccountInfoInteger(ACCOUNT_LOGIN);
//--- Nom du serveur
   string server=AccountInfoString(ACCOUNT_SERVER);
//--- Devise du compte
   string currency=AccountInfoString(ACCOUNT_CURRENCY);
//--- Compte de démo, de championnat ou réel
   ENUM_ACCOUNT_TRADE_MODE account_type=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);
//--- Transforme la valeur de l'énumération sous une forme lisible
   string trade_mode;
   switch(account_type)
     {
      case  ACCOUNT_TRADE_MODE_DEMO:
         trade_mode="demo";
         break;
      case  ACCOUNT_TRADE_MODE_CONTEST:
         trade_mode="championnat";
         break;
      default:
         trade_mode="réel";
         break;
     }
//--- Le Stop Out est définit en pourcentage ou en monnaie
   ENUM_ACCOUNT_STOPOUT_MODE stop_out_mode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);
//--- Récupère la valeur des niveaux lorsque le Margin Call et le Stop Out se produisent
   double margin_call=AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
   double stop_out=AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);
//--- Affiche des informations sur le compte
   PrintFormat("Le compte du client '%s' #%d %s ouvert en '%s' sur le serveur '%s'",
               name,login,trade_mode,company,server);
   PrintFormat("Devise du compte - %s, les niveaux de MarginCall et de StopOut levels sont définis en %s",
               currency,(stop_out_mode==ACCOUNT_STOPOUT_MODE_PERCENT)?"pourcentage":" monnaie");
   PrintFormat("MarginCall=%G, StopOut=%G",margin_call,stop_out);
  }