Estimation des exigences de marge dans MQL5 - page 7

 
Vladimir:

Vous comprenez qu'il ne s'agit pas du code, tous ceux qui savent recalculer - c'est tout. Mais vous avez ajouté la volatilité à la liste des caractéristiques dont vous avez effectivement identifié l'impact. Et si vous allez plus loin dans le bois, vous récolterez de plus en plus de bois de chauffage. Comment en tenir compte ? L'affaire semble assez désespérée...

Je ne comprends pas du tout ce que vous voulez dire.

Tout cela est décrit dans les conditions de négociation, dans les règles de négociation proprement dites.

Le phénomène est essentiellement banal.

Le calcul est différent en conséquence.

Mais le problème peut être résolu

Comment prendre en compte - poste précédent.
 
Renat Akhtyamov:

Je ne sais pas ce que vous voulez dire.

Tout est décrit dans les conditions de négociation, dans les règles de négociation proprement dites.

Le phénomène est banal par essence.

En conséquence, le calcul est différent

Mais le problème est soluble.

Je vais essayer d'expliquer. L'algorithme est le suivant : on observe plusieurs dizaines de symboles dans plusieurs dizaines de sociétés de courtage. Les estimations se font par étapes ; je les appellerai pour simplifier : la rentabilité attendue d'une opération sur la marge prise par celle-ci. Elle est différente pour chaque paire (symbole, DC). Et pas seulement au moment de l'ouverture de la transaction. Pour sélectionner les symboles et les sociétés de courtage avec lesquels nous allons conclure une affaire, nous devons comparer ce chiffre. Pour ce choix, nous devons estimer l'effet de levier, dans quelles limites il se situera dans une période prévue avant la clôture de la transaction. Après tout, nous devrons réserver ce montant.

Il s'agit du programme maximum. Jusqu'à présent, je ne sais même pas si je peux prendre OrderCalcMargin() comme base pour estimer la marge requise. Que ce soit juste la marge pour le moment actuel. Vous avez dit que lorsque la volatilité change, l'effet de levier change. Nous devrons donc collecter des statistiques - dans quelles fourchettes il change dans chacun des CV pour chaque symbole. Ou bien il sera possible de trouver des fourchettes acceptables de ces fluctuations. Le pire serait qu'il s'avère que l'effet de levier varie de manière imprévisible...

Ma question "est-ce que OrderCheck() ou OrderCalcMargin() prend en compte les caractéristiques de l'effet de levier spécifiées dans la spécification" est un point de départ dans cette approche.
 
Vladimir:

Je vais essayer d'expliquer. L'algorithme est le suivant : plusieurs dizaines de symboles dans plusieurs dizaines de DC sont contrôlés. Les estimations sont faites à un certain stade, je les appellerai pour simplifier la rentabilité attendue d'une opération sur la marge prise par celle-ci. Elle est différente pour chaque paire (symbole, DC). Et pas seulement au moment de l'ouverture de la transaction. Pour sélectionner les symboles et les sociétés de courtage avec lesquels nous allons conclure une affaire, nous devons comparer ce chiffre. Pour ce choix, nous devons estimer l'effet de levier, dans quelles limites il se situera dans une période prévue avant la clôture de la transaction. Après tout, nous devrons réserver ce montant.

Il s'agit du programme maximum. Jusqu'à présent, je ne sais même pas si je peux me baser sur OrderCalcMargin() pour estimer la marge requise. Qu'elle ne soit que la marge pour le moment présent. Vous avez dit que lorsque la volatilité change, l'effet de levier change. Nous devrons donc collecter des statistiques - dans quelles fourchettes il change dans chacun des CV pour chaque symbole. Ou bien il sera possible de trouver des fourchettes acceptables de ces fluctuations. Le pire serait qu'il s'avère que l'effet de levier varie de manière imprévisible...

J'écris pour la dernière fois :

Lisez les conditions commerciales d'une société de courtage particulière et vous n'aurez pas besoin de statistiques.

 
Renat Akhtyamov:

La dernière fois que j'ai écrit :

Vous pouvez modifier votre effet de levier à votre gré et il se peut que vous ne disposiez que de quelques heures.

//Ma question "est-ce que OrderCheck() ou OrderCalcMargin() prend en compte les caractéristiques de l'effet de levier spécifiées dans la spécification" est un point de départ dans cette approche.

Actuel

On ne voit jamais quand arrive un courriel de réduction de levier, et il peut y avoir de nombreux facteurs, ce n'est pas seulement pour les élections dans les pays. Ils peuvent modifier l'effet de levier à la "volée" à leur gré, vous pouvez le faire passer de 100 à 20, et ce pour quelques heures seulement.

 
Vitaly Muzichenko:

Avez-vous déjà vu une lettre dans le courrier vous informant d'une réduction du levier, et il peut y avoir de nombreux facteurs, pas seulement dans les élections nationales. Il se peut également que vous ne receviez pas de lettre - ils changent l'effet de levier à la volée comme ils l'entendent, ils peuvent passer de 100 à 20, et ce pour quelques heures seulement.

Vitaly, j'ai déjà écrit l'algorithme de suivi dans la version précédente, je l'ai utilisé moi-même, car l'effet de levier était de 1:2000.

Dans les conditions de trading, ils précisent spécifiquement les limites de changement de l'effet de levier, les conditions, le temps, dans quelles conditions ils ne le changent pas du tout, etc.

Vous pouvez aussi le modifier à la volée, c'est pourquoi je le suivais.

 
Vladimir:.
Ma question "est-ce que OrderCheck() ou OrderCalcMargin() prend en compte les caractéristiques de l'effet de levier spécifiées dans la spécification" est un point de départ dans cette approche.

Désolé, dans vos propres mots :

"Il ne s'agit pas du code, mais de tous ceux qui peuvent recalculer."

Il est probable que vous vous soyez également assigné à tous.

Faites le calcul et tout sera
 

Ou peut-être le terminal ne dispose-t-il pas des bonnes informations ?
J'ai vérifié si le terminal envoie une requête au serveur à chaque fois, ou s'il vérifie si j'ai assez de fonds. Je n'ai trouvé qu'une seule société de courtage dans MT5 qui enregistre ses demandes sur deux lignes avec deux points si le montant est insuffisant. Peut-être parce que, parmi les MT5, ce terminal est le seul à être connecté à un compte réel, les autres MT5 étant de démonstration. Journal de bord pour 6 tentatives d'ouverture de transaction manuelle :

2018.07.03 04:59:35.231 Transactions '3038119' : achat sur le marché 1.26 EURUSD.m
2018.07.03 04:59:35.331 Transactions '3038119' : achat au marché 1.26 EURUSD.m [Pas d'argent]
2018.07.03 05:00:51.667 Transactions '3038119' : achat sur le marché 1.26 EURUSD.m
2018.07.03 05:00:51.747 Transactions '3038119' : échec de l'achat sur le marché de 1,26 EURUSD.m [Pas d'argent].
2018.07.03 05:00:55.001 Transactions '3038119' : achat sur le marché 1.26 EURUSD.m
2018.07.03 05:00:55.091 Transactions '3038119' : achat au marché 1.26 EURUSD.m [Pas d'argent].
2018.07.03 05:01:00.008 Transactions '3038119' : marché vendre 1.26 EURUSD.m
2018.07.03 05:01:00.091 Trades '3038119' : échec de la vente sur le marché de 1,26 EURUSD.m [Pas d'argent].
2018.07.03 05:01:02.911 Trades '3038119' : marché vendre 1.26 EURUSD.m
2018.07.03 05:01:03.007 Trades '3038119' : échec de la vente sur le marché de 1,26 EURUSD.m [Pas d'argent].
2018.07.03 05:01:05.952 Trades '3038119' : marché vendre 1.26 EURUSD.m
2018.07.03 05:01:06.035 Trades '3038119' : échec de la vente sur le marché de 1,26 EURUSD.m [Pas d'argent].

Intervalles de temps entre la ligne de demande et la réponse No money (en millisecondes) : 100 80 90 83 96 87.
De plus, le ping du serveur dans le terminal est de 73.56 ms. Pourquoi le terminal attend-il pendant 80 ms ou plus avant de décider qu'il n'y a pas assez d'argent ? Il semble qu'il envoie toutes les demandes au serveur sans vérifier si elles sont suffisantes. Pourquoi ça ? Je vois une raison naturelle : le terminal ne dispose pas des informations nécessaires à une telle vérification.
Et j'ai toujours été sûr que le message "Pas assez d'argent..." est donné par le terminal lui-même, que ce ne sont pas seulement les décisions du serveur d'envoi.

Dennis Kirichenko semble être la réponse la plus précise à ma question https://www.mql5.com/ru/forum/261955/page4#comment_7949343.

Renat Akhtyamov, quelle méthode suggérez-vous dans https://www.mql5.com/ru/forum/261955/page2#comment_7945930"Request margin information from the server" ? Même si ça prend une seconde, d'accord, mais à quel type de requête au serveur faisiez-vous référence ? S'agit-il seulement d'une tentative d'ouverture d'une transaction anticipée, pour laquelle une estimation préliminaire de la marge est faite ?

 
Vladimir:

Ou peut-être n'avez-vous pas les bonnes informations dans votre terminal ?
J'ai commencé à vérifier si le terminal envoie la demande au serveur à chaque fois, ou s'il vérifie la suffisance des fonds. Je n'ai trouvé qu'une seule société de courtage dans MT5 qui enregistre les demandes sur deux lignes avec deux points en cas de fonds insuffisants. Peut-être parce que, parmi les MT5, ce terminal est le seul à être connecté à un compte réel, les autres MT5 étant de démonstration. Journal de bord pour 6 tentatives d'ouverture de transaction manuelle :

2018.07.03 04:59:35.231 Transactions '3038119' : achat sur le marché 1.26 EURUSD.m
2018.07.03 04:59:35.331 Transactions '3038119' : achat au marché 1.26 EURUSD.m [Pas d'argent]
2018.07.03 05:00:51.667 Transactions '3038119' : achat sur le marché 1.26 EURUSD.m
2018.07.03 05:00:51.747 Transactions '3038119' : échec de l'achat sur le marché de 1,26 EURUSD.m [Pas d'argent].
2018.07.03 05:00:55.001 Transactions '3038119' : achat sur le marché 1.26 EURUSD.m
2018.07.03 05:00:55.091 Transactions '3038119' : achat au marché 1.26 EURUSD.m [Pas d'argent].
2018.07.03 05:01:00.008 Transactions '3038119' : marché vendre 1.26 EURUSD.m
2018.07.03 05:01:00.091 Trades '3038119' : échec de la vente sur le marché de 1,26 EURUSD.m [Pas d'argent].
2018.07.03 05:01:02.911 Trades '3038119' : marché vendre 1.26 EURUSD.m
2018.07.03 05:01:03.007 Trades '3038119' : échec de la vente sur le marché de 1,26 EURUSD.m [Pas d'argent].
2018.07.03 05:01:05.952 Trades '3038119' : marché vendre 1.26 EURUSD.m
2018.07.03 05:01:06.035 Trades '3038119' : échec de la vente sur le marché de 1,26 EURUSD.m [Pas d'argent].

Intervalles de temps entre la ligne de demande et la réponse No money (en millisecondes) : 100 80 90 83 96 87.
De plus, le ping du serveur dans le terminal est de 73.56 ms. Pourquoi le terminal attend-il pendant 80 ms ou plus avant de décider qu'il n'y a pas assez d'argent ? Il semble qu'il envoie toutes les demandes au serveur sans vérifier si elles sont suffisantes. Pourquoi ça ? Je vois une raison naturelle : le terminal ne dispose pas des informations nécessaires à une telle vérification.
Et j'ai toujours été sûr que le message "Pas assez d'argent..." est donné par le terminal lui-même, que ce ne sont pas seulement les décisions du serveur d'envoi.

Dennis Kirichenko semble avoir répondu le plus précisément à ma question https://www.mql5.com/ru/forum/261955/page4#comment_7949343.

Renat Akhtyamov, quelle méthode suggérez-vous dans https://www.mql5.com/ru/forum/261955/page2#comment_7945930"Request margin information from the server" ? Même si ça prend une seconde, d'accord, mais à quel type de requête au serveur faisiez-vous référence ? S'agit-il seulement d'une tentative d'ouverture d'une transaction anticipée, pour laquelle une estimation préliminaire de la marge est faite ?

Je vous comprends, bien sûr.

Au début, je ne comprenais pas tout de suite les choses simples.

Encore une fois, voici la marge pour 1 lot à vendre

OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)

Mais pour acheter

OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)

L'effet de levier est le rapport à celui-ci, pas plus que

k=100/levée

comme ceci

Et votre journal vous indique que vous n'avez pas d'argent et que vous ne pouvez pas ouvrir une commande gratuite.

Vous pouvez ouvrir un ordre avec de l'argent démo. Cependant, d'après ce que j'ai compris, vous n'avez pas non plus d'argent de démonstration.

Le solde est nul, n'est-ce pas ?
 
Les gars, donnez-moi l'adresse d'une maison de courtage où l'effet de levier pour un symbole ou l'effet de levier d'un compte change fréquemment. Ou du moins, pour certains symboles, des conditions de levier distinctes.
 

ForexClub.

J'ai vérifié leur marge par rapport à ce lot en utilisant ::OrderCalcMargin(). Compte réel, effet de levier 1:500.

EURUSDLotPrixValeur du volume, en $.Marge bénéficiaire, $.Levier théorique
100 0001.001.16716116 716233.43500

11.001.167161 283 8762 567.75500

51.001.167165 952 51611 905.03500

101.00
1.1671611 788 31623 576.63500


Il s'avère que l'effet de levier ne change pas lorsque le volume de transactions augmente, ce qui ne correspond pas à la spécification.

Raison: