Veuillez expliquer ce qui pourrait clocher dans cette fonction. - page 7

 

Ce lien indique

Механизм обращения к серверу за данными не зависит от того, каким образом был инициирован запрос — пользователем при навигации по графику или программным способом на языке MQL5.


apparemment, il s'agit des données les plus anciennes, et les dernières données, les plus récentes, devraient être obtenues simplement parce que le graphique de l'instrument est ouvert ? Ou pas ?

Quelle est la différence entre l'obtention de données par différentes fonctions ?

 
Slawa:
Avez-vous lu l'intégralité de la documentation sur l'organisation de l'accès aux données?

Slava, tu as regardé ma demande ?

MQL5 : erreur #4806
Ouvert, Commencé : 2016.02.15 11:22, #1409574

L'entretien du cache par le biais de l'indicateur ne fonctionne pas.

Exécutez l'EA ci-jointe, après un certain temps vous obtenez une erreur dans les journaux.

 
Andrey Khatimlianskii:

Slava, tu as regardé ma demande ?

L'entretien du cache par l'intermédiaire de l'indicateur ne fonctionne pas.

Exécutez l'EA ci-jointe, obtenez une erreur dans les journaux après un certain temps.

Oui, je l'ai fait. Mais je n'y ai pas trouvé d'EA.

J'ai vérifié avec mon EA. Je répète : la présence d'un gestionnaire d'indicateur (dans mon cas iMA) empêche le déchargement du cache historique.

Envoyez votre EA ici (et vous pouvez le faire dans l'application ci-dessus) - je l'exécuterai dans différents terminaux. Voyons voir.

 
Alexey Viktorov:

Dimitri, n'est-ce pas étrange ? Il y a un nouveau bar, mais nous ne le compterons pas encore.

Ecoutez, n'est-ce pas la cause d'un tel comportement SeriesInfoInteger(_Symbol, PERIOD_D1, SERIES_LASTBAR_DATE) ; ? Une nouvelle barre est apparue, le tick est disponible le code est exécuté, mais le temps n'est pas encore pris en compte ???

En termes d'utilisation du temps - correct. Il est accepté que la limite supérieure de l'intervalle de temps spécifié ne s'applique pas. Mais dans ce cas, c'est gênant - oui.

A propos deSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE), je ne sais pas, je n'ai pas utilisé et n'utiliserai probablement pas, si j'ai besoin de l'heure de la barre, j'utiliserai CopyTime() ou CopyRates().

Les développeurs devraient faire un analogue de iBarShift(), réécrire un peu Bars() et ça marcherait.

 
Slawa:

Oui, je l'ai fait. Mais je n'y ai trouvé aucun conseiller.

J'ai vérifié avec mon EA. Je répète : la présence d'un gestionnaire d'indicateur (dans mon cas iMA) empêche le déchargement du cache historique.

Donnez votre EA ici (ou vous pouvez le faire dans l'application ci-dessus) - je vais l'exécuter dans différents terminaux. Voyons voir.

Le conseiller expert a été joint dans le premier message (zip, 58.91 KB). Vous n'avez pas de fichiers stockés quelque part ?

J'ai construit la version où tout a commencé et je l'ai attachée. Essayez-le. Les conditions de test et le fichier d'installation sont là aussi.

 
Dmitry Fedoseev:

En termes d'utilisation du temps, c'est exact. Il est accepté que la limite supérieure du temps spécifié ne s'applique pas à la gamme. Mais dans ce cas, c'est gênant - oui.

A propos deSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE) ; je ne sais pas, je n'ai pas utilisé et n'utiliserai probablement pas, si j'ai besoin de l'heure de la barre, j'utiliserai CopyTime() ou CopyRates().

Les développeurs devraient faire un analogue de iBarShift(), réécrire un peu Bars() et ça marcherait.

Accepté dans d'autres langages de programmation ?

Eh bien, obtenir la limite supérieure de l'intervalle est la moitié du problème. Ce que vous appelez "un inconvénient", je l'appelle une stupidité à laquelle vous pouvez vous habituer et envisager d'utiliser dans vos programmes.

J'ai simplement trouvé le comportement de la fonction inadéquat, et il n'y a pas d'autre nom pour cela, alors j'ai essayé de l'expliquer aux développeurs. Mais au lieu d'essayer de comprendre ce qui se passe... c'est tout... silence. Personne n'en a besoin.

J'ai aussi déjà renoncé à utiliser cette fonction et l'ai remplacée par CopyRates() juste par inertie continue à expliquer, probablement parce que le batteur a renommé le sujet pour que je demande un indice, et non pas signaler un problème dans mql5.

 
Andrey Khatimlianskii:

Le conseiller a été joint dans le premier message (zip, 58.91 KB). Vous n'avez pas les fichiers stockés quelque part ?

J'ai assemblé la version où tout a commencé et je l'ai jointe. Essayez-le. Les conditions de test et le fichier de réglage sont là aussi.

J'ai eu beaucoup de travail hier. Il s'avère qu'il y a une source zippée de l'Expert Advisor dans le premier message. C'est ce que j'utilise.
 
Alexey Viktorov:

Ayant simplement découvert le comportement inadéquat de la fonction, ce qui est la seule façon de le décrire, j'ai tenté de l'expliquer aux développeurs. Mais au lieu d'essayer de comprendre ce qui se passe... c'est tout... silence. Personne n'en a besoin.


Où voyez-vous un comportement inadéquat de la fonction ? Avez-vous lu attentivement la documentation?

SeriesInfoInteger

Renvoie des informations sur l'état des données historiques.

Renvoie des informations sur l'état des données historiques. Ne met pas à jour les informations, ne lance pas la pagination des données. Rend juste ce qui est actuellement là

 
Slawa:

Où voyez-vous un comportement inadéquat de la fonction ? Avez-vous lu attentivement la documentation?

Renvoie des informations sur l'état des données historiques. Ne met pas à jour les informations, ne lance pas la pagination des données. Rend juste ce qui est actuellement là

Si ça ne vous dérange pas, allez sur https://www.mql5.com/ru/forum/89213/page6#comment_2605980, tout y est.

SERIES_LASTBAR_DATE Heure de la dernière ouverture de barre par le symbole-période. Mais lorsqu'une nouvelle barre apparaît mais que la fonction la voit ou ne la voit pas, comment s'appelle-t-elle ? Culturellement parlant, cela s'appelle "fonctionnement INSTABLE de la fonction", ou simplement comportement inadéquat...

Deuxièmement, vous n'auriez pas dû dire des bêtises dans les premières réponses à ma candidature au SD.

 
Alexey Viktorov:

SERIES_LASTBAR_DATE Heure d'ouverture de la dernière mesure par caractère de période. Lorsqu'une nouvelle barre apparaît mais que la fonction la voit et ne la voit pas, comment cela s'appelle-t-il ? Culturellement parlant, le "fonctionnement INSTABLE de la fonction", ou simplement son comportement inadéquat...


Si les données historiques correspondantes ont été déchargées par le timeout, que doit retourner la fonction SeriesInfoInteger avec la requête SERIES_LASTBAR_DATE ?

Et qui vérifiera le résultat de GetLastError() ?

Votre demande à servicedesk s'appelle "Une condition étrange si(condition) n'est pas remplie". (Bon sang ! le SI ne fonctionne pas !!) Et c'est vous qui disiez n'importe quoi dans cette demande. Vous avez tout mélangé là-dedans. Relisez votre candidature dans un état plus calme, avec les yeux d'une personne extérieure.

Et il n'est pas nécessaire d'attaquer - il s'agit d'un forum technique, et les arguments doivent être préparés de manière compétente.