points == pips ? - page 5

 
angevoyageur:
Jusqu'à ce que nous ayons un courtier qui fournisse 6 chiffres
C'est un bon point... espérons que cela n'arrivera pas.
 
RaptorUK:
Existe-t-il des courtiers à 4 chiffres pour MT5 ? Si c'est le cas, vous aurez un point différent de celui des courtiers à 5 chiffres. Le point est le dernier chiffre, mais il n'est pas le même pour les courtiers à 4 et 5 chiffres.

Ma définition du pip est la même pour les courtiers à 4 et 5 chiffres, donc je pense qu'il est possible de mieux le définir que le point.
Si les courtiers sont vraiment pertinents pour définir ce qu'est le point dans MQL5, il est préférable que MQ change la fonction en Point(string broker) ;-)
 

Je me bats avec la définition des pips depuis longtemps aussi. Tout le monde semble avoir une définition différente. Et en plus de cela, chaque paire a un nombre différent de chiffres dans le prix coté et donc 1 pip n'existe pratiquement pas. (Il a une valeur différente dans chaque paire). Je pense que la seule façon d'utiliser la valeur monétaire par changement de prix est de forcer tous les courtiers à unifier les prix à 5 chiffres pour TOUS les symboles. (y compris les paires de devises, les métaux, les actions, etc.) Les courtiers ne le font pas volontairement, car ils ne veulent pas admettre qu'ils en volent beaucoup plus. S'ils disent "spreads serrés", ils veulent dire que nous vous montrons un chiffre serré (par exemple 30 pour l'or), mais en réalité, ils facturent 30 uniquement parce qu'ils suppriment deux chiffres. L'écart réel est d'environ 3000 points. Je me suis fait une feuille de calcul pour essayer de surmonter ce problème. En réalité, mon courtier a dans certaines paires 5 chiffres, d'autres paires 4 chiffres, d'autres paires 3 chiffres, et certains même 2 chiffres. Lorsque j'ai compris et que je l'ai mis sur papier, j'ai découvert que si j'ajoute la quantité de zéros souhaitée, je crée un prix unifié et donc une valeur monétaire unifiée, par exemple pour 1000 points sur l'une des 200 paires.

Le problème est que les courtiers facturent des spreads, des swaps et des frais de commission, en plus de ce désordre. Mais si la valeur du prix était toujours à 5 chiffres, vous sauriez exactement combien d'argent vous gagnez pour 1000 points, quel que soit le symbole que vous allez négocier.

Les gars. Dites-moi. Est-ce une idée complètement folle ? ou est-ce faisable? Pourrait-il s'agir d'une solution ? Comment savoir précisément "combien d'argent pour un changement de prix sur chaque symbole existant que vous obtenez".

 
un commentaire sur mon précédent message ?
 
Vorobyov:
un commentaire sur mon post précédent ?
A mon avis, une définition standard des pip n'est pas une solution pour rien, de toute façon je ne vois pas votre idée comme une idée folle, comme vous l'avez dit, c'est juste une autre vision.
Pour moi, il n'est pas nécessaire d'avoir une telle norme car tout courtier ou plateforme peut nommer les pips comme il le souhaite à ses clients, s'il le veut, c'est juste une convention et/ou un accord, si c'est le cas d'une règle interne.
 

Bonjour à tous,

Je ne suis pas familier avec la programmation.

Y a-t-il une méthode pour calculer les valeurs des points ? J'ai écrit un programme comme celui-ci, est-ce correct ? ( je ne veux pas traiter avec les pips...LoL)

Quand je veux mettre 100 Take Profit, j'ai écrit comme ceci, mais il y a toujours l'erreur 130.

double calcPrice ;

calcPrice= Ask+(100*Point()) ;///<<<<------ marché réel au prix demandé( Ou quand j'étais Modify Order >> OrderOpenPrice() ; )

Cette méthode est-elle correcte pour les courtiers à 4 chiffres et à 5 chiffres ? ? ???

2) Y a-t-il d'autres méthodes qui peuvent être utilisées pour toutes ces exigences ?

3. quelqu'un peut aider l'exemple, OrderSend sans ces erreurs de cas de chiffre.


Tout commentaire sera apprécié.

Merci

 

73398956Aipl: when i want put 100 Take Profit i wrote like this, but it makes Error 130 always

calcPrice= Ask+(100*Point()) ;///<<<<------ marché réel au prix demandé( Ou quand j'étais Modify Order >> OrderOpenPrice() ; )

1. cette méthode est-elle correcte pour les courtiers à 4 et 5 chiffres ? ? ???

  1. Vous voulez un 100 quoi? Votre code génère 100 points. Si vous voulez 100 PIPs, la valeur sera fausse sur un courtier à 5 chiffres. Si vous voulez 10 PIPs, la valeur sera fausse sur un courtier à 4 chiffres.
  2. Votre code se casse si vous changez de courtier 4/5 et que vous n'ajustez pas la valeur. Il se casse si vous changez de serveur alors que le courtier propose à la fois 4 et 5. Il se casse également si le courtier passe à 5 chiffres pendant le week-end, comme cela s'est produit. Faites tout en PIPs et ajustez (SL, TP, et slippage ; pour les courtiers à 4/5 chiffres et pour les paires JPY).
  3. 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é. En devises, un pip est défini comme 0,00010 (ou pour le JPY 0,010)

    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()

 
Vorobyov:
Un commentaire sur mon post précédent ?

De mon point de vue il n'existe pas de définition fixe ! C'est comme dans un jardin d'enfants, chaque courtier fait ce qu'il veut ! Je suis récemment tombé sur un swap de trois jours - qui s'applique normalement aux week-ends - qui est levé le mercredi, pas le vendredi !

Donc pour moi

  • un point, c'est ce que vous obtenez du courtier (=> _Point) et
  • un pip est une différence de prix qui a une valeur de ~10.-$ sur un compte en $, ou 10 € sur un compte en €-- pour un lot (c'est ma définition technique !!).

Cela signifie que si un stop est placé 10 pips en dessous de l'entrée, je risque ~100 € sur mon compte en €, quel que soit le symbole que je négocie ! Peu importe le nombre de chiffres d'un point ou la taille du lot,...

Plutôt que de désespérer, prenez-le comme une chance qu'il n'y ait pas de définition fixe, car vous aussi pouvez définir les choses comme vous le souhaitez !

C'est comme ça que je fais :

bool Pip10(string sym,int &dig,double &pip,int &digis,double &pt,double refValue=10.0, const string from="") {
   // use: if (!Pip10(sym, DIG, PIP, DIGIS, PNT)){ ...
   pt             = SymbolInfoDouble(sym,SYMBOL_POINT);
   digis          = (int)SymbolInfoInteger(sym,SYMBOL_DIGITS);
   
   int      xp    = digis+1, XP = 0, n=200;
   double   tV    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_VALUE ),  //MarketInfo(sym,MODE_TICKVALUE),///
            tS    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_SIZE ),  //MarketInfo(sym,MODE_TICKSIZE),
            mL    = SymbolInfoDouble(sym,SYMBOL_VOLUME_MIN ),  //MarketInfo(sym,MODE_MINLOT),
            lV    = ( tS*tV == 0.0 ) ? 0.0 : tV/tS, // LotValue
            //pV    = mL*lV,
            //TV    = mL*tV, // tgt*MinLot*lV => n* MinLot * tV
            M,P1,P2, D1,D2,
            minD = 9999999999999.9,  minD2 = 9999999999999.9;
   while (lV < 0.00000000000001 && n-->0 && MQLInfoInteger( MQL_PROGRAM_TYPE ) != PROGRAM_INDICATOR) { // ~4sec in total
      Sleep(20); // try it for 10 sec, wait to get data
      pt    = SymbolInfoDouble(sym,SYMBOL_POINT);
      digis = (int)SymbolInfoInteger(sym,SYMBOL_DIGITS);
      xp    = digis+1;
      tV    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_VALUE );  //MarketInfo(sym,MODE_TICKVALUE),///
      tS    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_SIZE );  //MarketInfo(sym,MODE_TICKSIZE),
      mL    = SymbolInfoDouble(sym,SYMBOL_VOLUME_MIN );  //MarketInfo(sym,MODE_MINLOT),
      lV    = ( tS*tV == 0.0 ) ? 0.0 : tV/tS; // LotValue
   }
   if ( lV < 0.00000000000001 ) { Alert(sym," is NOT aivailable (yet?), called from ",from,"  err: ",err(_LastError)); pip=0.0; dig=-99; return(false); } // No connection yet
   //Print("ini Pip10(",sym,"..,ref:",DoubleToStr(refValue,2),")  Digits: ",digis," TickVal: ",DoubleToStr(tiV,2));
   while(xp>-9) {

      M  = pow(10,xp);
      P2 = M*lV*2.0;
      P1 = M*lV;
      D1 = fabs(P1-refValue);
      D2 = fabs(P2-refValue);
      
      if ( D2 > minD2 && minD > minD2 ) {
         dig = -XP;
         pip = pow(10,-dig)*2.0;
         if ( pip < tS) { Alert(sym,": PIP(",DoubleToString(pip,digis),") is SMALLER than Ticksize(",DoubleToString(tS,digis),") "); pip=0.0; dig=-99; return(false); }
         return(true);
      }

      if ( D1 > minD && minD2 > minD ) {
         dig = -XP;
         pip = pow(10,-dig);
         if ( pip < tS) { Alert(sym,": PIP(",DoubleToString(pip,digis),") is SMALLER than Ticksize(",DoubleToString(tS,digis),") "); pip=0.0; dig=-99; return(false); }
         return(true);
      }
      minD2 = D2;
      minD  = D1;
      XP = xp;
      xp--;

   }
   pip=0.0; dig=-99;
   Comment(sym," is NOT aivailable (yet?)");
   return(false); // not set :()
}
 
Carl Schreiber:

De mon point de vue il n'existe pas de définition fixe ! C'est comme dans un jardin d'enfants, chaque courtier fait ce qu'il veut ! Je suis récemment tombé sur un swap de trois jours - qui s'applique normalement aux week-ends - qui est relevé le mercredi, et non le vendredi !


C'est quelque chose d'habituel d'appliquer le swap de trois jours le mercredi.

Vous pouvez le vérifier avec :

SymbolInfoInteger(symbol,SYMBOL_SWAP_ROLLOVER3DAYS)
 
Alain Verleyen:

Il est habituel d'appliquer un échange de trois jours le mercredi.

Vous pouvez le vérifier avec :

Pour moi, c'est un tour de passe-passe !