Comment calculez-vous la marge ? - page 4

 
Janis Ozols:

Si l'effet de levier d'un instrument a changé en raison d'une augmentation du lot total ou d'une autre raison, il serait logique de s'attendre à ce que ces requêtes renvoient un montant plus élevé de marge, non ?

Non, ces fonctions utilisent l'effet de levier du compte.

 
Andrey Khatimlianskii:

Oui, c'est vrai.

Seulement, très probablement, l'effet de levier change non pas pour une transaction individuelle, mais pour l'instrument dans son ensemble, mais cela ne change pas l'essence.

Je vais ajouter une alerte à mon informateur pour ce cas...

C'est sage, c'est sage.

 
Andrey Khatimlianskii:

Non, ces fonctions utilisent l'effet de levier du compte.

Veuillez me dire quelle fonction peut être utilisée pour calculer la marge actuelle pour un instrument particulier si l'effet de levier de cet instrument n'est pas le même que l'effet de levier du compte en ce moment ?

 
Janis Ozols:

Veuillez me dire quelle fonction peut être utilisée pour obtenir la marge actuelle pour un instrument particulier, si l'effet de levier de cet instrument est différent de l'effet de levier du compte ?

Ce serait il y a longtemps
 
Janis Ozols:

Veuillez me dire quelle fonction peut être utilisée pour obtenir la marge réelle pour un certain instrument, si l'effet de levier de cet instrument est différent de l'effet de levier du compte ?

Peut-être SymbolInfoDouble(Symbole,SYMBOL_MARGIN_INITIAL/SYMBOL_MARGIN_MAINTENANCE) ?

SymbolInfoDouble - Market Info - MQL4 Reference
SymbolInfoDouble - Market Info - MQL4 Reference
  • docs.mql4.com
2. Returns true or false depending on whether a function is successfully performed. In case of success, the value of the property is placed into a recipient variable, passed by reference by the last parameter. It is recommended to use SymbolInfoTick() if the function is used for getting information about the last tick. It may well be that not a...
 
Stanislav Korotky:

Peut-être SymbolInfoDouble(Symbole,SYMBOL_MARGIN_INITIAL/SYMBOL_MARGIN_MAINTENANCE) ?

Malheureusement, la fonction SymbolInfoDouble avec l'une de ces constantes renvoie zéro lorsqu'il s'agit d'instruments du marché FOREX.

 

Nous pouvons maintenant répondre à la question du fil de discussion.

Formule de calcul de la marge pour un devis direct

M=CC/CP

  • Où M - marge,
  • CC - montant de la transaction,
  • MP - levier.

Par exemple, pour réaliser une transaction avec le volume d'un lot standard (100 000 unités) sur la paire de devises USD/CAD, avec un effet de levier de 1:200, vous devez réaliser une marge

  • M=CC/CP
  • М=100 000/200
  • М=500

C'est-à-dire que le montant de la marge sera de 500 $. Et avec un effet de levier de 1:500, la marge ne sera que de 100 000/500=200 $. Mais avec un effet de levier de 1:500, vous pourrez acheter 10 lots avec 1 million de dollars, et effectuer des transactions avec une marge de 100 000/500=2 000 $.

Calcul de la marge pour la cotation inverse

M=MSC/KP x KP

  • Où M - marge ;
  • CC - montant de la transaction ;
  • CC - levier ;
  • VC - taux de change.

Prenons l'exemple du GBR/USD.

  • M = MOP / KP x TOR
  • M = 100 000/200 x 1, 5074
  • М= 753,7 $

Vous n'obtenez pas de sommes rondes, mais la valeur d'un pip sera toujours en chiffres ronds. Et pour les citations directes, il y a un certain inconvénient à calculer un pip.

Calcul de la marge pour les taux croisés

M = CC/KP x EF

  • M - marge ;
  • CC - somme de la transaction ;
  • CC - levier ;
  • EF - taux de change de la monnaie (de base) par rapport au dollar.

exemple :


//+-------------- РАСЧЕТ МАРЖИ ---------------------+
double calcMGN(string SYMB, double VOL)
{
   double Res=0,Price=0;
   if(LEVERAGE!=0)
   {
      if(StringSubstr(SYMB,0,3)!="USD")
      {
         SYMB=StringSubstr(SYMB,0,3)+"USD";
         Price=iClose(SYMB,Period(),0);
         Res=VOL*Price/LEVERAGE;
      }
      else Res=VOL/LEVERAGE;
   }
   return(Res);
}


 
Janis Ozols:

Veuillez me dire quelle fonction peut être utilisée pour obtenir la marge actuelle pour un instrument particulier, si l'effet de levier de cet instrument est différent de l'effet de levier du compte ?

Vous pouvez trouver les formules. Mais pourquoi ?

Prenez la marge réelle sur toutes les positions de l'instrument et calculez l'effet de levier réel.

 
Andrey Khatimlianskii:

Les formules peuvent être trouvées. Mais pourquoi ?

Prenez la marge réelle de toutes les positions sur l'instrument et calculez l'effet de levier réel.

Ça ne marchera pas.

L'effet de levier est flottant.

Je l'ai vécu comme il le décrit,

c'est vraiment malheureux à un risque assez élevé.

 
Renat Akhtyamov:

Donc, maintenant nous pouvons répondre à la question de la branche

Je suis désolé, je n'ai pas formulé ma question correctement dans le titre du fil. En fait, je ne suis pas intéressé par la façon de calculer la marge, mais par la façon d'obtenir sa valeur réelle (non calculée) à partir du terminal. Et non pas pour l'ensemble du compte, mais pour une seule position séparément. C'est ce dont nous parlons dans le premier message. J'ai déjà compris que cela ne peut pas être fait au moyen de MQL4, une telle fonction n'existe tout simplement pas. Cependant, @Andrey Khatimlianskii a suggéré il y a quelque temps que l'effet de levier peut varier non pas pour une seule position, mais pour un instrument dans son ensemble. Il est maintenant important pour moi de trouver comment obtenir la valeur de cet effet de levier au cas où il diffère de l'effet de levier du compte.


Renat Akhtyamov:

La formule de calcul de la marge pour un devis direct

M=CC/CP

  • Où M - marge,
  • CC - la somme de la transaction,
  • KP - levier.

Le problème de cette formule et de toutes les formules suivantes est qu'elles contiennent KP (effet de levier). Malheureusement, je n'ai pas encore trouvé comment obtenir cette valeur pour un seul instrument. Les fonctions AccountMargin() et AccountInfoInteger(ACCOUNT_LEVERAGE) renvoient le levier du compte, et non celui du symbole, et la fonction MarketInfo(_Symbol,MODE_MARGINREQUIRED) renvoie la valeur de la marge correspondant au levier du compte, même si les positions pour ce symbole sont en fait ouvertes avec un levier absolument différent. La fonction SymbolInfoDouble avec les constantes SYMBOL_MARGIN_INITIAL ou SYMBOL_MARGIN_MAINTENANCE renvoie toujours zéro lorsqu'on travaille avec des symboles FOREX.

Ainsi, je ne comprends pas comment cette formule et toutes les autres peuvent être utilisées, si le levier d'un courtier, qui diffère du KP du compte en général, est fixé pour un instrument spécifique.


Andrey Khatimlianskii:

Les formules peuvent être trouvées. Mais pourquoi ?

Je ne cherche pas à trouver des formules (elles ont déjà été suffisamment proposées), mais la fonction exacte de MQL4. Afin d'obtenir la valeur réelle, et non la valeur calculée. Grâce à Andrey, j'ai déjà compris qu'il est impossible de faire cela pour un poste séparément. Je me demande maintenant comment obtenir l'effet de levier pour l'instrument dans son ensemble, s'il est différent de celui du compte.


Andrey Khatimlianskii:

Prenez la marge réelle pour toutes les positions dans l'instrument et calculez ce que l'effet de levier réel s'avère être.

C'est exactement ce que j'ai fait maintenant. Le conseiller expert compare la valeur réelle de la marge avec la valeur calculée et, en cas d'excédent important, il arrête le trading et envoie une notification au trader. Jusqu'à présent, je n'ai reçu aucune notification de ce type (ouch*3).

Mais que faire s'il y a des positions sur d'autres instruments ? Après tout, il est apparu clairement ci-dessus qu'il est impossible d'obtenir la valeur réelle de la marge pour une seule position à partir du terminal. Mais cela peut sûrement être fait pour l'instrument dans son ensemble ?

Raison: