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
Que tal declarar uma variável do tipo enumerativa?
conversão enum implícita tst1.mq5 24 17
você também pode verificar EnumToString()...
Acho que o tipo sem as variáveis declaradas foi simplesmente descartado da compilação por não ter sido utilizado
Quero dizer, você pode declarar acidentalmente uma variável com o mesmo nome que no enumero já em uso e depois ter um tempo muito longo e doloroso procurando onde e onde eu atirei no meu joelho
Então, qual é o veredicto, senhores? Se eu escrever um programa .mq5 com .mqh (#incluir), posso escrever com segurança externamente e não ter medo de consequências inesperadas (como fiz no mql4), ou usar o input ?
Em MT5, use a entrada para declarar variáveis externas. O exterior na MT5 tem um propósito diferente.
Em MT5, use a entrada para declarar variáveis externas. O exterior na MT5 tem um propósito diferente.
Por que você não pode usar externamente no MT5? - Eu compilei meu exemplo no MT5, não vejo uma diferença fundamental
Por que o exterior não pode ser usado no MT5? - Eu compilei meu exemplo no MT5, não vejo nenhuma diferença fundamental
Porque as pessoas por hábito da antiga MQL4 estão tentando usar o exterior para parâmetros de entrada.
E no novo MQL4 e MQL5, a entrada é usada juntamente com #propriedade rigorosa, e externa é usada para outros fins.
Por isso, foi dito que não se deveria usar o exterior.
Porque as pessoas por hábito da antiga MQL4 tentam usar o exterior para parâmetros de entrada.
E na nova MQL4 e MQL5, a entrada é usada juntamente com #propriedade rigorosa, e externa é usada para outros fins.
É por isso que eu lhe disse para não usar o exterior.
Então todos estão tentando escrever um monte de bukuffs e o resultado é que eles NÃO devem usar SOMENTE em MQL5 e NÃO devem usar em nenhum outro lugar))))
Ok, aí vem o grande argumento, imho - se você vê o exterior em um código antigo, substitua-o por input e conserte todas as advertências, e que o poder da MQL o siga !!!!
Todos tentam escrever muitos bukuffs e acabam NÃO usando SOMENTE em MT5 ou NÃO usando em nenhum lugar ))))
Ok, aqui vem o grande argumento, imho - se você vê o exterior em um código antigo, substitua-o por input e corrija todas as advertências, e que o poder da MQL esteja com você !!!!
Eu não entendo muito do que está escrito aqui.
Mas eu pretendia não usar externamente na MQL5 e MQL4 com #propriedade estrita para declarar parâmetros externos de programas, mas para usar para o propósito descrito (vagamente) na ajuda.
Estive pensando, apenas um pensamento... Na MQL5, trabalhar com iCustom() não é muito mais problemático do que na MQL4 (ou geralmente com chamadas indicadoras na MQL4)? É assim? Se sim, então eu continuarei.
Comecei agora a aprender um pouco de MQL5...
Provavelmente vou começar um novo tópico.Estou apenas pensando... Na MQL5 é muito mais difícil trabalhar com iCustom() do que na MQL4 (ou geralmente com indicadores chamando na MQL4), não é mesmo? É assim? Se assim for, eu continuarei.
não mais problemático, é apenas que na MQL5 você tem que trabalhar com iCustom() em duas etapas:
1. obter a alça indicadora
2. Solicite os valores dos buffers indicadores através de CopyBuffer()
na MQL4 - iCustom() funciona como uma chamada de função com parâmetros - você a chama, recebe
na MQL5 funciona da mesma maneira - os desenvolvedores reduziram propositalmente a funcionalidade das funções incorporadas e tornaram o acesso às séries de tempos inconvenientes - eles recentemente adicionaram iClose(), iHigh() à MQL5, antes de precisarem copiar os dados para uma matriz como com CopyBuffer()
em geral, o MT5 tem mais escrita que o MT4
não mais problemático, é apenas que na MQL5 você tem que trabalhar com iCustom() em duas etapas:
1. obter a alça indicadora
2. Solicite os valores dos buffers indicadores através de CopyBuffer()
na MQL4 - iCustom() funciona como uma chamada de função com parâmetros - você a chama, recebe
na MQL5 funciona da mesma maneira - os desenvolvedores reduziram propositalmente a funcionalidade das funções incorporadas e tornaram o acesso às séries de tempos inconvenientes - eles recentemente adicionaram iClose(), iHigh() à MQL5, antes de precisarem copiar os dados para uma matriz como com CopyBuffer()
em geral, o MT5 tem mais escrita que o MT4
https://www.mql5.com/ru/forum/316800
Infelizmente, a implementação de variáveis externas na MQL5 não está finalizada, e é por isso que eu não recomendo usá-la - pode causar problemas. Refiro-me à falta de controle sobre a inicialização obrigatória dessas variáveisuma única vez .
Por exemplo, você pode escrevê-lo de tal forma:
e não haverá erro. Imagine que estas inicializações sejam realizadas em diferentes plugins. Então o resultado final dependerá da ordem na qual esses arquivos forem incluídos.
Ou podemos escrevê-lo desta forma (arquivo executável):
aqui não inicializamos a variável externa, mas também não há nenhum erro.
Assim, não há controle sobre se as mesmas variáveis estão ou não definidas em outros arquivos. Você pode acidentalmente mudar seu nome, mas o programa se compilará como se nada tivesse acontecido, embora em outros arquivos tenhamos uma variável com um nome diferente.
No total, não cabe em lugar algum. É por isso que é melhor usar funções em vez de variáveis externas. É garantido que elas têm apenas uma definição, nem mais nem menos.