Questions des débutants MQL5 MT5 MetaTrader 5 - page 1169

 
BillionerClub:

Ono, ahaha, je cherchais ce fichier depuis si longtemps. SPC.

La recherche échoue parce que tout est dans un dossier caché AppData.

 

Je n'ai trouvé nulle part comment arrondir un double à la plus petite valeur la plus proche.

Exemple :

   double part1=1.9/12;
   double part2=NormalizeDouble(part1,2);
   
   Comment(part1,"\n", // 0.1583333333
           part2); // 0.16

Résultat arrondi à 0,16, si on compte : 0,16 * 12 = 1,92, soit un dépassement de 0,02 par rapport à 1,9.

Comment arrondir 0.15833333 à 0.15

 
Vitaly Muzichenko:

Je n'ai trouvé nulle part comment arrondir un double à la plus petite valeur la plus proche.

Exemple :

Résultat arrondi à 0,16, si on compte : 0,16 * 12 = 1,92, soit un dépassement de 0,02 par rapport à 1,9.

Comment arrondir 0.15833333 à 0.15

Pour plus de clarté

  int n=0.15833333*100;
  double m=n/100.0;
  string s=DoubleToString(m,2);
 
Alexey Viktorov:

Pour plus de clarté

Merci, ça marche comme il faut !

 
Désolé pour cette question stupide, mais que faire si l'écart est fractionné ? La fonctionCopySpread est de type int et si l'écart est de 0,8, elle renvoie 1.
 
VANDER:
Désolé pour cette question stupide, mais que se passe-t-il si l'écart est fractionné ? La fonction CopySpread est de type int et si l'écart est de 0,8, par exemple, elle renvoie 1.

Devrait retourner un '8'. Faire quelque chose de mal

 
Maintenant clarifié, l'écart sur l'instrument est d'environ 0,02 ce qui devrait retourner dans ce cas ?
 
VANDER:
Maintenant clarifié, l'écart sur l'instrument est d'environ 0,02 ce qui devrait être retourné dans ce cas ?

Avec qui avez-vous vérifié ?

 
VANDER:
Maintenant clarifié, le spread sur l'instrument est d'environ 0 ,02; que devrait-il rapporter dans ce cas ?

Ça ne marche pas comme ça.

 

Comme ceci par exemple

//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
MqlTick Last;
int sp1[1];
double sp2;
//+------------------------------------------------------------------+
int OnInit()
  {return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  { }
//+------------------------------------------------------------------+
void OnTick()
  {
   CopySpread("BR-2.20",PERIOD_CURRENT,0,1,sp1);
   SymbolInfoTick("BR-2.20",Last);
   sp2=Last.ask-Last.bid;
   Print((string)sp1[0]+", "+(string)sp2);
  }
//+------------------------------------------------------------------+

2020.01.03 21:16:32.818 Spred (BR-2.20,M1) 1, 0.0100000000000000512

2020.01.03 21:16:32.824 Spred (BR-2.20,M1) 1, 0.02000000000001023

2020.01.03 21:16:33.830 Spred (BR-2.20,M1) 1, 0.020000000001023

2020.01.03 21:16:34.371 Spred (BR-2.20,M1) 1, 0.0100000000000000512

2020.01.03 21:16:34.466 Spred (BR-2.20,M1) 1, 0.010000000000512

2020.01.03 21:16:34.570 Spred (BR-2.20,M1) 1, 0.0099999999999905

2020.01.03 21:16:34.585 Spred (BR-2.20,M1) 1, 0.00999999999999990905

2020.01.03 21:16:34.591 Spred (BR-2.20,M1) 1, 0.0199999999999999602

2020.01.03 21:16:34.629 Spred (BR-2.20,M1) 1, 0.00999999999999990905

2020.01.03 21:16:35.321 Spred (BR-2.20,M1) 1, 0.0199999999999999602

2020.01.03 21:16:35.335 Spred (BR-2.20,M1) 1, 0.0199999999999999602

2020.01.03 21:16:35.352 Spred (BR-2.20,M1) 1, 0.0199999999999999602

2020.01.03 21:16:35.684 Spred (BR-2.20,M1) 1, 0.0199999999999999602

2020.01.03 21:16:35.790 Spred (BR-2.20,M1) 1, 0.00999999999999990905

2020.01.03 21:16:35.981 Spred (BR-2.20,M1) 1, 0.00999999999999990905

2020.01.03 21:16:36.220 Spred (BR-2.20,M1) 1, 0.010000000000000000512

2020.01.03 21:16:36.235 Spred (BR-2.20,M1) 1, 0.0199999999999999602

2020.01.03 21:16:36.311 Spred (BR-2.20,M1) 1, 0.00999999999999990905

2020.01.03 21:16:36.769 Spred (BR-2.20,M1) 1, 0.00999999999999990905

2020.01.03 21:16:37.373 Spred (BR-2.20,M1) 1, 0.0199999999999999602

2020.01.03 21:16:38.049 Spred (BR-2.20,M1) 1, 0.0199999999999999602


Raison: