Erreurs, bugs, questions - page 568

 
x100intraday:

https://www.mql5.com/ru/docs/basis/function/events dit à la fin :"Pour une meilleure compréhension, il sera utile d'exécuter l'indicateur dont le code est joint ci-dessous. "

Exécutez le code. Pendant le week-end. Il n'y a pas eu de meilleure compréhension - c'était bien comme ça, je pense, mais les pires impressions ont été ajoutées. Il n'y a pas de ticks pendant le week-end, donc prev_calculated = 0 à ce moment-là toujours, quand on passe d'une période à l'autre :

Cependant, à un moment donné, cette valeur apparaît (pas de reconnexion, honnêtement noble !) :


Dois-je m'attendre à ce que le comportement erratique du terminal soit éliminé ? Ou dois-je apprendre les mathématiques ?


Étudier, car c'est écrit dans la documentation - Indicateurs techniques:

Toutes les fonctions comme iMA, iAC, iMACD, iIchimoku, etc., créent une copie de l'indicateur technique correspondant dans le cache global du terminal client. Si une copie de l'indicateur avec ces paramètres existe déjà, une nouvelle copie n'est pas créée, mais le compteur de références à cette copie est augmenté.

...

Note: l'utilisation répétée d'une fonction d'indicateur avec les mêmes paramètres dans un programme mql5 n'augmente pas le compteur de référence plusieurs fois, le compteur sera augmenté une seule fois par 1.

Cela signifie que lorsque vous démarrez l'indicateur pour la première fois (lorsque vous passez à un nouveau cadre temporel pour la première fois ), les valeurs de l'indicateur n'ont pas encore été calculées, donc prev_calculated=0. Lorsque vous revenez à ce cadre temporel, l'indicateur n'est pas créé à nouveau, puisque son handle est toujours vivant. Par conséquent, prev_calculated!=0
 
x100intraday:

Cependant, à un moment donné, cette valeur apparaît (pas de reconnexion, honnêtement noble !) :

et des lignes amusantes sur le graphique :

ou à moitié aussi joyeux, comme ça :

Il y avait même des lignes au début de l'histoire sous forme de ZigZag(hélas, j'ai oublié de faire une capture d'écran et je n'ai pas pu la reproduire).

Des lignes apparaissent également sur d'autres TF, mais de manière plus éparse. Vous pouvez facilement le constater par vous-même.

Est-ce que c'est exactement ce que les auteurs voulaient dire ?

En fait, il existe une section intitulée Initialisation des variables:

Toute variable peut être initialisée lors de sa définition. Si une variable n'est pas explicitement initialisée, la valeur stockée dans cette variable peut être n'importe quoi. L'initialisation implicite n'est pas faite.

Vous avez déclaré un tampon indicateur, mais les valeurs qu'il contient ne sont pas définies. Par conséquent, le système exécutif du terminal lui alloue toute partie disponible de la mémoire, où le tampon indicateur avec les valeurs de Zigzag peut se trouver.
 
x100intraday:

Il y a eu une situation récente où la conception :

Le programme n'a imprimé que la valeur du premier Print, mais il était inutile d'attendre que les valeurs des éléments du tableau soient imprimées. Après avoir supprimé la première impression et recompilé, la sortie cyclique des éléments du tableau a commencé instantanément. S'agit-il d'une conspiration secrète des Princes contre la communauté MQL5 ou suis-je le seul à être malchanceux ?

De plus, je tiens à noter que ces cas étranges de comportement du terminal n'ont pas été observés sur une instance de MT5 surchargée de fenêtres graphiques, d'objets graphiques et de programmes MQL, mais seulement dans une seule fenêtre graphique propre (sans compter le contour d'un indicateur en cours).

Écrivez au service d'assistance, il s'en occupera.

PS Et lisez la section Programme en cours d'exécution

 
Karlson:

Oui... c'est la même chose en principe...

Sur les 5 fonctions qui utilisent OrderSend(), deux d'entre elles donnent invariablement l'erreur Invalid Request.

Je ne vois pas d'erreurs ou de différences fondamentales par rapport aux variantes de travail.

Le problème se situe dans la version Terminal (build 540 de la 11.11.11). La prophétie s'est réalisée ! !!

 
MoneyJinn:

Sur les 5 fonctions qui utilisent OrderSend(), deux d'entre elles donnent constamment l'erreur Invalid Request.

Je ne trouve pas d'erreurs ou de différences fondamentales par rapport aux variantes de travail.

Le problème se situe dans la version Terminal (build 540 de la 11.11.11). La prophétie s'est réalisée ! !!

J'ai réécrit tout cela à travers CTrade très rapidement, cela fonctionne bien, facile et efficace.
 

week-end amusant avec la construction du 540 :


Après l'avoir installé, il continue de s'afficher ==>

code de retour 10013 et demande invalide lors de l'établissement d'une commande.

 
blef:

week-end amusant avec la construction du 540 :


Après l'avoir installé, il continue de s'afficher ==>

code de retour 10013 et demande invalide lors de l'établissement d'une commande.

Pouvez-vous fournir le code source pour la reproduction ? Écrivez au Service Desk s'il vous plaît.
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
Rosh:

En fait, il existe une section intitulée Initialisation des variables:

Vous avez déclaré un tampon indicateur, mais les valeurs qu'il contient ne sont pas définies. Par conséquent, le système exécutif du terminal lui alloue toute pièce de mémoire disponible, à laquelle le tampon indicateur avec les valeurs Zigzag peut se produire.

Rosh, l'ironie de ma situation est que je n'ai pas utilisé l'indicateur ZigZag ou ses équivalents depuis des années et que la machine est redémarrée quotidiennement. Je n'ai aucun vestige de ZigZags ou autre dans ma mémoire.

Pour ce qui est de l'apprentissage des bases, c'est certain, vous ne pouvez pas vous en passer. La seule question est de savoir si elle va me décevoir...

 
x100intraday:

Rosh, l'ironie de ma situation est que je n'ai pas utilisé l'indicateur ZigZag ou ses équivalents depuis des années, et que la machine est redémarrée quotidiennement. Je n'ai aucun vestige de ZigZags ou autre dans ma mémoire.

Pour ce qui est de l'apprentissage des bases, c'est certain, vous ne pouvez pas vous en passer. C'est juste une question de savoir si elle va me décevoir...

Peu importe, les déchets dans les tampons peuvent dessiner n'importe quoi si vous ne les initialisez pas.

Vous me demandez avec tant de coquetterie de vous convaincre de l'inutilité de l'effort, nous ne pouvons donner aucune garantie, car je connais plus que MQL5 de vous deux - l'Apprenti et MQL5.

 
Rosh:

Vous demandez de manière si coquette de vous convaincre de la futilité de vos efforts, aucune garantie ne peut être donnée,

De telles demandes n'ont pas tellement de valeur, car elles ne sont pas le point ; personnellement, je me souviens d'une demande explicite majeure pour aider à trouver le problème avec le non-dessin primaire, même posté trois codes source avec des explications. La demande est passée inaperçue - je devais compter sur moi-même. Puis une suggestion de regarder un code plus complexe, que je ne pouvais toujours pas réparer moi-même. C'est tout ce qui me manque pour le moment.

Et pour les explications précieuses et les liens vers la documentation - merci comme toujours, je vais absolument me pencher sur la question.

Rosh:

...Puisque j'en sais plus sur MQL5 que vous deux - le conseiller expert et MQL5.


On reconnaît un oiseau à son vol, et un programmeur à son code. La proposition d'y jeter un coup d'œil tient toujours, facepalm garanti.

Raison: