[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 438

 

Bonsoir à tous.

Pouvez-vous me dire comment trouver le prix maximum et minimum pour la dernière heure, le manuel ne parle que des dernières barres.

 
Question très triviale : je place un ordre en attente, je vérifie l'expiration par le temps, je règle le temps correct, mais lorsque le temps s'écoule et que l'ordre n'est pas ouvert, il n'est pas supprimé.
 
Je l'ai trouvé... Il n'y a rien d'écrit dans le journal de bord
 
Elektronik:

Bonsoir à tous.

Pouvez-vous me dire comment trouver le prix maximum et minimum pour la dernière heure, le manuel ne parle que des dernières barres.


Veuillez vous référer à la documentation pour une explication :

double valHigh = iHigh(Symbol(),PERIOD_H1,1);
double valLow  = iLow(Symbol(),PERIOD_H1,1);
 

Bonjour à tous !

Je commence tout juste à apprendre le MQL (s'il vous plaît, ne me jugez pas trop sévèrement).

J'ai une question à propos du tutoriel MQL4.

//--------------------------------------------------------------------
// stringarray.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
extern double Level=1.3200;                     // Заданный уровень 
string Text[101];                               // Объявление массива
//--------------------------------------------------------------------
int init()                                      // Спец. ф-ия init()
  {                                             // Присвоение значений
   Text[1]="один ";            Text[15]="пятнадцать ";
   Text[2]="два ";             Text[16]="шестнадцать ";
   Text[3]="три ";             Text[17]="семнадцать ";
   Text[4]="четыре ";          Text[18]="восемнадцать ";
   Text[5]="пять ";            Text[19]="девятнадцать ";
   Text[6]="шесть ";           Text[20]="двадцать ";
   Text[7]="семь ";            Text[30]="тридцать ";
   Text[8]="восемь ";          Text[40]="сорок ";
   Text[9]="девять ";          Text[50]="пятьдесят ";
   Text[10]="десять ";         Text[60]="шестьдесят";
   Text[11]="одиннадцать ";    Text[70]="семьдесят ";
   Text[12]="двенадцать ";     Text[80]="восемьдесят ";
   Text[13]="тринадцать ";     Text[90]="девяносто";
   Text[14]="четырнадцать ";   Text[100]= "сто";
   // Вычисление значений
   for(int i=20; i<=90; i=i+10)                // Цикл по десяткам
     {
      for(int j=1; j<=9; j++)                  // Цикл по единицам
         Text[i+j]=Text[i] + Text[j];          // Вычисление значения   
     }
   return;                                     // Выход из init()
  }
//--------------------------------------------------------------------
int start()                                     // Спец. ф-ия start()
  {
   int Delta=NormalizeDouble((Bid-Level)/Point,0);// Превышение 
//--------------------------------------------------------------------
   if (Delta>=0)                                // Цена не выше уровня
     {
      Alert("Цена ниже уровня");                // Сообщение
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------------
   if (Delta<100)                               // Цена более 100
     {
      Alert("Более ста пунктов");               // Сообщение
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------------
   Alert("Плюс ",Text[Delta],"pt.");            // Вывод на экран
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------

J'ai commencé le programme et il fonctionne.

Je ne sais pas comment il peut compter de 10 à 19, si l'opérateur de boucle "for(int i=20 ; i<=90 ; i=i+10)" compte à partir de 20 et "for(int j=1 ; j<=9 ; j++)" de 1 à 9.

Veuillez expliquer.

 
borilunad:

Cela fermera la moitié du terrain. Si OrderLots() = 0.03, alors 0.02 sera fermé et 0.01 restera. Et mettez le lot résultant dans OrderClose() à sa place après OrderTicket(). C'est clair maintenant ?
compréhensible - merci, sauf ........ comment le faire :) ?
 
kostural:
compréhensible - merci, mais voici ........ comment le faire :) ?


Où est-il clair que vous ne pouvez pas mettre le lot reçu dans OrderClose() à sa place après OrderTicket() ? Je ne peux pas l'expliquer autrement.

Voir la fonction OrderClose() dans la Doc ou l'aide du MetaEditor!

 
Pacman:

Bonjour à tous !

Je commence tout juste à apprendre le MQL (s'il vous plaît, ne me jugez pas trop sévèrement).

J'ai une question à propos du tutoriel MQL4.

J'ai commencé le programme et il fonctionne.

Je ne sais pas comment il peut compter de 10 à 19, si l'opérateur de boucle "for(int i=20 ; i<=90 ; i=i+10)" compte à partir de 20 et "for(int j=1 ; j<=9 ; j++)" de 1 à 9.

Veuillez expliquer.


Texte[i+j]=Texte[i] + Texte[j] ; // Calcul de la valeur

Qu'est-ce qui n'est pas clair ? dizaines+unités= dizaines+unités (Par exemple : 20+5= 20+5 sur une machine primitive signifie 25)

Commencez par l'arithmétique !

 
borilunad:


Texte[i+j]=Texte[i] + Texte[j] ; // Calcul

Qu'est-ce qu'il ne faut pas comprendre ? Dix + un = dix + un (Par exemple : 20 + 5 = 20 + 5 pour une machine primitive signifie 25)

Commencez par l'arithmétique !

Je ne comprends pas comment on obtient exactement le nombre 10, 11, 12, ...,19.

Dans le programme, l'instruction de boucle commence par 20, et de 1 à 9 ?

 
krutishc:
Question très triviale. Je place un ordre en attente, je vérifie le délai d'expiration, je règle le délai requis, mais lorsque le délai s'écoule et que l'ordre n'est pas ouvert, il n'est pas supprimé. Qu'est-ce que je fais de mal ?


Si aucune condition n'est remplie pour ouvrir un ordre, celui-ci ne sera pas ouvert. Et au bon moment, il sera tout simplement supprimé... Il y a un problème avec votre expirationTime....

délai d'expiration - délai d'expiration de l'ordre en attente. En secondes après 00:00 le 1er janvier 1970.