[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 3

 
artmedia70:
Afficher tous les codes


Le truc, c'est que si on enlève la comparaison avec le MA, ça marche !

Si vous le rebranchez, il ne fonctionne PAS du tout !

int Stoch_1,Stoch_2,Ma_1,Ma_2;


int start()
  {
Ma_1=iMA(NULL,PERIOD_M5,5,0,MODE_LWMA,PRICE_CLOSE,1) ;
Ma_2=iMA(NULL,PERIOD_M5,15,0,MODE_LWMA,PRICE_CLOSE,1) ; 

Stoch_1=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_MAIN,1); 
Stoch_2=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
Print (Ma_1,"___",Ma_2);  // печатает 134 (GBPJPY)

if ( Hour()>10 && Hour()<20) 
 {
  if ( Ma_1 > Ma_2)       // если убрать строку- работает. Оставить - не работает       
      {
                      

//               if (Stoch_1>Stoch_2)


 { SetVLine(Blue, "", 0, 0, 1);} 
 
}}
     
     
  if ( Hour()>10 && Hour()<20) 
   {
  if ( Ma_1<Ma_2)       // если убрать строку- работает. Оставить - не работает    
     {
                               
 
 // if (Stoch_1<Stoch_2)                      
 

              {SetVLine(Red, "", 0, 0, 1);} 
  
  
}  }

} return(0); //}
//---------------------------
//+----------------------------------------------------------------------------+
void SetVLine(color cl, string nm="", datetime t1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[0];
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_TIME1, t1);
  ObjectSet(nm, OBJPROP_COLOR, cl);
  ObjectSet(nm, OBJPROP_STYLE, st);
  ObjectSet(nm, OBJPROP_WIDTH, wd);
  }
 
artmedia70:

MA_1 et MA_2 doivent être de type double.

Quel est votre type ?


"Mais j'ai toujours été la reine de coeur" (c) "12 Chairs"

et je les ai toujours mis en int

 
rigonich:
Oui, comme on vous l'a dit plus haut, si les variables sont de type int, elles donneront 1 pour les euras, car la conversion de1,3075 en type int donne 1, et vous imprimez probablement vos variables, et non les valeurs des moyennes.


gbkznm.... quelle honte !!! exactement ! int est un nombre ENTIER et double est un point flottant....

La honte !

 
lottamer:

et je les ai toujours mis dans l'int...

Je suis plein de connaissances ! :)))
 

TOUT SEMBLE FONCTIONNER ! !!

MERCI BEAUCOUP ! !!

J'ai pensé que c'était sur.... :))))))

 
TarasBY:
Connaissances - Pantalons complets ! :)))


Je me repends......
 
lottamer:


"Mais j'ai toujours été la reine de coeur" (c) "12 Chairs"

et j'en ai toujours eu dans l'int...


Les variables de type int sont des entiers, et lorsque vous les définissez sur un nombre comportant une partie fractionnaire, le nombre est d'abord arrondi au nombre entier le plus proche, puis la valeur de ce nombre est définie sur une variable int.
 
Si tu mets une variable double dans un int, je sais ce qui va se passer. Et si nous faisons l'opération inverse ? int versdouble ne sera pas pire, n'est-ce pas ?
 

Apprenez-moi, pour l'amour du Christ, à travailler avec des commentaires :

1. si un commentaire est déjà fait, ou en cours de réalisation, comment puis-je ne pas le coller, mais continuer à faire un autre commentaire, si, par exemple, la question a déjà reçu une réponse ?

2. si un code est inséré, comment faire pour insérer du texte en clair après l'avoir inséré ? Enter poursuit la saisie du texte comme code.

3. lors de la copie, certaines choses sont insérées par défaut, par exemple, lors de la copie de l'aide, la copie est insérée comme un lien.Comment puis-je coller la copie en texte brut ?

 
lottamer:
Si tu mets une variable double dans un int, je sais ce qui va se passer. Mais que se passe-t-il si l'on fait l'opération inverse ? int endouble n'aggravera pas la situation, n'est-ce pas?
Une variable ne peut être placée qu'à un certain endroit de la mémoire de l'ordinateur, qui a sa propre adresse et sa propre taille.Ce dont vous parlez s'appelle assigner à une variable de type double la valeur d'un nombre de type int.C'est possible, la valeur de cette variable serareprésentée comme un nombre de type double avec une partie fractionnaire égale à 0