Détection de 5 chiffres - page 5

 
jjc:
...Si vous construisez un système destiné à être utilisé par d'autres personnes, et pas seulement par vous-même, alors la possibilité d'entrer des valeurs en pips est une considération majeure de facilité d'utilisation. Le parieur moyen sait ce qu'il entend par 50 pips, mais il doit réfléchir longuement, et vérifier deux fois, s'il veut dire une valeur de 0,005 plutôt que 0,0005 ou 0,05 ou autre.....

Oui, c'est ce que j'ai dit "La définition semble importante pour un développeur qui veut programmer un programme commercial standard et qui veut que l'utilisateur ait la possibilité d'imputer exactement combien de dollars il veut risquer". Je ne suis pas d'accord avec le fait que le parieur moyen sache ce qu'on entend par 50 pips. Les gens aiment penser en dollars ou en unités standard de leur devise de base. Je pourrais énumérer mon expérience personnelle sur la façon dont j'ai fait des allers-retours sur la définition d'un pip/point mais cela pourrait être long.

Si vous n'êtes pas un SUPER programmeur ayant des années d'expérience du Forex à son actif, il est inutile d'essayer de coder un programme commercial universel applicable aux utilisateurs finaux. Quand quelqu'un achète un EA, il s'attend avant tout à ce qu'il soit rentable. Ensuite, il s'attend à ce que le programme soit flexible au-delà de toute espérance. Par exemple, qu'il commande la fermeture de tous les ordres avant le week-end et qu'il me laisse spécifier combien d'argent je veux risquer, etc. Comme nous le savons tous, il est assez difficile de programmer un EA rentable sans le rendre statique à un cadre temporel ou une devise, etc.

Mais ici vous essayez de programmer un EA commercial pour des gens ordinaires qui ont entendu parler d'un risque de 2% et de "ne pas trader pendant les week-ends". Et qui veulent spécifier exactement 20$ de perte sur GBP/JPY alors que leur devise de base est en USD. Le système a été conçu pour utiliser un pourcentage de l'ATR, quel que soit le nombre de pip/points ou de dollars. Maintenant, le système entier est cassé car il ne répondra pas aux attentes de l'utilisateur final #1 rentable. Si quelqu'un fabrique un outil avec lequel les utilisateurs finaux peuvent jouer, c'est une autre histoire.

Si je devais créer un système pour que ma tante ou mon petit frère puisse l'utiliser, je ferais en sorte qu'il ne soit pas trop compliqué à utiliser. Je le rendrais aussi peu flexible que possible car la seule chose qu'ils pourraient spécifier serait le pourcentage de risque et tout autre périmètre avec lequel le programme n'est pas conçu pour fonctionner serait rejeté, c'est-à-dire que vous spécifiez le mauvais cadre temporel ou la mauvaise devise. Il est vrai que la plupart des systèmes commerciaux permettent aux utilisateurs de spécifier des Pips. Le programmeur ne peut pas être tenu responsable si l'utilisateur final fait des erreurs du genre "oh je ne voulais que 100$ de risque mais je me suis retrouvé avec 1000$". Il a entré des stops de 100 pip mais a utilisé un effet de levier de 1000:1. À moins que vous n'alertiez chaque virage et avertissement dans votre programmation, c'est sans espoir.

 
andydcoles:

La seule chose pour laquelle MQL4 utilise les Pips est le codage de la valeur du Spread dans les demandes d'ordre. Tout le reste est spécifié en termes de taux. Une alternative à considérer est d'utiliser les différences de taux de change comme paramètres d'entrée pour T/P, S/L, etc. Par exemple, spécifiez 0.0050 pour un S/L de 50 Pip. Cela fonctionne indépendamment des chiffres, et ne nécessite qu'une mise à l'échelle de 100 lorsqu'on détecte "JPY" dans Symbol() comme devise de cotation. Cette méthode est viable pour les 21 paires majeures (toutes les combinaisons USD, EUR, GBP, JPY, CHF, CAD, AUD) et probablement aussi pour les paires mineures (que peu de personnes négocient en raison de spreads plus élevés). Si vous êtes vraiment soucieux d'être à l'épreuve des balles, vous pouvez fournir une chaîne de devises et un multiplicateur comme paramètres d'entrée (comme JPY et 100). Cela peut être étendu pour les exotiques aussi avec différents courtiers.

Je pense vraiment que la plupart des codeurs MQL4 n'en font pas grand cas ; lorsqu'ils réussissent à implémenter et à déboguer un algorithme de trading rentable, ils l'utilisent sur leur propre compte réel. Peu d'entre eux voudront le vendre ou le donner, car le marché s'adaptera probablement pour contrecarrer l'algorithme.

Merci pour votre réponse Andy. Mais j'ai résolu les fonctions maintenant. En regardant mes derniers messages, je sais que j'étais un peu obsédé par cette histoire de barrage à l'époque :). Je suppose que je cherchais davantage le calcul sous-jacent de Point, TickSize, etc. plutôt que de mettre mon code à l'épreuve. 7bit a commencé le fil de discussion en cherchant un moyen de détecter un prix à 5 chiffres de manière programmatique. Et par conséquent, il s'est développé pour trouver/explorer les définitions des variables prédéfinies de MarketInfo-s. Encore une fois, merci pour votre contribution.
~Cameo

 

If you are building a system for other people to use, not just for yourself, then the ability to enter values in pips is a major ease-of-use consideration. The average punter knows what they mean by 50 pips, but has to think quite a lot, and double-check, whether they mean a value of 0.005 rather than 0.0005 or 0.05 or whatever. The ability to enter parameters in pips matches how most end-users think in the forex world, and reduces errors. It also offers the prospect of being able to use the same parameter values on 2/3 and 4/5 digit symbols. I don't have much exposure to the mass-market commercial EAs, but I've never seen one where such parameters were entered as a price differential rather than a pip value.

@Jjc : Je suis heureux que quelqu'un soit sur la même longueur d'onde que moi à ce sujet :). J'opterais pour la facilité d'utilisation et la réduction des erreurs à tout moment de la journée :)

Ceci. Personnellement, je ne travaille pas en pips, mais en points. Toutes les données de prix sont données en points. La différence entre deux valeurs de prix est en points. Mon stoploss et mon point de sortie sont tous en points... ils représentent un prix spécifique du marché. La notion de pips est intéressante, mais comme la plupart d'entre nous peuvent en témoigner, dès que vous essayez de faire le lien entre la notion de pips et celle de points, vous perdez en rigueur et en robustesse, et pour quoi faire ? [...]

@Phil : Je peux apprécier vos différentes façons de calculer les paramètres de prix. Nous avons nos propres préférences ; pourquoi les changer si nous n'en ressentons pas le besoin... Mon objectif, comme vous le savez peut-être, est d'explorer les calculs sous-jacents de MarketInfo à utiliser dans différents instruments et courtiers. Votre méthode d'utilisation du prix est certainement un moyen viable et robuste.

Si vous n'êtes pas un SUPER programmeur avec des années d'expérience du Forex à son actif, il est inutile d'essayer de coder un programme commercial universel applicable aux utilisateurs finaux. Quand quelqu'un achète un EA, il s'attend avant tout à ce qu'il soit rentable. Ensuite, il s'attend à ce que le programme soit flexible au-delà de toute espérance. Par exemple, qu'il commande la fermeture de tous les ordres avant le week-end et qu'il me laisse spécifier combien d'argent je veux risquer, etc. Comme nous le savons tous, il est assez difficile de programmer un EA rentable sans le rendre statique à un cadre temporel ou une devise, etc.

@Ubzen : Lols ! Vous n'avez pas besoin d'être un "SUPER programmeur". Croyez-moi. Et même si c'est une possibilité, pour moi la solution n'était pas d'être utilisé pour un programme commercial ou d'être "flexible au-delà de la croyance". Je veux juste tester mes stratégies sur différentes plateformes et instruments sans avoir besoin d'ajuster et de revérifier les paramètres.

En ce qui concerne les pips par rapport au dollar, je peux vous proposer une analogie qui vous est probablement familière :

Disons que je veux jouer dans un nouveau casino. J'ai apporté 5 000 $ de capital et je suis prêt à risquer 2 % de mon capital. Mais la maison fournit des jetons en Points ! Les dollars mis en jeu sont convertis en jetons en Points, ils sont libellés en 0,0001, 0,0005, 0,001, etc. En plus de cela, la table suivante nécessite 10x la quantité de jetons libellés au dixième de la table précédente, et ajoutez à cela que la couleur des jetons n'est pas si facile à distinguer ! Ok... j'exagère un peu :)) mais vous comprenez ce que je veux dire (sans jeu de mots). Le dollar ou la monnaie de base n'est pas universel (IMO) alors que les pips le sont. Les pips sont plus faciles parce que ce n'est pas une fraction et en regardant n'importe quel type de graphiques et d'instruments, si nous voyons x pips de gain/perte, nous pouvons rapidement les évaluer et les comparer.

PS : J'ai beaucoup édité et ajouté ce message.... pourquoi relire certains de mes messages me donne parfois l'impression de ne pas être à la hauteur ?

 

J'utilise les fonctions ci-dessous maintenant, et c'est utilisable sur différents courtiers et instruments.

double vPoint; 
if(Digits == 2 || Digits == 4) vPoint = Point; else
if(Digits == 3 || Digits == 5) vPoint = Point*10; // I use this for my indies; call once on init() & use where Point supposed to be used in start() 

double Poin() 
{ 
   int d = Digits;
   switch(d){
   case 2 : {return(Point); break;}
   case 4 : {return(Point); break; }
   case 3 : {return(Point*10); break;}
   case 5 : {return(Point*10); break:}
   default : return;
} // I just come up with this. Untested but should be ok/robust. To be used to replace Point for trade parameters calculations. 

merci, ~ cameo

 

Récemment, j'ai eu besoin de cela, alors je l'ai codé. Voici ma solution :

//mon observation est que 1% du sous-jacent correspond à environ 100 pips.

//un 'Point' est la plus petite unité incrémentale.

//alors, je calcule simplement le nombre de points qui est une puissance de 10 pour 1% du sous-jacent.

//cette quantité de points est de 100 pips.

double AmountPer100Pips()

{

int k=3 ;

while (MathRound((Bid*0.01)/(Point*MathPow(10, k)))==0)

{

k-- ;

}

//Comment("1%=", DoubleToStr(Bid*0.01, 5), "-", DoubleToStr(Point*MathPow(10, k), 5), " par 100 pips") ;

retour(Point*MathPow(10, k)) ;

}

 
ubzen:

...des gens ordinaires qui ont entendu parler de "2% de risque" et de "ne pas trader le week-end"...


Vous avez oublié "la tendance est votre amie" - essayez d'intégrer cela dans une stratégie de trading... !

Vous avez tout à fait raison, les add-ons ou les fonctions (perçues comme) "agréables à avoir" peuvent ne pas aider et souvent nuire à la stratégie que l'EA doit suivre pour gagner de l'argent.

-BB-

 
jesuscheung:

J'en ai eu besoin récemment, alors je l'ai codé...


Ce code ne fonctionne en fait que pour les devises cotées en dessous de 0.01 Ticks. Mettre Dow (TickSize 1) ou Ger30 (TickSize 0.5) ne fonctionne pas.
 

cameofx : Disons que je veux jouer dans un nouveau casino. J'ai apporté 5 000 $ de capital et je suis prêt à risquer 2 % de mon capital. Mais la maison fournit des jetons en Points ! Les dollars mis en jeu sont convertis en jetons en Points, ils sont libellés en 0,0001, 0,0005, 0,001, etc. En plus de cela, la table suivante nécessite 10x la quantité de jetons libellés au dixième de la table précédente, et ajoutez à cela que la couleur des jetons n'est pas si facile à distinguer ! Ok... j'exagère un peu :)) mais vous comprenez ce que je veux dire (sans jeu de mots). Le dollar ou la monnaie de base n'est pas universel (IMO) alors que les pips le sont. Les pips sont plus faciles parce que ce n'est pas une fraction et en regardant n'importe quel type de graphiques et d'instruments, si nous voyons x pips de gain/perte, nous pouvons rapidement les évaluer et les comparer.

Woah, une analogie avec un casino. J'avais complètement raté celle-là, lol. Ok, je peux la comprendre. Disons qu'Average Joe entre dans un nouveau casino, au lieu de 5000 $, simplifions les calculs et disons 100 $. Il tend à la belle croupière 100 $ Benjamin Franklin et la belle croupière lui demande poliment "Monsieur, comment voulez-vous le récupérer ? en rouge, vert ou moitié-moitié ? Average Joe est totalement confus. La question qu'il lui pose ensuite est la suivante : "Combien coûte le rouge, le vert et qu'entendez-vous par moitié-moitié ? C'est là qu'elle sourit, jette ses cheveux sur le côté et baisse les épaules en soupirant parce qu'elle sait qu'elle a affaire à un noob. Si je suis assis à côté d'Average Joe, je cherche les serveuses à queue de coq. Elle se met à fouiller dans le plateau et à soulever un jeton en proclamant : "C'est un jeton rouge, il vaut 0,0001 points".....(quoi !! c'est un vrai casino, mais faisons comme si c'était le cas).... Average Joe est toujours confus, et je le serais aussi. Il s'exclame : "Oui, mais combien ça fait en dollars". Elle lui répond : "C'est 5 dollars, Monsieur", "et les verts sont à 25 dollars" et "Moitié-moitié signifie 2 verts et 10 rouges".

Maintenant, les points ne sont plus valables, Average Joe est fixé sur les couleurs. C'est comme ça que la maison vous attrape, même un singe peut distinguer les couleurs. Average Joe veut avoir l'air cool et dit : "Eh bien... donnez-moi la moitié de la moitié alors... jolie mamma". Moi, à côté de ce type, j'ai le plus beau sourire pour ne pas éclater de rire. Quoi qu'il en soit, c'est le moment de parier et Average Joe pense à 2% qu'il veut rester à cette table le plus longtemps possible. O_o, il a besoin de 2$, donc il demande au croupier "y a-t-il des jetons à 2$" et elle dit "oui, les blancs sont à 1$ et les roses sont à 2.50$, en voulez-vous ? Il répond "Oui". Elle dit "Passez-moi 2 rouges et je vous donne 10 blancs" (elle ne va pas vous donner tous les blancs de son plateau... elle en a besoin pour convertir... mais elle espère que vous allez commencer à donner des pourboires).

Ok !!, on recommence à parier. A ce moment là, Average Joe met 2 jetons blancs sur la table. Cela provoque le gel du croupier. Elle le regarde, tourne le panneau de manière à ce qu'il soit visible et dit "C'est une table à 5$ minimum, Monsieur" "La table minimum que nous proposons dans ce casino est la table à 3 dollars où" continue-t-elle "c'est juste là où le gars du Buff est en train de distribuer". Average Joe y réfléchit une seconde, (2$ vs 3$....Gorgeous vs Fabillio là-bas) "non, jouons quelques cartes, s'exclame-t-il" retire ses 2-Blancs et jette ses 2-Rouges là-dedans.

Si cela avait été un casino japonais, le format aurait été le même, sauf qu'il aurait fallu plus de temps pour expliquer la valeur d'un point.

 
1005phillip:

Ceci. Personnellement, je ne travaille pas en pips, mais en points. Toutes les données de prix sont données en points.

Cela signifie que chaque fois que vous changez de courtier, (ou si le courtier change soudainement comme IBFX l'a fait il y a plusieurs mois) vous devez vous rappeler de changer tous les paramètres de votre EA en conséquence. Comme le slippage, 3 ou 30 points.

Et combien perdrez-vous si vous oubliez un paramètre ou pire si vous le modifiez dans le mauvais sens ?

Il est beaucoup plus facile de définir des paramètres autres que des pourcentages en pips et de les convertir en points ou en doubles si nécessaire.

 
WHRoeder:

Cela signifie que chaque fois que vous changez de courtier, (ou si le courtier change soudainement comme IBFX l'a fait il y a plusieurs mois) vous devez vous rappeler de changer tous les paramètres de votre EA en conséquence. Comme le slippage, 3 ou 30 points.

Et combien perdrez-vous si vous oubliez un paramètre ou pire si vous le modifiez dans le mauvais sens ?

Il est beaucoup plus facile de définir des paramètres autres que des pourcentages en pips et de les convertir en points ou en doubles si nécessaire.


En fait, c'est exactement le contraire. Mes EA sont codés pour être suffisamment généraux pour que je puisse les déposer sur n'importe quel courtier MT4 avec n'importe quelle combinaison de chiffres, etc, et les mécanismes du trading et de la stratégie sont agnostiques aux paramètres spécifiques du courtier sous-jacent. C'est lorsque vous commencez à programmer avec des paramètres mal définis tels que les "pips" que vous ouvrez la porte aux problèmes.

Ce que je trouve intéressant, c'est que si vous avez déjà une stratégie qui s'appuie sur des indicateurs ou un calcul mathématique impliquant les prix du marché pour la détermination du stoploss et du take profit - qu'il s'agisse d'ATR ou de RSI ou de niveaux de résistance, etc. - en fait tout autre chose que le trivial "Je veux un trailing stop fixe de 30 pip", alors vous n'avez absolument aucun besoin de travailler avec des pips en premier lieu.

Faire des choses avec des pips fixes - par exemple, un takeprofit de 25 pips ou un stoploss de 50 pips - me paraît tout simplement stupide parce que le marché ne fonctionne tout simplement pas de cette façon. Vous ne pouvez donc pas vraiment espérer être rentable en essayant de prendre de l'argent sur le marché en opérant une stratégie commerciale de cette façon. Tout se situe au-dessus des mouvements en pourcentage, des niveaux de résistance, etc. Des choses qui sont définies par le prix, pas par les pips.

Ce n'est que mon opinion, elle peut être totalement erronée.

(PS - votre exemple des changements d'IBFX est un parfait exemple, mes EA ne se sont pas souciés des changements effectués par IBFX. Un autre exemple est celui de FXDD qui, cet été, est passé à 5 chiffres sur l'un de ses serveurs de démonstration. Je ne m'en suis même pas rendu compte ou n'ai pas su que cela s'était produit jusqu'à ce que j'examine les chiffres trimestriels et remarque que les flux de prix avaient changé).