Erros, bugs, perguntas - página 1669
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
O programa MQ5 executa sempre automaticamente o IndicatorRelease de todas as pegas que criou após a execução estar concluída?
Ou é possível executar o indicador através do IndicatorCreate por um guião, depois passar a sua manipulação através de variáveis globais para continuar a trabalhar com o indicador?
https://www.mql5.com/ru/docs/basis/preprosessor/compilation
Constante
Tipo
Descrição
testador_indicador
corda
Nome do indicador personalizado no formato "indicator_name.ex5".Os indicadores necessários para os testes são determinados automaticamente a partir da chamada de funçãoiCustom(), se o parâmetro correspondente for especificado como uma string constante. Para outros casos (utilização da funçãoIndicatorCreate() ou utilização de uma cadeia não constante no parâmetro especificando o nome do indicador) esta propriedade deve ser
IndicatorCreate - quase (sem restrições no número de parâmetros de entrada) rudimento?
O que é o contador?
Se tentar criar um código que contenha IndicatorRelease, mas não chama o indicador em si, não o compila, porque tem de passar uma maçaneta ao IndicatorRelease, mas se não chamar o indicador a partir do programa, não vai receber maçaneta.
BlackTomcat:
Вчера обсуждали, страница 1687. :) Но читать лучше вот с этого сообщения на 1686-й странице: https://www.mql5.com/ru/forum/1111/page1686#comment_2790746 Кстати, человек на Ваш же вопрос отвечал. Просто получается, что схема такая. Запрос на вызов индикатора попадает в Терминал. Т.е. советник или скрипт не вызывают индикатор напрямую, терминал выступает посредником. В терминале происходит проверка, существует ли уже такой индикатор с указанными параметрами. Если да, то он возвращает программе, вызвавшей индикатор, хэндл (ссылку) на уже существующий индикатор. А в своих терминальных недрах помечает в счётчике, что был ещё один вызов на данный индикатор. Т.е. он ведёт учёт, сколько хэндлов на данный индикатор вернул. Когда кто-то делает IndicatorRelease, это не значит, что остальным, кто вызвал этот же индикатор с такими же параметрами, этот индикатор больше не нужен. Поэтому Терминал уменьшает счётчик на единицу, но оставляет индикатор активным, потому-что им ещё кто-то пользуется.
Obrigado! Isto acaba por ser uma grande poupança.
Se tentar criar código, que conterá IndicatorRelease, mas não conterá a chamada do próprio indicador, penso eu, não o compilará, porque terá de passar o cabo para IndicatorRelease, e se o indicador não tiver sido chamado pelo programa, não obterá o cabo.
Posso passar o cabo através de variáveis globais. Por conseguinte, é bastante possível utilizá-lo.E não o faz. :) Ou pelo menos não chame IndicatorRelease() para um cabo obtido desta forma. Se o fizer, será um erro seu, mas não um bug da língua, concorda?
E vou escrever um mau separador para o mercado livre, que a certa altura irá apenas passar por toda a gama de int positivo e tentar o IndicatorRelease para cada um.
Tal guião cobrirá todos os Expert Advisors e indicadores do terminal que utilizou iCustom sem ChartIndicatorAdd.
Mais uma vez, essa seria a sua acção deliberada, e não um bug linguístico. Porque é que escreveu isso?
A propósito, esta conversa começou com a sua pergunta sobre como verificar o manípulo indicador antes de o utilizar. Bem, não se pode verificar, mas numa tentativa de usar um manípulo de um indicador fechado, obterá o erro 4807 - basta localizá-lo após cada chamada de CopyBuffer(), se ele regressar -1.
Posso passar o cabo através de variáveis globais. Portanto, é bastante possível utilizá-lo.
Erro de execução: 'acesso ao ponteiro inválido' (*)