Une autre question : comment faire pression sur le développeur de l'environnement d'exécution du code MT4 et MQL, pour qu'il mette son esprit et sa main à développer un langage permettant de gérer les exceptions, comme dans mon exemple ou dans un sens similaire ?
Contactez servesdesk, créez un fil de discussion/sondage sur le forum.
Il n'y a pas si longtemps, MT4 était enterré. Ils n'ont pas une vision claire du marché, ils ont une vision claire de la régulation du marché.
Bonjour. Pouvez-vous m'indiquer comment résoudre ce problème ? J'ai besoin de trouver les prix ouverts des barres à un certain moment, par exemple à 01:00, en analysant par exemple les 50 dernières barres. Je ne suis pas sûr de la façon de procéder pour cette tâche dans mql5.
Que ce soit en calculant la date actuelle + en y ajoutant le temps nécessaire puis en ajoutant vingt-quatre heures, cette méthode a fonctionné sur mql4.
D'après ce que j'ai compris, mql5 a des structures spéciales avec une sortie de temps, mais pour une raison quelconque, je ne peux pas les utiliser.
Merci d'avance pour la réponse.
Je serais très reconnaissant si quelqu'un pouvait me lancer un peu de code pour comprendre le processus de réflexion.
Alex: Dans l'indicateur.
Ici, pour une meilleure compréhension, je conseille de regarder d'abord la numérotation des barres. Tout d'abord, nous devons comprendre comment est numérotée la barre la plus à droite de l'indicateur MQL5.
Pour ce faire, mettez le commentaire suivant dans l'indicateur de OnCalculate :
C'est-à-dire que, par défaut, la barre la plus à droite dans les tableaux d'indicateurs MQL5 a un index égal à "rates_total-1".
Pour en revenir à votre question - vous devez prendre les 50 dernières mesures et les traverser. Et analyser le temps d'ouverture de la barre (le tableau time[]), si le temps de la barre est égal à celui spécifié, retenir l'index de la barre. Ensuite, obtenez le prix ouvert du tableau open[] en utilisant cet indice.
Ici, pour que vous puissiez mieux comprendre par la suite, je vous conseille de commencer par regarder la numérotation des barres. C'est-à-dire que vous devez d'abord comprendre exactement comment est numérotée la barre la plus à droite dans l'indicateur MQL5.
Pour ce faire, mettez le commentaire suivant dans l'indicateur de OnCalculate :
Ce code produira ce résultat :
C'est-à-dire que, par défaut, la barre la plus à droite dans les tableaux d'indicateurs MQL5 a un index égal à "rates_total-1".
Pour en revenir à votre question - vous devez prendre les 50 dernières mesures et les traverser. Et analyser le temps d'ouverture de la barre (le tableau time[]), si le temps de la barre est égal à celui spécifié, retenir l'index de la barre. Ensuite, obtenez le prix ouvert du tableau open[] en utilisant cet indice.
Cela ressemble approximativement à ceci
Karputov Vladimir, merci beaucoup. Je vais m'en occuper. Je pense que mql5 a un accès plus flexible aux séries temporelles, mais c'est un peu compliqué pour les programmeurs "débutants". :))
Alex: Karputov Vladimir, merci beaucoup. Je l'apprécie vraiment. Je pense que mql5 a un accès plus flexible aux séries temporelles, mais c'est un peu compliqué pour les programmeurs "débutants". :))
Il s'agit de s'y habituer. Vous comprendrez alors que tout est structuré, facile et correct.
Je pense qu'ils sont responsables de la paire à laquelle l'indicateur est appliqué. Donc, il est impossible d'obtenir les mêmes informations sur une autre paire de devises ? En d'autres termes, la solution la plus universelle est de créer les mêmes tableaux de OCHL, uniquement par le biais de la fonction Copy... ?
Je comprends qu'ils sont responsables de la paire à laquelle l'indicateur est appliqué. Et sortir avec leur aide les mêmes informations sur une autre paire de devises est impossible... Donc, la solution la plus universelle est de créer les mêmes tableaux OCHL uniquement par la fonction Copy... ?
Lorsque vous accédez aux symboles d'autrui, il existe des nuances que vous devez comprendre et connaître : l'organisation de l'accès aux données. En d'autres termes, si vous demandez des données de séries chronologiques du symbole de quelqu'un d'autre, vous devez d'abord vous assurer que ces données sont préparées et existent. C'est la seule façon d'être sûr que les données demandées à partir du symbole d'une autre personne sont correctes.
Karputov Vladimir: Lorsque vous accédez aux caractères d'autres personnes, il existe des nuances que vous devez comprendre et connaître :Organiser l'accès aux données. En d'autres termes, si vous demandez les données de séries chronologiques de symboles de quelqu'un d'autre, vous devez d'abord vous assurer que ces données ont été préparées et existent. Ce n'est que de cette façon que vous pouvez être sûr que les données que vous demandez au personnage étranger sont correctes.
Je l'ai. Merci.
Une autre question est de savoir si vous convertissez toujours les valeurs en type chaîne de caractères dans la fonction Print(). Quel est le but de cette démarche ? Sans traduction, les types int, double, etc. sont affichés dans la fonction Print() exactement de la même manière.
Autre question : convertissez-vous toujours les valeurs en chaînes de caractères dans la fonction Print() ? Quel est le but de cette démarche ? Sans traduction, les types int, double, etc. sont affichés dans Print() exactement de la même manière.
La façon dont un nombre est stocké dans la mémoire de l'ordinateur et la façon dont il est sorti sont deux grandes différences. En particulier avec les nombres à virgule flottante, il est toujours préférable de limiter le nombre de décimales.
La façon dont un nombre est stocké dans la mémoire de l'ordinateur et la façon dont il est sorti sont deux grandes différences. En particulier avec les nombres à virgule flottante, il est toujours préférable de limiter le nombre de décimales.
C'est pourquoi j'essaie toujours de formater correctement la sortie des nombres en utilisantIntegerToString etDoubleToString.
Merci pour vos réponses et votre patience.
Vladimir, je suis probablement fatigué de toi :) Mais les progrès dans les domaines de base sont très lents. J'ai essayé de faire une tâche de test avec la fonction Copy... L'indicateur n'est pas dessiné, bien qu'il y ait des chiffres à Printe... Je ne comprends rien.
Dans un indicateur ou dans un EA/script ?
Yuri Evseenkov:
de moi à toi:
Une autre question : comment faire pression sur le développeur de l'environnement d'exécution du code MT4 et MQL, pour qu'il mette son esprit et sa main à développer un langage permettant de gérer les exceptions, comme dans mon exemple ou dans un sens similaire ?
Contactez servesdesk, créez un fil de discussion/sondage sur le forum.
Il n'y a pas si longtemps, MT4 était enterré. Ils n'ont pas une vision claire du marché, ils ont une vision claire de la régulation du marché.
Voir le post de Renat d'aujourd'hui :
...
Le développement de MT4 est arrêté et il n'y aura que des corrections et des cosmétiques.
Bonjour. Pouvez-vous m'indiquer comment résoudre ce problème ? J'ai besoin de trouver les prix ouverts des barres à un certain moment, par exemple à 01:00, en analysant par exemple les 50 dernières barres. Je ne suis pas sûr de la façon de procéder pour cette tâche dans mql5.
Que ce soit en calculant la date actuelle + en y ajoutant le temps nécessaire puis en ajoutant vingt-quatre heures, cette méthode a fonctionné sur mql4.
D'après ce que j'ai compris, mql5 a des structures spéciales avec une sortie de temps, mais pour une raison quelconque, je ne peux pas les utiliser.
Merci d'avance pour la réponse.
Je serais très reconnaissant si quelqu'un pouvait me lancer un peu de code pour comprendre le processus de réflexion.Dans l'indicateur.
Ici, pour une meilleure compréhension, je conseille de regarder d'abord la numérotation des barres. Tout d'abord, nous devons comprendre comment est numérotée la barre la plus à droite de l'indicateur MQL5.
Pour ce faire, mettez le commentaire suivant dans l'indicateur de OnCalculate :
Ce code produira ce résultat :
C'est-à-dire que, par défaut, la barre la plus à droite dans les tableaux d'indicateurs MQL5 a un index égal à "rates_total-1".
Pour en revenir à votre question - vous devez prendre les 50 dernières mesures et les traverser. Et analyser le temps d'ouverture de la barre (le tableau time[]), si le temps de la barre est égal à celui spécifié, retenir l'index de la barre. Ensuite, obtenez le prix ouvert du tableau open[] en utilisant cet indice.
Ça ressemble à ça :
Ici, pour que vous puissiez mieux comprendre par la suite, je vous conseille de commencer par regarder la numérotation des barres. C'est-à-dire que vous devez d'abord comprendre exactement comment est numérotée la barre la plus à droite dans l'indicateur MQL5.
Pour ce faire, mettez le commentaire suivant dans l'indicateur de OnCalculate :
Ce code produira ce résultat :
C'est-à-dire que, par défaut, la barre la plus à droite dans les tableaux d'indicateurs MQL5 a un index égal à "rates_total-1".
Pour en revenir à votre question - vous devez prendre les 50 dernières mesures et les traverser. Et analyser le temps d'ouverture de la barre (le tableau time[]), si le temps de la barre est égal à celui spécifié, retenir l'index de la barre. Ensuite, obtenez le prix ouvert du tableau open[] en utilisant cet indice.
Cela ressemble approximativement à ceci
Karputov Vladimir, merci beaucoup. Je l'apprécie vraiment. Je pense que mql5 a un accès plus flexible aux séries temporelles, mais c'est un peu compliqué pour les programmeurs "débutants". :))
C'est une question d'habitude. Vous constaterez alors que tout est structuré, facile et correct.
Une autre question. Les paramètres
Je pense qu'ils sont responsables de la paire à laquelle l'indicateur est appliqué. Donc, il est impossible d'obtenir les mêmes informations sur une autre paire de devises ? En d'autres termes, la solution la plus universelle est de créer les mêmes tableaux de OCHL, uniquement par le biais de la fonction Copy... ?Une autre question. Paramètres
Je comprends qu'ils sont responsables de la paire à laquelle l'indicateur est appliqué. Et sortir avec leur aide les mêmes informations sur une autre paire de devises est impossible... Donc, la solution la plus universelle est de créer les mêmes tableaux OCHL uniquement par la fonction Copy... ?Lorsque vous accédez aux caractères d'autres personnes, il existe des nuances que vous devez comprendre et connaître :Organiser l'accès aux données. En d'autres termes, si vous demandez les données de séries chronologiques de symboles de quelqu'un d'autre, vous devez d'abord vous assurer que ces données ont été préparées et existent. Ce n'est que de cette façon que vous pouvez être sûr que les données que vous demandez au personnage étranger sont correctes.
Je l'ai. Merci.
Une autre question est de savoir si vous convertissez toujours les valeurs en type chaîne de caractères dans la fonction Print(). Quel est le but de cette démarche ? Sans traduction, les types int, double, etc. sont affichés dans la fonction Print() exactement de la même manière.
Je l'ai. Merci.
Autre question : convertissez-vous toujours les valeurs en chaînes de caractères dans la fonction Print() ? Quel est le but de cette démarche ? Sans traduction, les types int, double, etc. sont affichés dans Print() exactement de la même manière.
La façon dont un nombre est stocké dans la mémoire de l'ordinateur et la façon dont il est sorti sont deux grandes différences. En particulier avec les nombres à virgule flottante, il est toujours préférable de limiter le nombre de décimales.
C'est pourquoi j'essaie toujours de formater correctement la sortie - en utilisantIntegerToString etDoubleToString.
La façon dont un nombre est stocké dans la mémoire de l'ordinateur et la façon dont il est sorti sont deux grandes différences. En particulier avec les nombres à virgule flottante, il est toujours préférable de limiter le nombre de décimales.
C'est pourquoi j'essaie toujours de formater correctement la sortie des nombres en utilisantIntegerToString etDoubleToString.
Merci pour vos réponses et votre patience.
Vladimir, je suis probablement fatigué de toi :) Mais les progrès dans les domaines de base sont très lents. J'ai essayé de faire une tâche de test avec la fonction Copy... L'indicateur n'est pas dessiné, bien qu'il y ait des chiffres à Printe... Je ne comprends rien.