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

 
Alexey Viktorov:

ctrl+tab et ctrl+shift+tab ne sauveront pas le père de la démocratie russe ?

ça change aléatoirement, mais je veux que ce soit dans l'ordre.

c'est plus pratique, plus rapide et permet de masquer le panneau des graphiques

 
Artyom Trishkin:

Merci.

 
Трейдер Внатуре:

ça change aléatoirement, mais je veux que ce soit dans l'ordre.

c'est plus pratique, plus rapide et permet de masquer le panneau des graphiques

Il doit changer dans l'ordre d'ouverture des graphiques. Mais si vous les mélangez ensuite de manière aléatoire en les faisant glisser avec la souris, alors et ...

 

Messieurs, aidez-nous avec l'algorithme. C'est l'été, ma tête ne fonctionne pas du tout. La tâche consiste à calculer le volume total à ouvrir avec la condition d'augmenter le volume de transactions.

On vous donne :

b - lot de base (volume de la première commande).

m - multiplicateur ou coefficient d'augmentation du volume. Par exemple, le volume du second ordre = b*m. Volume du troisième ordre = b*m*m.

t est le montant total des commandes à ouvrir.


Ainsi, par exemple, le volume de chaque commande ultérieure est calculé par la formule suivante

v=b*(m^(i-1)), où i est le numéro ordinal de cet ordre, c'est-à-dire que si c'est le deuxième ordre de la série, v=b*m, si le troisième est b*m^2.

Il s'agit donc maintenant de dériver une formule pour le volume total de tous les ordres à ouvrir (t).

 
leonerd:

v=b*(m^(i-1)), où i est le numéro d'ordre de cet ordre, c'est-à-dire que si c'est le deuxième ordre de la série alors v=b*m, si c'est le troisième - b*m^2.

Il s'agit donc maintenant de dériver une formule pour le volume total de tous les ordres à ouvrir (t).

Si la formule est correcte, vous êtes prêt, dans la boucle v +=b*(m^(i-1)) , mettre préalablement à zéro v=0.0 ou si vous voulez obtenir la quantité en t, alors t=0.0 ; dans la boucle t +=v ;

 
Igor Makanu:

si la formule est correcte, vous êtes prêt, dans la boucle v +=b*(m^(i-1)) , pré zéro v=0.0 ou si en t vous voulez obtenir la somme, t=0.0 ; dans la boucle t +=v ;

Ouais, je n'ai pas pensé à la boucle... Mais c'est ainsi que je l'ai obtenu expérimentalement, je pense :

vol_total=b*m^t-b


b(m^t-1)

 
leonerd:

Ouais, je n'avais pas pensé au cycle... Mais c'est ainsi que je l'ai appris par expérience :

b(m^t-1)

puis vérifiez vos deux formules dans la boucle - elles devraient être identiques ;)

 
Igor Makanu:

puis vérifiez vos deux formules dans la boucle - elles devraient être les mêmes ;)

OK, c'est vraiment plus fiable avec un cycle.

Pouvez-vous me dire s'il existe une classe prête à l'emploi pour déterminer la marge totale, y compris la couverture.

Par exemple, j'ai calculé les volumes des ordres en utilisant la martingale. Ils sont dirigés différemment. J'ai aussi leurs prix. Je dois maintenant estimer la marge totale à réserver pour ces commandes. Par ordres dans ce cas, j'entends les ordres de marché ouverts activés.

 
leonerd:

OK, c'est vraiment plus fiable avec un cycle.

Veuillez me dire s'il existe une classe toute faite pour déterminer la marge totale, y compris la couverture.

Par exemple, j'ai calculé les volumes des ordres en utilisant la martingale. Ils sont dirigés différemment. J'ai aussi leurs prix. Je dois maintenant estimer la marge totale à réserver pour ces commandes. Dans ce cas, par ordres, j'entends les ordres de marché ouverts activés.

Je ne fais pas beaucoup d'écriture pour MT5, je n'ai pas compris la marge, elle devrait être dans les articles sur la préparation des Expert Advisors pour le marché.

J'ai regardé mes ordinateurs de poche pour MT4, c'est à peu près comme ça que la marge est calculée :

bool checkmargin(double lot,int ordertype)
  {
   double m=NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck(_Symbol,ordertype,lot),2);
   bool result = AccountBalance()-m>0 ? true : false;
   return(result);
  }
 
Igor Makanu:

Je n'écris pas beaucoup dans MT5, je ne comprends pas les marges, quelque part dans les articles sur la préparation des experts pour le marché devrait être exacte

J'ai regardé ma main pour MT4, c'est plus ou moins la façon dont la marge est calculée :

Merci, j'en ai besoin pour MT4 et MT5. Mais vous ne tenez pas compte ici des ordres dirigés différemment et du coefficient de couverture de la marge.

Il y a plusieurs ordres order1,..., orderN qui sont (seront) des ordres d'achat ou de vente, les directions sont connues : dir1,...,dirN. Les volumes sont également vol1,...,volN. Egalement open_price1,...,open_priceN. La tâche consiste à calculer la taille totale de la marge. Mais les commandes n'ont pas encore été ouvertes. C'est là toute la complexité, car même si le prix d'ouverture de l'ordre au taux croisé est connu, nous avons besoin du taux de change de la paire pour sa conversion dans la devise de dépôt, et nous ne pouvons pas le connaître à l'avance.