[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 826

 

Ne pourrait-on pas calculer séparément pour chaque position ouverte ultérieurement et ensuite faire la somme ? Il y a une raison pour laquelle

AccountFreeMarginCheck(sy, op, lot); 

Le symbole, l'opération commerciale et le lot lui sont transmis... Vous pouvez calculer la marge pour chaque position séparément, décider des positions qui se chevauchent et imprimer le résultat.

Écrivez un script qui imprimera à la fois votre calcul et ce qui est renvoyé par votre société de courtage. Et le comparer...

MODE_MARGINHED 31 Marge facturée sur les positions chevauchées par 1 lot


Calculez donc vos lots. Compte le nombre de lots superposés par la valeur renvoyée par MODE_MARGINHEDGED
Compte le nombre de lots non superposés par la valeur renvoyée par MODE_MARGINREQUIRED

 

J'ai rencontré un problème avec MRC. Par exemple, lorsque je veux exécuter ce code :

double OpPriceF5B = OrderClosePrice()- OrderOpenPrice();

Je veux connaître la différence entre le prix d'ouverture et le prix d'échange.

Comment je fais ça ?

J'essaie de comprendre comme ça :

for (i=1; i <=OrdersTotal();i++){
    if (OrderSelect(i-1,SELECT_BY_POS)==true){
       if (OrderType()== OP_BUY ){
          if (OrderMagicNumber() == Magic_N_F5){
             double OpPriceF5B = OrderClosePrice()- OrderOpenPrice();
          }
       }      
    }   
}
 

Expérimentez avec AccountFreeMarginCheck() :

- Ordre BUY ouvert sur le terminal

- Solde : 94919.36 Fonds : 94921.16 Garantie : 1273.39 Libre : 93647.07 Niveau : 7454.15

- Je demande : AccountFreeMarginCheck(Symbol(),OP_BUY,0.1) - donne le reste du niveau Free

- Je demande : AccountFreeMarginCheck(Symbol(),OP_SELL,0.1) - donne le solde du niveau des fonds


En général, mon problème ne peut être résolu ainsi.

Ma question (mon problème) est la suivante : plusieurs ordres doivent être ouverts simultanément, et ils doivent rester ouverts comme ceci

le premier - vendre avec le lot 0.10

le deuxième - acheter avec le lot 0.26

troisième - vendre le lot 0.43
quatrième - acheter le lot 0.72

Le cinquième - vente par lot 1,19, etc.

Prix 1.2737, effet de levier 100, lot minimum 0.1

Il est possible qu'au cours d'un cycle quelconque du prochain passage d'ordre, le Stop Out survienne.

Cela signifie que nous devrions calculer ce scénario du pire en utilisant la méthodologie de la DC, bien sûr. Et tirer une conclusion : jusqu'à quel montant total de lots sur les ordres ouverts dans l'ordre spécifié pouvons-nous aller sans avoir peur de nous retrouver dans un Stop Out ? C'est-à-dire "au début du début" :) Calculez la marge totale pour les ordres qui peuvent être ouverts. Là encore, l'ordre d'ouverture est indiqué ci-dessus et l'ordre des lots pour chaque ordre est connu à l'avance.

 
ikatsko:

Expérimentez avec AccountFreeMarginCheck() :

- Ordre BUY ouvert sur le terminal

- Solde : 94919.36 Fonds : 94921.16 Garantie : 1273.39 Libre : 93647.07 Niveau : 7454.15

- Je demande : AccountFreeMarginCheck(Symbol(),OP_BUY,0.1) - donne le reste du niveau Free

- Je demande : AccountFreeMarginCheck(Symbol(),OP_SELL,0.1) - donne le solde du niveau des fonds


En général, mon problème ne peut être résolu ainsi.

Mais ma question (tâche) est la suivante : plusieurs ordres doivent être ouverts simultanément, et ils doivent rester ouverts comme ceci

le premier - vendre avec le lot 0.10

le deuxième - acheter avec le lot 0.26

troisième - vendre le lot 0.43
quatrième - acheter le lot 0.72

Le cinquième - vente par lot 1,19, etc.

Prix 1.2737, effet de levier 100, lot minimum 0.1

Il est possible qu'au cours d'un cycle quelconque du prochain passage d'ordre, le Stop Out survienne.

Cela signifie que nous devrions calculer ce scénario du pire en utilisant la méthodologie de la DC, bien sûr. Et tirer une conclusion : jusqu'à quel montant total de lots sur les ordres ouverts dans l'ordre spécifié pouvons-nous aller sans avoir peur de nous retrouver dans un Stop Out ? C'est-à-dire "au début du début" :) Calculez la marge totale pour les ordres qui peuvent être ouverts. Je répète que l'ordre d'ouverture est indiqué ci-dessus et que la taille des lots pour chaque ordre est connue à l'avance.

Réfléchissons-y.

Tous les Bai : 0,26 + 0,72 = 0,98.

Toutes les offres : 0,1+0,43+1,19 = 1,72

Chevauchement : le nombre de lots de Bai est inférieur au nombre de lots de Sell, donc le nombre de lots chevauchés est égal au nombre de lots de Bai = 0,98.

Lots de vente unidirectionnelle restants : 1,72-0,98 = 0,74

Alors, que faisons-nous ? Ajoutez les Bai et soustrayez les Sell : -0,1+0,26-0,43+0,72-1,19= -0,74 Si c'est moins, alors nous avons un Sell unidirectionnel.

Pour les lots superposés, prenez la valeur de MODE_MARGINHEDGED et multipliez-la par le nombre de lots superposés.

Et pour les lots unidirectionnels, prenez la valeur de MODE_MARGINREQUIRED et multipliez-la par MathAbs(quantité de lots unidirectionnels) ;

Eh bien, et tout le reste aussi, essayez de prendre en compte ...

SZY. Je n'ai pas réfléchi longtemps ici - donc entre les affaires - j'ai griffonné - j'admets les omissions, donc à prendre seulement comme une ligne de conduite possible.... :)

 

Alors... la logique devient claire. Merci ! Essayons de le vérifier maintenant.

Au fait, j'ai fait une expérience sur la DEMO :

premier BUY avec 0.1 lot au prix de 1.27339 - a montré Bail=1273.39. Ie 0.1 * 1000000 * 1.27339/100.

La deuxième VENTE par lot 0.26 prix 1.27039 - a montré un total de Bail=3305.18. Et c'est très similaire à ceci 0.26*1000000*1.27039/100=3303.01 ? ??? Bizarrerie ?

Il s'avère que le dépôt est pris sur le nombre maximum de lots qui chevauchent les ordres ouverts en sens inverse ?

En attendant l'ouverture du prochain BUY

 
eugggy:
Bon après-midi à tous. Existe-t-il une définition claire du terme "opérateur" ou est-ce comme "quel est le sens de la vie" (on ne peut pas l'expliquer) ?

:) Un opérateur en tant que tel est un terme élastique - il peut aussi être l'opérateur d'une machine à alcool... :)

Vous posez des questions dans le contexte dans lequel vous voulez connaître le sens du mot. J'espère que la phrase ne sera pas trop longue :)

 
eugggy:
Bonjour à tous. Existe-t-il une définition claire du terme "opérateur" ou est-ce comme "quel est le sens de la vie" (qui ne peut être expliqué) ?

=Commando. Voir wikipedia.

https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)

 
ikatsko:

Alors... la logique a du sens. Merci. Essayons de le vérifier maintenant.

Au fait, j'ai fait une expérience sur la DEMO :

premier BUY avec 0.1 lot au prix de 1.27339 - a montré Bail=1273.39. Ie 0.1 * 1000000 * 1.27339/100.

le deuxième lot de VENTE 0.26 prix 1.27039 - a montré un Bail total=3305.18. Et c'est très similaire à ceci : 0,26*1000000*1,27039/100=3303,01 ? ?? Bizarrerie ?

Il s'avère que le dépôt est pris sur le nombre maximum de lots qui chevauchent les ordres ouverts en sens inverse ?

En attendant l'ouverture du prochain BUY

Eh... J'aimerais avoir le temps d'y réfléchir... :) C'est une tâche intéressante, mais je suis pressé par le temps.

Je pense que s'il y a une ressemblance, mais pas une similitude, ce n'est pas vrai. C'est juste une bizarrerie... :) Essayez de calculer la différence pour le lot maximum...

Pour une telle "étrangeté", les Dezlas se feraient arracher les jambes par des clients sérieux... :)

Vous devez penser dans une autre direction...

En attendant votre prochaine commande :)

 
eugggy:
(gloussant) : (gloussant) : (comme l'opérateur de la machine à moonshine...)) Si j'ai bien compris, l'opérateur (dans MQL4 également) est l'expression la plus petite et la plus significative du code du programme..... quelque chose comme ça.

О ... mère-my-grand-mère... Vous ne pouvez pas vivre sans ? Debout dans un hamac ? Pourquoi se compliquer la vie ?

Lisez-le ici... et c'est la fin de tout ça...

 

Mais comme parfois des questions simples sont déroutantes :) (je veux dire l'opérateur).

J'ai trouvé la définition la plus accessible (simple) dans l'ESB :

"En informatique, une prescription... destiné à spécifier une action achevée..."

Et ici dans la documentation :

"Un opérateur est une partie d'un programme... prescrivant un certain ordre de conversion de l'information."

La fonction se comporte donc de la même manière...

Intéressant.

Raison: