Erreurs, bugs, questions - page 1669
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
https://www.mql5.com/ru/docs/basis/preprosessor/compilation
Constant
Type
Description
indicateur du testeur
chaîne de caractères
Nom de l'indicateur personnalisé au format "indicator_name.ex5".Les indicateurs nécessaires aux tests sont déterminés automatiquement à partir de l'appel de la fonctioniCustom(), si le paramètre correspondant est spécifié comme une chaîne constante. Pour les autres cas (utilisation de la fonctionIndicatorCreate() ou utilisation d'une chaîne non constante dans le paramètre spécifiant le nom de l'indicateur) cette propriété doit être
IndicatorCreate - presque (aucune restriction sur le nombre de paramètres d'entrée) rudimentaire ?
Quel est le compteur ?
Si vous essayez de créer un code qui contiendra IndicatorRelease, mais qui n'appellera pas l'indicateur lui-même, vous ne pourrez pas le compiler, parce que vous devez passer un handle à IndicatorRelease, mais si vous n'appelez pas l'indicateur depuis le programme, vous n'obtiendrez pas de handle.
BlackTomcat:
Вчера обсуждали, страница 1687. :) Но читать лучше вот с этого сообщения на 1686-й странице: https://www.mql5.com/ru/forum/1111/page1686#comment_2790746 Кстати, человек на Ваш же вопрос отвечал. Просто получается, что схема такая. Запрос на вызов индикатора попадает в Терминал. Т.е. советник или скрипт не вызывают индикатор напрямую, терминал выступает посредником. В терминале происходит проверка, существует ли уже такой индикатор с указанными параметрами. Если да, то он возвращает программе, вызвавшей индикатор, хэндл (ссылку) на уже существующий индикатор. А в своих терминальных недрах помечает в счётчике, что был ещё один вызов на данный индикатор. Т.е. он ведёт учёт, сколько хэндлов на данный индикатор вернул. Когда кто-то делает IndicatorRelease, это не значит, что остальным, кто вызвал этот же индикатор с такими же параметрами, этот индикатор больше не нужен. Поэтому Терминал уменьшает счётчик на единицу, но оставляет индикатор активным, потому-что им ещё кто-то пользуется.
Merci ! Cela s'avère être une grande économie.
Si vous essayez de créer un code, qui contiendra IndicatorRelease, mais ne contiendra pas l'appel de l'indicateur lui-même, je pense que vous ne pourrez pas le compiler, parce que vous devrez passer un handle à IndicatorRelease, et si l'indicateur n'a pas été appelé depuis le programme, vous n'obtiendrez pas le handle.
Je peux passer la poignée par des variables globales. Il est donc tout à fait possible de l'utiliser.Et vous ne le faites pas. :) Ou du moins, n'appelez pas IndicatorRelease() pour un handle obtenu de cette façon. Si vous le faites, ce sera votre erreur, mais pas un bug de la langue, êtes-vous d'accord ?
Et j'écrirai un mauvais onglet pour le marché libre, qui, à un moment donné, passera en revue toute la gamme des int positifs et essaiera IndicatorRelease pour chacun.
Un tel script couvrira tous les Expert Advisors et indicateurs du terminal qui utilisait iCustom sans ChartIndicatorAdd.
Là encore, il s'agirait d'une action délibérée de votre part, et non d'un bug de langage. Pourquoi avez-vous écrit ça ?
Au fait, cette conversation a commencé par votre question sur la façon de vérifier la poignée de l'indicateur avant de l'utiliser. Vous ne pouvez pas le vérifier, mais si vous tentez d'utiliser un handle d'un indicateur fermé, vous obtiendrez l'erreur 4807 - suivez-la après chaque appel de CopyBuffer(), si elle renvoie -1.
Je peux passer la poignée par des variables globales. Il est donc tout à fait possible de l'utiliser.
Erreur d'exécution : 'accès au pointeur invalide' (*)
Qu'indique votre"A::a" ici ?