Comment obtenir le "Pourcentage de la marge" de manière programmatique ? - page 9

 
K-2SO:

Chapeau bas, vous avez presque réussi ! Chez les trois courtiers examinés précédemment, avec des pourcentages de marge différents, le calcul pour l'or (pour les ordres dans un sens) est correct.

Mais le script échoue toujours avec les exotiques. Je me suis arrêté chez le courtier fxcm. Le pourcentage de marge pour l'or est de 70000, pour les paires de devises conventionnelles est de 130, la devise de la marge semble être l'USD. Et rien ne compte correctement nulle part ! (. Je cherche moi-même la clé depuis deux jours et, en fait, je cherche maintenant une réponse à la question suivante : comment se fait-il qu'en calculant les devises de base et leurs taux avec les devises de cotation, on obtienne des devises de marge... Peut-être est-ce cela, ou peut-être est-ce le fait que ce courtier prend en compte le pourcentage de la marge même pour les paires de devises normales.

Vous pouvez télécharger le terminal ici ru.files.fm/u/xfezz883#_ , le décompresser, exécuter le fichier exe, lancer la démo...

J'ai ouvert une démo, même deux, l'un n'a pas d'or, l'autre XAUUSD avec le pourcentage de la marge 70000 et le lot standard 1. Et la raison est le calcul incorrect dans les

percentage = NormalizeDouble(
                             margin          // Маржа получена в валюте депозита с учётом плеча
                           /(contractSize    // Размер контракта в базовой валюте
                            *price           // Умножаем на текущую цену и получаем в валюте депозита
                            /100)            // Это для того чтобы коэффициент перевести в проценты
                           *(calcMode == 0 ? leverage : 1) // Это получено методом научно-технического тыка.
                                    // Если способ расчёта 0 - Forex; то надо учесть плечо
                                    //                     1 - CFD; то плечо не учитывается
                                    //                     2 - Futures; 3 - CFD на индексы НЕ проверялись, их у меня нету...
                           , 0);

expérimentez vous-même ces lignes.

      percentage = NormalizeDouble(margin/(contractSize*price/100)*(calcMode == 0 ? leverage : 1), 0);
      orderMargin = (orderLots*contractSize*orderOpenPrice*percentage/100)/(calcMode == 0 ? leverage : 1);

Si je m'ennuie, peut-être que j'expérimenterai aussi.

 
Alexey Viktorov:

Les croix ne sont pas un problème à calculer. Il vous suffit de prendre une cotation qui traduit la devise de la marge en devise du dépôt.

Par exemple, le prix de l'EURJPY

Si le dépôt est en USD, vous devez utiliser EURUSD. CADJPY doit être calculé à partir de USDCAD. Ici, nous devons voir comment ajouter la devise du dépôt à la devise de la marge, nous ne devons pas simplement l'entrer dans la liste.

Les compteurs ne sont pas si difficiles à obtenir grâce à MarketInfo(symbol, MODE_MARGINHEDGED). Le seul problème est de trouver le compteur d'abord, puis de décomposer une partie du compteur et le reste entièrement...

En général, je considère que le seul avantage de cet article est que le trader sait à l'avance quelle marge sera prise lorsque l'ordre en suspens sera activé et qu'il retire l'ordre en suspens à temps s'il n'y a pas assez d'argent. J'ai déjà eu du mal avec cela en plaçant un EA sur le marché.

2017.06.06 18:00:01.890 Script vik2 XAUUSD,H1: removed
2017.06.06 18:00:01.875 vik2 XAUUSD,H1: uninit reason 0
2017.06.06 18:00:01.875 vik2 XAUUSD,H1: ******** AccountMargin = 12.93 USD
2017.06.06 18:00:01.875 vik2 XAUUSD,H1: ******** Процент маржи 1 Маржа ордера XAUUSD 1.0 = 12.933
2017.06.06 18:00:01.875 vik2 XAUUSD,H1: initialized
2017.06.06 18:00:01.859 Script vik2 XAUUSD,H1: loaded successfully
2017.06.06 17:59:51.593 Compiling 'vik2'

effet de levier 100

 
Alexey Viktorov:

J'ai ouvert une démo, voire deux, l'une n'a pas d'or, l'autre a XAUUSD avec un pourcentage de marge de 70000 et un lot standard de 1. Et la raison du calcul incorrect est la suivante

Eh bien, c'est le but de ce sujet... et je pense qu'il n'y a pas de calcul universel après tout ;)
 

Et ensuite, dans les paires de devises normales, dans la méthode de calcul du Forex, devez-vous tenir compte du pourcentage ?

2017.06.06 18:09:54.640 Script vik2 EURUSD,H1: removed
2017.06.06 18:09:54.640 vik2 EURUSD,H1: uninit reason 0
2017.06.06 18:09:54.640 vik2 EURUSD,H1: ******** AccountMargin = 1295.77 USD
2017.06.06 18:09:54.640 vik2 EURUSD,H1: ******** Процент маржи 115 Маржа ордера EURUSD 1.0 = 1295.774
2017.06.06 18:09:54.640 vik2 EURUSD,H1: initialized
2017.06.06 18:09:54.625 Script vik2 EURUSD,H1: loaded successfully


 
K-2SO:
Eh bien, c'est le but de ce sujet... et je ne pense pas qu'il y ait un calcul unique).
Pourquoi pas ? Il y a un lien sur la première page avec les formules. Il peut être décomposé en plusieurs algorithmes selon la façon dont le calcul est effectué. Ce que j'ai suggéré d'expérimenter est fondamentalement faux, ne perdez pas votre temps. Tu dois aller dans l'autre sens.
 
Alexey Viktorov:
Pourquoi pas ? Il y a un lien sur la première page où les formules sont disponibles. Il peut être décomposé en plusieurs algorithmes selon la façon dont le calcul est effectué. Ce que j'ai suggéré d'expérimenter est fondamentalement faux, ne perdez pas votre temps. Tu dois aller dans l'autre sens.
J'ai essayé ces formules sur la méthode de calcul FOREX, rien ne fonctionne correctement du tout sur le dernier broker, même pour EURUSD.
 
K-2SO:
J'ai essayé ces formules sur la méthode de calcul FOREX, sur le dernier broker rien ne fonctionne correctement du tout, même pas pour EURUSD.
Pourquoi ça ne marche pas ? Mon script utilise des formules de cet endroit et semble fonctionner pour le forex et le cfd. Les contrats à terme et les indices sont calculés à l'aide de formules différentes et je ne les ai pas utilisées.
 
Alexey Viktorov:
Pourquoi ça ne marche pas ? Dans mon script, les formules proviennent de là et semblent fonctionner pour le forex et le cfd. Mais les contrats à terme et les indices sont calculés à l'aide de formules différentes et je ne les ai pas utilisées.
Je vous ai donné des captures d'écran ci-dessus de la façon dont ils fonctionnent...
 
K-2SO:
Je vous ai donné des captures d'écran ci-dessus de la façon dont ils fonctionnent...
Bien. Mon script compte la marge pour les CFD et le forex, et vos captures d'écran sont pour les futures, dont les formules sont sur la même page.
 
Alexey Viktorov:
Bien. Mon script calcule la marge pour les CFD et le forex, et vos captures d'écran sont pour les futures, dont les formules sont sur la même page.

D'où vient cette conclusion ?^ ^


La façon de calculer la marge pour XAUUSD, aussi Forex... là, le profit est à terme, pas celui que nous essayons de calculer.
Raison: