Prix par tuyau - page 2

 

LEHayes, ce n'est pas grave si vous ignorez totalement mon message. Je n'ai que du respect pour votre expérience, mais parfois, même les plus intelligents peuvent passer à côté de quelque chose. Votre problème ressemble beaucoup à celui de TickValue, c'est pourquoi je vous le demande. C'est la meilleure explication que j'ai pu trouver qui ressemble à votre problème. Dans le livre, ceci peut peut-être vous aider :

La taille d'un lot standard pour le même symbole peut varier dans différents centres de négociation. <br / translate="no">Le montant requis d'actifs libres pour ouvrir un ordre d'un lot est inversement proportionnel au montant de l'effet de levier fourni. Dans le même temps, le coût de 1 point dans la devise de dépôt pour un symbole n'est pas lié à l'effet de levier fourni.

Tableau 3. Combinaisons possibles du coût d'un lot et du coût d'un point (la monnaie de dépôt est le dollar US).
Centre de négociation 1 Centre de négociation 2 Centre de négociation 3
Achat Vente 1pt Achat Vente 1pt Achat Vente 1pt Achat Vente 1pt
EUR/USD 1296,40 1296,20 10,00 1296,50 1296,20 10,00 1000,00 1000,00 10,00
GBP/USD 1966,20 1966,00 10,00 1376,48 1376,20 7,50 1000,00 1000,00 10,00
AUD/USD 784,40 784,20 10,00 1569,20 1568,40 20,00 1000,00 1000,00 10,00
USD/JPY 1000,00 1000,00 8,29 1000,00 1000,00 8,29 1000,00 1000,00 8,29
USD/CHF 1000,00 1000,00 8,02 1000,00 1000,00 8,02 1000,00 1000,00 8,02
EUR/CHF 1296,40 1296,20 8,02 1296,35 1296. 35 8.02 1000.00 1000.00 8.02

Les prix sont donnés en date du 16.12.2007.

Examinons brièvement quelques méthodes courantes de calcul du coût d'un lot et d'un point.

Centre de transaction 1 (le plus courant)

Pour les symboles qui ont l'USD comme réciprocité, le coût d'un lot est égal au prix actuel de la cotation bidirectionnelle correspondante multiplié par 1000, tandis que le coût d'un point est égal à 10 $.

Pour les symboles dont le numérateur est l'USD, le coût d'un lot est égal à 1000,00 $, tandis que le coût d'un point est inversement proportionnel à la cotation actuelle et égal à 1/(Bid). Par exemple, pour USD/CHF, à Bid= 1,2466, le coût d'un point est de 1/1. 2466 = 8,02.

Pour les taux croisés, le coût d'un lot est calculé de la même manière que celui de la devise numérateur, tandis que le coût d'un point est calculé de la même manière que celui de la devise dénominateur. Par exemple, pour EUR/CHF, le coût d'un lot est de 129,40 (comme pour EUR/USD), alors que le coût d'un lot est de 8,02 (comme pour USD/CHF).

Centre de transaction 2

Dans certains centres de transaction, en considérant la même règle de calcul des coûts, les valeurs des coûts peuvent être différentes pour certains symboles. Par exemple, le coût d'un lot et le coût d'un point peuvent être augmentés ou diminués proportionnellement. Par exemple, ce facteur peut être de 0,75 pour GBP/USD, alors qu'il est de 2,0 pour AUD/USD. Cette représentation des valeurs de coût n'entraîne aucun changement économique ; dans ce cas, vous devez simplement tenir compte de cette particularité lors du calcul des coûts de vos ordres. Vous devez également prêter attention au fait que les coûts d'un lot pour l'achat et la vente d'actifs à des taux croisés sont les mêmes.

Centre de négociation 3

Il existe également des centres de négociation qui fixent le coût d'un lot à 1000,00 $ pour tout symbole. En même temps, le coût d'un point reste proportionnel aux prix actuels. Cela implique la mise en place d'un levier spécial pour chaque symbole. Le coût d'un point de tous les symboles qui ne sont pas cotés par rapport à l'USD change toujours proportionnellement au coût du symbole spécifié réciproquement.

En général, il peut exister d'autres principes de construction des valeurs de coût. Il est inutile de dire que, avant de commencer à trader réellement, vous devez vous renseigner sur la méthode de calcul de tout centre de négociation spécifique et prendre en compte cette méthode dans votre codage.

Meilleures salutations

 
engcomp:

Je ne sais pas trop comment prendre ça. C'est à la limite de l'ennui.

LEHayes, si vous regardez, vous verrez que la "taille du stop loss" est l'une des entrées, et NON ce que le script tente de déterminer.

De même, le script ne "tente pas" de déterminer la taille du lot en fonction du stop loss et du pourcentage de risque que vous déterminez.

Enfin, la valeur du tick qu'il renvoie est dans la devise du compte. C'est à vous de la convertir dans votre devise.



Désolé, je vois maintenant que le Stop Loss n'a pas été utilisé dans le calcul.

J'ai l'impression que TICKVALUE n'est pas une source fiable pour déterminer la valeur réelle d'un pip. C'est en quelque sorte la raison pour laquelle j'hésite à utiliser TICKVALUE. On m'a dit qu'elle sautait ou pouvait changer. La seule chose que votre code a fait avec TICKVALUE était de déterminer si vous deviez le calculer par rapport à 10 pour le chiffre supplémentaire, n'est-ce pas ? En se référant à ceci :

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

Donc, en résumé, on peut dire que TICKVALUE est la même chose que la valeur du pip ou le prix par pip. Si je suis préoccupé par le saut de la valeur, je devrais peut-être vérifier la validité de la valeur avant de la prendre en compte dans un calcul, ou utiliser une autre méthode pour obtenir le prix par pip.

Je pense que l'une des raisons pour lesquelles je frustre les gens est qu'il existe différents termes pour décrire la même chose dans ce monde. Valeur du pip, prix par pip, valeur du tick, etc. Peut-être qu'un livre sur les synonymes dans ce marché serait pratique ;-)

 
LEHayes:

CB, c'est la raison pour laquelle j'essaie à nouveau de trouver l'origine du problème. Lorsque je fais une recherche comme vous le suggérez, il y a plus de 2800 fils de discussion sur le forum, liés d'une manière ou d'une autre à cette question. J'ai lu des fils de discussion sur une controverse à savoir si un tick est réellement un pip ou s'il devrait être traité différemment parce qu'un tick est le moment où le courtier choisit de mettre à jour votre MT4, il ne dicte pas qu'un tick sera une mise à jour chaque pip. Par conséquent, l'argumentation se poursuit en affirmant qu'il s'agit d'une source non fiable pour obtenir la valeur d'un pip.

Je ne sais pas si cela peut aider, mais...

  • Presque tout le monde est d'accord pour dire qu'un "pip" est une unité de mouvement de prix. Ils peuvent ne pas être d'accord sur la taille - par exemple, si un pip sur EURUSD est de 0,0001 ou 0,00001 - mais le terme est assez peu ambigu.
  • Le terme "tick" est largement utilisé pour signifier deux choses différentes : soit la même chose que le "pip", soit le sens très différent d'"événement de marché" tel que "30 ticks par minute". Certaines personnes essaient d'insister pour que le terme "tick" soit réservé à cette dernière signification, mais elles mènent une bataille perdue d'avance. Pour le dire autrement, MODE_TICKSIZE et MODE_TICKVALUE de MT4 seraient légèrement moins litigieux s'ils étaient appelés MODE_PIPSIZE et MODE_PIPVALUE.

 
gordon:
Prix à la pièce ou prix au point ? Si c'est le premier, alors ceci est pertinent -> https://www.mql5.com/en/forum/124692, discute de la façon de déterminer la taille du pip (en points) pour un symbole...


Si je place un EA sur EURUSD, et que le prix passe de 1,1234 à 1,1235, je veux connaître la valeur monétaire de ce mouvement unique. Je sais qu'il faudra tenir compte de l'effet de levier dans ce calcul, ainsi que de la taille du lot, mais nous pouvons fixer la taille du lot à un standard de 1 dans le but de déterminer la valeur du pip, puis calculer plus tard cette valeur par rapport aux mini ou micros, etc.

Honnêtement, les gars, je n'essaie pas d'être compliqué et j'essaie d'être aussi direct que possible. J'espère que je ne fais pas fuir quelqu'un.

 
LEHayes:


Désolé pour cela, je vois maintenant que le Stop loss n'a pas été utilisé dans le calcul.

J'ai l'impression que TICKVALUE n'est pas une source fiable pour déterminer la valeur réelle d'un pip. C'est en quelque sorte la raison pour laquelle j'hésite à utiliser TICKVALUE. On m'a dit qu'elle sautait ou pouvait changer. La seule chose que votre code a fait avec TICKVALUE était de déterminer si vous deviez le calculer par rapport à 10 pour le chiffre supplémentaire, n'est-ce pas ? En se référant à ceci :

Donc, en résumé, on peut dire que TICKVALUE est la même chose que la valeur du pip ou le prix par pip. Si je suis préoccupé par le saut de la valeur, je devrais peut-être vérifier la validité de la valeur avant de la prendre en compte dans un calcul, ou utiliser une autre méthode pour obtenir le prix par pip.

Je pense que l'une des raisons pour lesquelles je frustre les gens est qu'il existe différents termes pour décrire la même chose dans ce monde. Valeur du pip, prix par pip, valeur du tick, etc. Peut-être qu'un livre sur les synonymes dans ce marché serait pratique ;-)

Et de l'article


Définissons la NominalPipValue comme la valeur d'un seul pip en devise de dépôt lorsque le Volume=1.00.
La NominalPipValue peut être calculée en connaissant le taux de change actuel de la paire choisie.

Disons que vous négociez l'EURUSD sur un compte standard avec un effet de levier de 1:100. Si votre devise de dépôt est l'USD, la valeur nominale de l'écart sera toujours de 10$, quel que soit le taux de change.
Si votre devise de dépôt est l'EUR, vous devez prendre en compte le taux de change, plus précisément l'inverse du taux de change.

NominalPipValue = (10 / taux de change)

Si le taux de change actuel EURUSD est par exemple de 1,3333, vous aurez :

NominalPipValue = (10$ / 1.3333) = 7.519 EUR

Comme vous pouvez le constater, c'est assez simple. Les choses se compliquent lorsque vous tradez une paire comme USDCHF et que votre devise de dépôt est en EUR ou GBPJPY et que votre devise de dépôt est soit EUR soit USD. En effet, dans ces cas, vous devez prendre en compte un double taux de change.

Heureusement, nous n'avons pas besoin de le faire car MetaTrader dispose d'une fonction spécifique qui nous indique facilement la NominalPipValue :

NominalPipValue = MarketInfo(Symbol(),MODE_TICKVALUE) (6)

Cela fonctionnera quelle que soit la paire que vous négociez et quelle que soit votre devise de dépôt... même trop facile maintenant :)

ATTENTION : La NominalPipValue change avec les taux de change, donc sa valeur à l'ouverture de l'ordre est différente de celle à la fermeture de l'ordre. Les profits/pertes réels sont calculés en utilisant le taux de change à la fermeture de l'ordre.

Malheureusement, nous ne connaissons pas cette valeur au moment où nous ouvrons l'ordre... de toute façon, pour des variations du taux de change de l'ordre du SL typique, la différence de NominalPipValue à l'ouverture et à la fermeture de la position est suffisamment faible pour être ignorée dans le cadre de notre calcul (moins de 1% pour un SL <= 100pips).

À ce stade, nous savons que lors de l'achat/la vente de 1,00 lot, la valeur du pip est égale à la valeur nominale du pip. Plus généralement, nous pouvons dire :

1.00 / NominalPipValue = X / PipValue (7)

où "X" est le nombre de lots à négocier.
Nous extrayons X de l'équation (7) en la transformant en :

X = PipValue / NominalPipValue (8)

Bien, nous avons atteint notre objectif. Nous savons maintenant comment convertir le capital-risque en lots ! !!

Cela peut être autrement utile pour les newbs / quelqu'un...

 
cameofx:

LEHayes, ce n'est pas grave si vous ignorez totalement mon message. Je n'ai que du respect pour votre expérience, mais parfois, même les plus intelligents peuvent passer à côté de quelque chose. Votre problème ressemble beaucoup à celui de TickValue, c'est pourquoi je vous le demande. C'est la meilleure explication que j'ai pu trouver qui ressemble à votre problème. Dans le livre, cela peut peut-être vous aider :

Meilleures salutations


Oui, c'est le calcul que je recherche. Déterminer 1 point de mouvement. Vous êtes dans le mille, maintenant ce qui me perturbe c'est comment écrire cela dans la fonction de détermination de cette valeur. Nous avons une condition dans laquelle l'USD est soit un numérateur, soit un démonisateur, soit une situation de paires croisées. C'est là que je m'embrouille.
 
jjc:

Je ne sais pas si ça peut aider, mais...

  • Presque tout le monde est d'accord pour dire qu'un "pip" est une unité de mouvement de prix. Ils peuvent ne pas être d'accord sur la taille - par exemple, si un pip sur EURUSD est 0,0001 ou 0,00001 - mais le terme est assez clair.
  • Le terme "tick" est largement utilisé pour signifier deux choses différentes : soit la même chose que le "pip", soit le sens très différent d'"événement de marché" tel que "30 ticks par minute". Certaines personnes essaient d'insister pour que le terme "tick" soit réservé à cette dernière signification, mais elles mènent une bataille perdue d'avance. En d'autres termes, MODE_TICKSIZE et MODE_TICKVALUE de MT4 seraient légèrement moins controversés s'ils étaient appelés MODE_PIPSIZE et MODE_PIPVALUE.


C'est justement ce qui m'amène à mes préoccupations. Votre déclaration sur Tick.
 
cameofx:

Et de l'article

Cela peut être autrement utile pour les nouveaux venus / quelqu'un...


Oui, c'est aussi ce que je cherche. Je pense que les deux articles disent la même chose. Donc, à partir de cet article, je peux supposer sans risque que TICKVALUE est PipValue ou Price Per Pips. Le saut ou le changement de cette valeur peut être dû à des calculs à la volée impliquant le taux de change. Je dois m'attendre à ces fluctuations.

Désolé les gars si c'est si simple, je suis vraiment désolé d'avoir causé un tel chahut.

 

Merci à tous d'avoir fait passer ce message dans mon crâne épais. Pour une raison quelconque, je pensais que TICKVALUE n'était pas fiable.

 
LEHayes:

Merci à tous d'avoir réussi à me faire rentrer dans le crâne. Pour une raison quelconque, je pensais que TICKVALUE n'était pas fiable.

TICKVALUE, lorsqu'il est utilisé seul, peut être peu fiable.

Si vous examinez TV et TS à chaque tick, vous verrez normalement quelque chose comme ceci :

1 0.0001

1 0.0001

1 0.0001

1 0.0001

Cependant, de temps en temps, vous pouvez voir quelque chose comme ceci :

1 0.0001

1 0.0001

2 0.0002

1 0.0001

C'est pourquoi je vais mentionner (encore une fois) que TICKVALUE et TICKSIZE doivent être utilisés comme un ratio. TV/TS est la formule qui vous permettra d'obtenir ce que vous recherchez.

CB

Raison: