Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 891

 
leonerd:

Mais vous ne tenez pas compte des ordres dirigés différemment et du facteur de couverture de la marge ici.

Le "sens de l'ordre" est pris en compte parAccountFreeMarginCheck https://docs.mql4.com/ru/account/accountfreemargincheck.

Pour votre objectif, ma fonction doit passer le lot total et le type d'ordre OP_BUY ou OP_SELL comme paramètres.
S'il s'agit d'un contre-clôture, la marge est libérée à cet endroit,

Pour un verrou, il y avait quelque chose de similaire, mais tous les courtiers n'utilisent pas la même méthode de calcul de la marge pour un verrou, je ne me souviens pas, le thème du verrou semble s'être estompé dans runet, il n'est pas demandé.

pour le coefficient, il semble qu'il s'agisse de l'effet de levier, il y a eu des fils de discussion, une recherche dans le forum "calcul de la marge" devrait permettre de le trouver, je n'ai pas traité ce sujet depuis longtemps, ce n'est pas très demandé

voici un article sur le sujet, il semble avoir un calcul de margehttps://www.mql5.com/ru/articles/2555

AccountFreeMarginCheck - Информация о счете - Справочник MQL4
AccountFreeMarginCheck - Информация о счете - Справочник MQL4
  • docs.mql4.com
Размер свободных средств, которые останутся после открытия указанного ордера по текущей цене на текущем счете. Если свободных средств не хватает, то будет сгенерирована ошибка 134 (ERR_NOT_ENOUGH_MONEY).
 
Igor Makanu:

le "sens de l'ordre" est pris en compte parAccountFreeMarginCheck https://docs.mql4.com/ru/account/accountfreemargincheck.

Pour votre objectif, ma fonction doit passer le lot total et le type d'ordre OP_BUY ou OP_SELL comme paramètres.
Si nous parlons d'un contre-clôture, la marge est libérée,

Je ne me souviens pas, le sujet des serrures semble s'être tassé dans runet, il n'est pas demandé.

pour le coefficient, il semble qu'il s'agisse de l'effet de levier, il y a eu des fils de discussion, une recherche dans le forum "calcul de la marge" devrait permettre de le trouver, je n'ai pas traité ce sujet depuis longtemps, ce n'est pas très demandé

voici un article sur le sujet, il semble qu'il y ait un calcul de margehttps://www.mql5.com/ru/articles/2555

AccountFreeMarginCheck suppose qu'il s'agit du prix actuel. Mon prix n'est pas le prix actuel. C'est différent.

 
SYMBOL_MARGIN_HEDGED pas d'analogue pour MT4 ?
 
leonerd:
SYMBOL_MARGIN_HEDGED pas d'analogue pour MT4 ?
MarketInfo(_Symbol, MODE_MARGINHEDGED);
 
Alexey Viktorov:

Merci. Et ça ? Est-il possible de calculer ce dont j'ai besoin ? Marge pour les ordres à ouvrir à l'avance, en connaissant leur prix et leur volume.

 

Dites-moi pourquoi il n'y a pas de changement dans le programme et qu'il ne montre pas les stocks de pétrole et de matières premières.

 
leonerd:

Merci. Et ça ? Est-il possible de calculer ce dont j'ai besoin ? La marge pour les ordres à ouvrir à l'avance, en connaissant leur prix et leur volume.

Je pense que si vous pouvez prévoir le prix des actifs impliqués dans la valeur de la marge, les ordres qui vont être ouverts, vous ne serez pas coûteux. Vous n'avez pas besoin de faire du commerce sur le marché des changes, vous pouvez simplement dire à toute la société, pour de l'argent, quel sera le prix dans xx minutes.

Il est probablement préférable de calculer le montant dont vous aurez besoin pour ouvrir un ordre au moment présent.

Tu l'as dit... Mais je ne vais pas le changer par principe. Je suis juste ivre. Je ne vais pas le changer.

De toute façon, pour la raison déjà évoquée, je ne peux pas comprendre le sabbat lui-même. Je trouverai peut-être la solution demain. Mais en tout cas, la marge pour les ordres en attente est IMPOSSIBLE.

Une dernière chose : au moment de l'ouverture d'un ordre, la marge est entièrement calculée et ce n'est qu'après son ouverture qu'elle sera corrigée selon le MODE_MARGINHEDGED.

Par conséquent, si vous devez calculer une transaction pour verrouiller une position perdante, vous devez compter comme une ouverture avec une marge de 100% et seulement après cela ouvrir un ordre supplémentaire avec les fonds libérés.

Si je me trompe... désolé...

 
Alexey Viktorov:

Le plus important est de choisir le BON.

Oui merci, ce n'est pas pratique de mettre ces zéros dans l'impression.

 
Les gars qui peuvent aider avec cette question. Je veux déclarer une variable globale de type indéfini ou de type arbitraire. Ensuite, cette variable sera utilisée dans les fonctions avec des modèles. En d'autres termes, j'appelle une fonction et je prends un tableau de n'importe quel type, alors les calculs seront effectués et le résultat sera renvoyé par la fonction, et sera également assigné à cette variable. Je veux stocker le résultat du calcul de ces paramètres dans une variable, pour ne pas avoir à appeler la fonction deux fois. Comment trouver une solution universelle avec le moins de contrôles possible, puis-je convertir le type de variable, ou déclarer une variable par le biais d'une macro, que puis-je faire ?
 
Alexey Viktorov:


Une autre remarque : Au moment de l'ouverture de l'ordre, la marge est calculée en totalité et seulement après l'ouverture, la marge est corrigée conformément au MODE_MARGINHEDGED.

Par conséquent, si vous devez calculer la taille de la transaction pour verrouiller une position perdante, vous devez la considérer comme une ouverture avec une marge de 100 % et seulement ensuite ouvrir un ordre supplémentaire avec les fonds libérés.

Si je me trompe... désolé...

Je ne comprends pas vraiment ce commentaire. Vous pouvez ouvrir une position de blocage (opposée à celle ouverte) si votre marge est inférieure à la marge de l'ordre nouvellement ouvert (pas dans la position elle-même). Alors où est le 100% là ?

Raison: