Comment calculer la taille du lot ? - page 3

 
chaffinsjc:

Disons que mon mini-compte a une marge de 10 000 $, et que je veux risquer 2 % sur la prochaine transaction (c'est-à-dire utiliser simplement 200 $ pour acheter <un certain nombre> de contrats).

[Je réalise qu'il s'agit d'une vision limitée du "risque". Je ne suis pas intéressé par les pips stopLoss, ou les objectifs de profit, ou quoi que ce soit d'autre].

En utilisant MetaTrader, j'obtiens de mon courtier les mini informations de compte suivantes :

accountLeverage = AccountLeverage() ; // valeur = 200
modeLotSize = MarketInfo("EURUSDm", MODE_LOTSIZE) ; // valeur = 10000
modeLotStep = MarketInfo("EURUSDm", MODE_LOTSTEP) ; // valeur = .01
modeMinLot = MarketInfo("EURUSDm", MODE_MINLOT) ) ; // valeur = .01

QUESTION : Comment calculer la taille du lot pour 200 $ ? (Il serait utile de connaître le coût d'un lot de taille minimale. Dans ce cas, la taille minimale du lot est de 0,01).

QUESTION : La formule de calcul de la taille du lot est-elle la même pour toutes les paires de devises ?

Merci beaucoup par avance.


Je vous envoie un bon calculateur de taille de lot basé sur l'équité et non sur le solde. C'est mieux si vous avez plus d'une transaction.

 
Je vous envoie mon calcul de la taille du lot. Il est basé sur l'équité et non sur le solde. Il est préférable d'utiliser plus d'une transaction à la fois.
Dossiers :
 

Dans la documentation :

MODE_TICKVALUE

16

Valeur du tick dans la devise de dépôt

MODE_TICKSIZE

17

Taille du tick en points


Pour mon courtier à cinq chiffres : mode_tickvalue = 1 ; mode_ticksize = 0.00001

Pourquoi tout le monde donne cette ligne ?

   double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

N'est-ce pas faux ?

 

C'est une erreur, un mauvais mot ( ?)

double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

Ce devrait être : si Digits == 5 ET si vous travaillez en Pips, alors .....

if (Digits==3 || Digits==5) pipValue *= 10;

si quelqu'un travaille en Point, il ne se soucie pas des Pips.

 
ffoorr:

Dans la documentation :

MODE_TICKVALUE

16

Valeur du tick dans la devise de dépôt

MODE_TICKSIZE

17

Taille du tick en points


Pour mon courtier à cinq chiffres : mode_tickvalue = 1 ; mode_ticksize = 0.00001

Alors pourquoi tout le monde donne cette ligne :

N'est-ce pas incorrect ?

   double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

C'est juste pour les personnes qui entrent des valeurs en pips. Un point n'est généralement pas égal à un pip.
 
ffoorr: N'est-ce pas faux ?

Il y a Tick, PIP, et Point. Ils sont tous différents en général. Un tick est le plus petit changement de prix. Un point est le chiffre le moins significatif coté. Dans les devises, un pip est défini comme 0,0001 (ou 0,01 pour le JPY).

Sur un courtier à 4 chiffres, un point (0,0001) = pip (0,0001). [Sur un courtier à 5 chiffres, un point (0,00001) = 1/10 pip (0,00010/10). Le fait de citer un chiffre supplémentaire ne change pas la valeur d'un point. (0.0001 == 0.00010) Les EA doivent ajuster les pips en points (pour mq4.) En devises, un tick est un point. Le prix peut changer par le chiffre le moins significatif (1.23456 -> 1.23457).

Dans les métaux, un tick est toujours le plus petit changement mais il est plus grand qu'un point. Si le prix peut passer de 123,25 à 123,50, vous avez un TickSize de 0,25 et un point de 0,01. Le point n'a aucune signification.

C'est pourquoi il ne faut pas utiliser TickValue seul. Seulement comme un rapport avec TickSize. Voir DeltaValuePerLot()

 
Roman Kramar:

Le problème n'est pas complètement défini. Si vous dites que vous voulez risquer 2% alors vous devez fixer une des variables : le niveau de stop loss ou le volume de la transaction. Puisque vous demandez à calculer la taille du lot, cela signifie que vous ne voulez pas qu'elle soit fixe, mais cela vous oblige à vous intéresser aux pips du stop loss, même si vous dites que vous ne le faites pas. Si vous n'avez pas de stop loss, risquer 2% signifie prendre une taille de lot fixe, par exemple 1,0, et attendre que vos pertes actuelles atteignent 2% de la marge initiale. Vous n'avez pas besoin de calculer la taille du lot ici comme vous le voyez.


Une fois que le niveau de stop loss entre en ligne de compte, le calcul est simple :


double tradeVolume = AccountFreeMargin() * Risk/100 / ( StopLossPoints * MarketInfo( Symbol(), MODE_TICKVALUE ) ) ;


C'est-à-dire que, étant donné un niveau de stop loss pour une transaction particulière, vous aurez toujours le pourcentage spécifié de votre marge initiale perdu si le stop loss est pris.


Vous voudrez également normaliser la valeur résultante par MODE_LOTSTEP et la plafonner avec MODE_MINLOT et MODE_MAXLOT.

Comment puis-je calculer la taille de tous mes ordres ouverts en USD ?

 
magonicolas: Comment puis-je calculer la taille de tous mes ordres ouverts en USD ?
  1. Ne doublez pas les messages! Vous aviez déjà ouvert ce fil de discussion.
    Règles générales et bonnes pratiques du forum. -Général - Forum de programmation MQL5

  2. Cela n'a aucun sens. Comment calculer mon quart en USD ?

    Ne risquez jamais plus qu'un petit pourcentage de votre compte, certainement moins de 2% par trade, 6% au total sur le compte. Le risque dépend de votre stop loss initial, de la taille du lot et de la valeur de la paire. Il ne dépend pas de la marge et de l'effet de levier.
    1. Vous placez le stop là où il doit être - là où la raison de la transaction n'est plus valable. Par exemple, si vous négociez un rebond de support, le stop passe sous le support.
    2. AccountBalance * pourcentage/100 = RISK = Lots d'ordres * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Notez que OOP-OSL inclut le spread, et DeltaPerLot est généralement autour de 10 $/pip mais il prend en compte les taux de change de la paire par rapport à la devise de votre compte).
    3. N'utilisez PAS TickValue seul - DeltaPerLot et vérifiez que MODE_TICKVALUE renvoie une valeur dans votre devise de dépôt, comme promis par la documentation, ou s'il renvoie une valeur dans la devise de base de l'instrument.
      MODE_TICKVALUE n'est pas fiable sur les instruments non-fx avec de nombreux courtiers - forum de programmation MQL4 2017.10.10
      Existe-t-il une solution universelle pour la valeur Tick ? -Paires de devises - Général - Forum de programmation MQL5 2018.02.11
      Lecalcul de la valeur du lot est décalé d'un facteur 100 - MQL5 programming forum 2019.07.19
    4. Vous devez normaliser les lots correctement et vérifier les valeurs min et max.
    5. Vous devez également vérifier le FreeMargin pour éviter le stop out.

    La plupart des paires valent environ 10 $ par PIP. Un risque de 5$ avec un SL (très petit) de 5 PIP est de 5$/10/5 ou 0.1 Lots maximum.

 
William Roeder:
  1. Ne doublez pas les messages! Vous aviez déjà ouvert ce fil de discussion.
    Règles générales et bonnes pratiques du forum. -Général - Forum de programmation MQL5

  2. Cela n'a aucun sens. Comment calculer mon quart en USD ?

    Ne risquez jamais plus qu'un petit pourcentage de votre compte, certainement moins de 2% par trade, 6% au total sur le compte. Le risque dépend de votre stop loss initial, de la taille du lot et de la valeur de la paire. Il ne dépend pas de la marge et de l'effet de levier.
    1. Vous placez le stop là où il doit être - là où la raison de la transaction n'est plus valable. Par exemple, si vous négociez un rebond de support, le stop passe sous le support.
    2. AccountBalance * pourcentage/100 = RISK = Lots d'ordres * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Notez que OOP-OSL inclut le spread, et DeltaPerLot est généralement autour de 10 $/pip mais il prend en compte les taux de change de la paire par rapport à la devise de votre compte).
    3. N'utilisez PAS TickValue seul - DeltaPerLot et vérifiez que MODE_TICKVALUE renvoie une valeur dans votre devise de dépôt, comme promis par la documentation, ou s'il renvoie une valeur dans la devise de base de l'instrument.
      MODE_TICKVALUE n'est pas fiable sur les instruments non-fx avec de nombreux courtiers - forum de programmation MQL4 2017.10.10
      Existe-t-il une solution universelle pour la valeur Tick ?-Paires de devises - Général - Forum de programmation MQL5 2018.02.11
      Lecalcul de la valeur du lot est décalé d'un facteur 100 - MQL5 programming forum 2019.07.19
    4. Vous devez normaliser les lots correctement et vérifier les valeurs min et max.
    5. Vous devez également vérifier le FreeMargin pour éviter le stop out.

    La plupart des paires valent environ 10 $ par PIP. Un risque de 5$ avec un SL (très petit) de 5 PIP est de 5$/10/5 ou 0.1 Lots maximum.

Je ne parle pas du risque, je veux juste connaître le montant en USD des ordres ouverts.

 
magonicolas:

Je ne parle pas de risque, je veux juste connaître le montant en USD des ordres ouverts.

S'il vous plaît, arrêtez de poster deux fois !