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

 
Aleksey Vyazmikin:

OK, passons à la visualisation des pensées :)

Le blanc indique l'endroit où nous faisons la demande, le jaune le temps de barre que nous devrions obtenir.

Est-ce plus clair ? Si ce n'est pas le cas, veuillez poser des questions pour clarifier la situation.

Alexey, dans le post ci-dessus vous avez fait une demande pour une tâche REVEAL...

"J'ai besoin de la date de la dernière barre du cadre temporel actuel, qui se réfère à la barre sélectionnée du cadre temporel supérieur.

C'est clair ?"

Il est donc difficile de comprendre ce dont vous avez réellement besoin.

A la demande précédente - j'ai répondu - https://www.mql5.com/ru/forum/6343/page869#comment_7537714.

Si sur le dernier "avec visualisation des pensées", il suffit de demander l'heure d'ouverture de la barre du TF supérieur avec un décalage de 0.

Pas tout à fait clair - quel est le problème ?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2018.05.23
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Kirill Belousov:

Alexey, dans le post ci-dessus vous avez fait une demande pour une tâche de RETOUR...

"J'ai besoin de la date de la dernière barre du cadre temporel actuel, qui se réfère à la barre sélectionnée du cadre temporel supérieur.

Est-ce que c'est clair ?"

Il est donc difficile de comprendre ce dont vous avez réellement besoin.

A la demande précédente - j'ai répondu - https://www.mql5.com/ru/forum/6343/page869#comment_7537714.

Si sur le dernier "avec visualisation des pensées", il suffit de demander l'heure d'ouverture de la barre du TF supérieur avec un décalage de 0.

Pas tout à fait clair - quel est le problème ?

Désolé, j'ai manqué votre réponse.

Kirill Belousov:

Si j'ai bien compris votre demande, alors :

1. déterminer l'heure de fermeture de la barre requise de la TF supérieure.

C'est ce que je ne peux pas faire !

Kirill Belousov:

Si par ce dernier "avec visualisation des pensées", alors il suffit de demander l'heure d'ouverture de la barre du TF supérieur avec un décalage de 0.

Je ne suis pas très clair - quel est le problème ?

Si je le demande de cette façon, j'obtiens 10:00 et je dois obtenir le temps 23:49 !

 
Aleksey Vyazmikin:

OK, passons à la visualisation des pensées :)

Le blanc indique l'endroit où nous faisons la demande, le jaune le temps de barre que nous devrions obtenir.

Est-ce plus clair ? Si ce n'est pas le cas, veuillez poser des questions pour clarifier la situation.

Question :

A 10:30, nous devrions obtenir le nombre de barres de la période H1 avec l'heure 23:45 sur le graphique M5.

Est-ce que j'ai bien compris ?

 
Alexey Viktorov:

Question :

À 10h30, je dois obtenir le numéro de la barre de la période H1 avec une heure de 23h45 sur le graphique M5.

Ai-je bien compris ?

J'ai besoin d'obtenir le temps 23:45 dans ce cas (en fait, je n'ai pas M5, mais M1 TF actuel, mais cela n'a pas d'importance) - c'est le temps de la dernière barre du TF actuel dans la structure de la dernière barre du TF ci-dessus. Le décalage sur le graphique est de 1 barre pour H1, mais il peut y avoir un autre décalage, disons que je dois obtenir des informations à 11 heures, c'est-à-dire que le décalage sera de 2.

 
Aleksey Vyazmikin:

Désolé, j'ai manqué votre réponse.

C'est ce que je ne peux pas faire !

Si je demande cela, j'obtiens 10:00 et je dois obtenir un temps de 23:49 !

1. Définissez le décalage (barre) que vous souhaitez pour la TF haute. - Le temps entre l'ouverture et la fermeture de cette barre (d'après ce que je comprends), vous analysez les barres de la TF inférieure à l'intérieur de celle-ci.

2. Obtenir son heure d'ouverture

3. Ajoutez la durée de la TF en secondes pour cette TF à l'heure d'ouverture. - C'est ainsi que vous obtiendrez le temps de fermeture de la mesure du TF majeur.

4. soustraire la durée du TF junior (si M1, alors 60 secondes) - c'est l'heure d'ouverture de la dernière mesure du TF junior dans la structure du TF senior. Trouvez le décalage de cette barre en fonction du temps calculé. (Vous pouvez simplement soustraire 2 à 3 secondes du temps de fermeture de la mesure du TF majeur et trouver la mesure du TF junior à laquelle ce temps se réfère). Si la requête n'est PAS stricte, il suffit d'obtenir la barre disponible la plus proche sur la gauche (à partir de l'heure demandée), si soudainement la dernière barre sur le TF junior est absente.

 
Kirill Belousov:

1. déterminer le décalage (barre) nécessaire pour la TF supérieure. - Le temps entre l'ouverture et la fermeture de cette barre (si je vous comprends bien), vous analysez les barres de la TF inférieure à l'intérieur de celle-ci.

2. Obtenir son heure d'ouverture

3. Ajoutez la durée de la TF en secondes pour cette TF à l'heure d'ouverture. - C'est ainsi que vous obtiendrez le temps de fermeture de la mesure de la TF majeure.

4. soustraire la durée du TF junior (si M1, alors 60 secondes) - c'est l'heure d'ouverture de la dernière mesure du TF junior dans la structure du TF senior. Trouvez le décalage de cette barre en fonction du temps calculé. (Vous pouvez simplement soustraire 2 à 3 secondes du temps de fermeture de la mesure du TF majeur et trouver la mesure du TF junior à laquelle ce temps se réfère). Si la demande n'est pas stricte, il suffit d'obtenir la barre disponible la plus proche à gauche (à partir de l'heure demandée), au cas où la dernière barre de l'intervalle de temps le plus jeune serait absente.

Vous n'allez pas le croire, mais il y a une heure, j'ai écrit un algorithme similaire sur papier ! Mais c'est un peu pénible, je pensais qu'il y avait un moyen plus simple.

Seul le point 4 peut ne pas fonctionner, mon contrôle est au contraire - si la situation n'est pas standard, je dois faire tourner le temps jusqu'à ce que la barre sorte de la plage.

 
Les commentaires non liés à ce sujet ont été déplacés vers "Questions des débutants de MQL4 MT4 MetaTrader 4".
 

Je veux déclarer un tableau de structures - pas de problèmes, jusqu'à ce que je voie quelque part qu'une structure peut avoir un constructeur...

Comment déclarer un tableau de structures avec un constructeur ? (Je sais comment me débarrasser de ce constructeur)

ça marche :

struct MyStruct
  {
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; }
  };
//+------------------------------------------------------------------+
MyStruct cluster(100);

ne fonctionne pas, mais je le veux :

struct MyStruct
  {
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; }
  };
//+------------------------------------------------------------------+
MyStruct cluster(100)[47];
 

Une mauvaise solution. Il est préférable d'utiliser des classes plutôt que des structures. C'est la même chose, mais vous pouvez travailler avec des pointeurs.

class MyClass : 
  {
   public:
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; } // этого не надо
  };
//+------------------------------------------------------------------+
MyClass * cluster[47];

for(int n = 0; n < 47; n++)
        cluster[n] = new MyClass;

Je l'ai écrit dans mon navigateur, je ne pense pas m'être trompé. Je suis sorti pendant une heure.

 
Je sais, je sais que mettre des variables en public est inconfortable, mais je n'ai pas le temps.