[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 15

 
Novice >> :
Quelle est l'erreur ici et comment la mettre en œuvre ?

En fait, vous l'avez déjà mis en œuvre), il ne reste plus qu'à amener le lot final à une forme acceptable...

 
Novice a écrit(a) >>

Quelle est l'erreur ici et comment la mettre en œuvre ?

j'ai oublié de mettre ; à la fin de chaque ligne ! !!

 
neoclassic >> :
Pouvez-vous me dire s'il est possible de sortir un jpeg sur un graphique ?
 
Vous ne pouvez pas, vous pouvez créer votre propre police comme Wingding comme une image et la sortie...
 
xrust >> :

Qu'essayez-vous exactement de mettre en œuvre ?


Comptage automatique des lots : 0,01 lot pour chaque 50 unités de balance.
Figar0 >> :

Oui en fait vous avez déjà implémenté), il ne reste plus qu'à amener le lot final à une forme acceptable....


Il a donné 5 erreurs lors de la compilation, je n'ai pas compris pourquoi.

keekkenen a écrit >>

j'ai oublié de mettre ; à la fin de chaque ligne ! !!


Merci beaucoup. Ça a marché.
 
Bonjour, messieurs les programmateurs. Aidez-nous à réaliser ce programme. C'est un minuteur, mais il n'est pas sur MKL4, c'est une sorte de gaucher. C'est-à-dire qu'il ne s'agit que d'un programme. Cette minuterie décompte des intervalles de temps égaux et émet un signal. Mais les intervalles sont très courts. La plus longue est de 120 secondes, mais les intervalles doivent être plus longs, jusqu'à une demi-heure. Est-il possible de faire quelque chose ? Merci d'avance.
Dossiers :
tim_ngtrrg.rar  213 kb
 

Voici un exemple de fonction

bool isTime(int sec){
   bool res = false;
   static datetime time = 0;
   double min = 0;
   if (TimeCurrent() >= time){
      min = MathFloor( sec / 60);
      if ( min==0) min = 1.0;         
      time = iTime(NULL,PERIOD_H1,0) + (MathFloor(Minute()/ min) + 1) * min * 60;
      res = true;
   } 
   return( res);
}


la fonction renvoie vrai si un nombre donné de secondes s'est écoulé depuis le dernier appel de la fonction.

il est fait de cette façon, if ( ! isTime(Period()*60) ) return(0) ; ceci est vrai pour n'importe quelle période de temps...


dans la fonction, le point de départ est toujours le début de l'heure courante(iTime(NULL,PEROD_H1,0))

Par exemple, si vous voulez qu'une alerte apparaisse toutes les 111 secondes à partir du début du premier démarrage, vous pouvez modifier cette fonction...

il serait donc le suivant

bool isTime(int startTime, int sec){
   bool res = false;
   static datetime time = 0;
   double min = 0; 
   if (TimeCurrent() >= time){
      min = MathFloor( sec / 60);
      if ( min==0) min = 1.0;          
      time = startTime + (MathFloor(Minute()/ min) + 1) * min * 60;
      res = true;
   }  
   return( res);
}

pour qu'une alerte apparaisse toutes les 111 secondes se fait comme suit

int startTime = 0;

int init (){
   startTime = TimeCurrent();
}

int start(){

   if (! isTime(111)) return(0);

   Alert("Прошло 111 или более секунд !");
}
 
keekkenen >> :

Voici un exemple de fonction


la fonction renvoie vrai si un nombre donné de secondes s'est écoulé depuis la dernière fois que la fonction a été appelée.

if ( ! isTime(Period()*60) ) return(0) ; ce comportement s'applique à n'importe quelle période de temps.


dans la fonction, le point de départ est toujours le début de l'heure courante(iTime(NULL,PEROD_H1,0))

par exemple, si vous voulez qu'une alerte apparaisse toutes les 111 secondes après le premier démarrage, vous devez modifier cette fonction...

nous obtenons ce qui suit

pour que l'alerte apparaisse toutes les 111 secondes.





Merci, pourriez-vous me dire comment le formater : comme un script ou comme un conseiller ?

 
Eh bien, c'est à vous de voir où vous voulez l'utiliser... ça marchera là et là...
 

Pouvez-vous me dire s'il est possible d'augmenter le nombre de lots d'un ordre au marché sans en ouvrir de nouveaux ?