Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 206

 
Alexey Viktorov:
Avez-vous essayé de normaliser à 2 chiffres ?

Et normaliser quoi ? Le prix actuel et ensuite comparer..... avec quoi ?

Je ne sais pas dequoi vous parlez
.

 
Vyacheslav Kornev:

J'ai un mac book. Je ne peux même pas copier depuis le méta-éditeur.

Déchiffrez les valeurs et le type des variables dans le deuxième cas.
 
Victor Nikolaev:

Déchiffrez les valeurs et le type des variables dans le deuxième cas.





 
mila.com:

Bonjour.

Aidez-nous à corriger le fait que le prix actuel croise n'importe quel prix rond, et non un prix spécifique comme dans l'exemple.

Par exemple:

ou

static double prevBid=EMPTY_VALUE;

if (prevBid!=EMPTY_VALUE && prevBid<=levelPrice && Bid > levelPrice ) {

   /// цена пересекла уровень снизу вверх

}

prevBid=Bid;

 
mila.com:

Bonjour.

Aidez-nous à corriger le fait que le prix actuel croise n'importe quel prix rond, et non un prix spécifique comme dans l'exemple.

Par exemple:

ou

//===============================================================================================
//---------------------------- Возвращает ближайший круглый уровень ----------------------------+
//===============================================================================================
double GetUniversalLevel(int ne=100, string symb="0") {
 if(symb=="0") symb=Symbol();
 static double LastBid;
 double _Level=0, PriceStep=0, bid=0, point=0;
 bid=SymbolInfoDouble(symb,SYMBOL_BID);
 point=SymbolInfoDouble(symb,SYMBOL_POINT);
  if(LastBid<point) LastBid=bid;
   PriceStep=ne*point;
   _Level=MathRound(bid/PriceStep)*PriceStep;
  LastBid=bid;
  return(_Level);
 }

Appel à

//double R_Level = GetUniversalLevel(100, Symbol()); // круглые 100
double R_Level = GetUniversalLevel(50, Symbol()); // круглые 50
// дальше надеюсь разберётесь
Comment(R_Level );
 
Vyacheslav Kornev:






Essayons de substituer des valeurs dans la formule

if (St==7)
  {
     double Pris_Lin=0;
     Lots0=(L(OP_SELL)+(Bid-0)/10*Lotsc;  
     // Для Евро 
     // Lots0=(L(OP_SELL)+(1.10890-0)/10*0.1;
     // Lots0=(L(OP_SELL)+0.0110890;
     
     .....................
     if (Op_Pr>=Bid)
        Lots0=L(OP_SELL);
     if (Lotsc>Lots0) Loys0=Lotsc;
  }

Si la taille du lot est arrondie conformément aux exigences de la DoC, le lot augmentera de 0,01 ou restera le même.

Mais il n'y a pas d'arrondi, donc il y a juste une erreur - Volume de lot invalide.

 
Victor Nikolaev:


Essayons de substituer des valeurs dans la formule

Si la taille du lot est arrondie selon les exigences du DC, le lot augmentera de 0,01 ou restera inchangé.

Mais il n'y a pas d'arrondi, donc il y a juste une erreur - Volume de lot invalide.


En fait, Pris_lin est un prix, et il n'est jamais égal à zéro.
 
Vyacheslav Kornev:

En fait, Pris_lin est un prix et il n'est jamais égal à zéro.

Regardez attentivement le code que vous avez posté sur la page précédente.
 
Victor Nikolaev:

Regardez attentivement le code que vous avez posté sur la page précédente.

Oui, je vois ça. C'est pour ça que je demande de l'aide.
 
Victor Nikolaev:

Regardez attentivement le code que vous avez posté sur la page précédente.

J'ai besoin de prendre le prix et ensuite de calculer la différence par modulo et c'est tout ( Bid - Pris_lin)
Raison: