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

 
DC2008:

1. Si vous omettez les contrôles, vous pouvez faire comme ceci :

2. Oui

3. La question n'est pas claire.

1. A quoi servent les chèques ? Si sans eux, moins de ressources seraient gaspillées ?

2. Par exemple, dans mql4, il y a des noms de variables :

int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip=-1,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   MA_1_t,                          // Значен. МА_1 текущее
   MA_2_t,                          // Значен. МА_2 текущее 
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool 
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell

Dans quelle section de mql5 inscrire ces variables qui sont au-dessus dans le code qui sont dans mql4 dans int start ?

Les variables globales sont définies avant le démarrage de l'int. Tout le code de l'EA est tiré du tutoriel icihttps://с.mql4.com/book.

 
forexman77:

1. A quoi servent les chèques ? Si sans eux, moins de ressources seraient gaspillées ?

2. Dans mql4 il y a des noms de variables par exemple :

Dans quelle section de mql5 inscrire ces variables qui sont au-dessus dans le code qui sont dans mql4 dans int start ?

Les variables globales sont définies avant le démarrage de l'int. L'ensemble du code de l'Expert Advisor est repris du tutoriel icihttps://с.mql4.com/book.

1. Pour s'assurer que le conseiller fonctionne de manière fiable sur un compte réel.

Ce sont des variables locales et vous pouvez les copier dans la fonction OnTick, qui remplace le start() de la 4.

Toutefois, je tiens à vous avertir : les fonctions de trading ne doivent PAS être transposées une à une !

 
DC2008:

1. Pour un fonctionnement fiable de l'EA sur le réel.

2. Il s'agit de variables locales et vous pouvez les copier dans la fonction OnTick, qui remplace start() de la quatrième.

Cependant, je tiens à vous avertir que les fonctions de trading ne doivent PAS être copiées de l'une à l'autre !

Voulez-vous dire que certaines variables sont comptées différemment dans cinq ? Désolé, je ne connais encore rien à mql5, je ne peux donc pas vous comprendre complètement. Pourriez-vous me donner un exemple de la raison pour laquelle vous ne pouvez pas transférer des fonctions de mql4 à une autre ? Y a-t-il une branche du forum pour les nuls ?)

J'essaie d'insérer le code :

datetime iTimeMQL4(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}

Je vois des erreurs dans void OnTick() :

TFMigrate' - fonction non définie

Conversion implicite enum

J'ai essayé les mêmes erreurs dans int OnInit(). Qu'est-ce que je fais de mal ?

Dans mql5 nous mettons les drapeaux, les tickets, les lots stop et profit, etc. dans des variables globales qui doivent être stockées en dehors du code principal, c'est-à-dire que le principe est le même que dans mql4.

 
forexman77:

Voulez-vous dire que certaines variables sont comptées différemment dans 5 ? Je suis désolé, mais je ne connais rien à mql5 et je n'arrive pas à vous comprendre. Pourriez-vous me donner un exemple de la raison pour laquelle les fonctions mql4 ne peuvent pas être transférées les unes aux autres ? Existe-t-il sur ce forum une branche pour les personnes complètement idiotes) ?

Vous devriez abandonner le mql4 et ne pas traduire "bêtement" ligne par ligne, mais commencer à "danser du poêle" ! Il y a beaucoup d'exemples et de conseillers-experts prêts à l'emploi dans la base de données Kodobase et dans la livraison standard MQ pour le cinq. Si ce sont des "mathématiques supérieures" pour vous, alors commandez un EA dans la section "Travail".

Maintenant, les réponses à vos questions :

  1. Copiez la fonction TFMigrate de l'article, elle se trouve au début.
  2. En ce qui concerne les variables, le principe est le même.
 
DC2008:

Vous ne pouvez pas commencer à "danser du haut de votre tuyau de poêle" au lieu de traduire "bêtement" ligne par ligne ! Il y a beaucoup d'exemples et d'EA prêtes à l'emploi dans kodobase et dans le paquet standard MQ pour cinq. Si ce sont des "mathématiques supérieures" pour vous, alors commandez un EA dans la section "Travail".

Maintenant, les réponses à vos questions :

  1. Copiez la fonction TFMigrate de l'article, elle se trouve au début.
  2. En ce qui concerne les variables, le principe est le même.
J'essaie de mettre votre fonction
int HourMQL4(){MqlDateTime tm;TimeCurrent(tm);return(tm.hour);};
dans void OnTick(), il demande de le mettre dans le global 'HourMQL4' - la fonction ne peut être déclarée que dans la portée globale. Est-il vraiment nécessaire de le mettre là ? Si je le fais, il n'y aura pas d'erreur. Un point-virgule après une accolade est-il nécessaire ?
 
Comment déterminer l'heure actuelle en minutes depuis le début de la journée ?

J'y ai pensé de cette façon :

datetime  vrema=TimeCurrent(MqlDateTime{int hour;});
int tek_vrema= vrema*60;
Je ne suis pas sûr de la première ligne si le code est correct.
 
forexman77:
J'essaie de mettre votre fonction dans void OnTick(), il demande de la mettre dans le global 'HourMQL4' - la fonction ne peut être déclarée que dans la portée globale. Est-il vraiment nécessaire de le mettre là ? Si je le fais, il n'y aura pas d'erreur. Un point-virgule après une accolade est-il nécessaire ?

La fonction ne peut pas être incluse dans une fonction.

 
forexman77:
Comment déterminer l'heure actuelle en minutes depuis le début de la journée ?

J'y ai pensé de cette façon :

Je ne suis pas sûr de la première ligne si le code est correct.

C'est exact :

   MqlDateTime tm;
   TimeCurrent(tm);
   int tek_vrema=tm.hour*60;
 
Bonjour, pourriez-vous m'indiquer l'indicateur ou l'Expert Advisor qui notifie avec un bip après la formation d'une figure de chandelier comme dans l'image. Ie bip était après 7 bougies opposées, ou 6 bougies, donc ce nombre peut être changé. Merci.
 
DC2008:

C'est comme ça que ça se passe :

Merci beaucoup ! Ça marche.

Expliquez la logique de mql5. Dans mql4, int Hour() est utilisé pour déterminer le temps en heures. Dans mql5, il n'y a pas de telle constante, d'après ce que j'ai compris.

Comment le programme reconnaît-il que nous demandons le temps en heures ? Je suppose que c'est à partir deMqlDateTime?

Pour ajouter l'heure actuelle en minutes à l'heure actuelle en heures, c'est-à-dire pour connaître l'heure actuelle en minutes, la construction serait la suivante

 MqlDateTime tm;
 TimeCurrent(tm);
 int tek_vrema=tm.hour*60+tm.min;

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5