Características da linguagem mql5, subtilezas e técnicas - página 182
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
Por exemplo, eu apago todos os objectos do meu VDS. Só não quero sobrecarregar o horário. E não há lá necessidade deles. Utilizo globais. Portanto, tudo depende da situação.
Olha, não gosto deles por uma razão:
Olha, há uma razão para não gostar deles:
Bem, não há necessidade de o ler. Pode usar GlobalVariableCheck para verificar se a variável está ou não lá. Pode fazer o mesmo com objectos.
Por isso, basta criar/verificar/apagar uma variável.
Vladimir Simakov:
2. Disponibilidade de variáveis fora do programa.
sem problemas, todas as funções que funcionam com variáveis globais têm um valor de retorno - o resultado da operação
existe uma ferramenta de sincronizaçãohttps://www.mql5.com/ru/docs/globals/globalvariablesetoncondition , não é muito, mas use o que lhe é oferecido
Mas o grande inconveniente é o tipo de dados - apenas duplo , não gosto do duplo , mesmo que apenas ulong pudesse ser usado, e a organização de nome / valor ---> string / duplo causa um desejo de trocar - escrever dados em string e chave em duplo - mais para uma operação pode ser escrito / lido
mas tendo estimado todas estas "coisas" Pode escrevê-los em ficheiros binários, ou seja, liberdade total e sem incertezas.
provavelmente é necessário saber como trabalhar com eles
@fxsaber mostrou exemplos de trabalho com qualquer tipohttps://www.mql5.com/ru/forum/320395/page6#comment_12910394
Bem, não há necessidade de ler. Pode simplesmente usar GlobalVariableCheck para verificar se a variável existe ou não. Faz-se o mesmo com objectos.
Por isso, basta criar/verificar/apagar uma variável.
Sim, um conflito trivial de nomes e a corda no outro robô
GlobalVariableDel(yourValueName);
perderá o seu depósito))))
Dizer que o nome será único, que o outro robô nunca estará lá, que a criança/esposa/amigo/bêbado nunca chegará perto do terminal de batalha))) Concordo, mas a probabilidade não é zero, o que significa que o código se torna pouco fiável.
É um conflito de nomes trivial e a linha do outro robô
irá drenar-vos do vosso depósito))))
Dirá que o nome será único, que o outro robô nunca estará lá, que a criança/esposa/amigo/bêbado nunca se aproximará do terminal de batalha)))) Concordo, mas a probabilidade não é zero, o que significa que o código se torna pouco fiável.
Tretas e fantasia
Uma EA em dinheiro funciona SEMPRE a partir de um terminal separado, no seu próprio VDS (ou mesmo servidor) e nunca ninguém se mete com ele.
Tretas e fantasia
Uma EA sobre o dinheiro funciona SEMPRE a partir de um terminal separado, no seu próprio VDS (ou mesmo servidor) e nunca ninguém se mete com ele.
O que quer dizer SEMPRE? Hoje - sempre, amanhã pode calcular de forma diferente. E nem todos parecem estar de acordo consigo.
Salientei o perigo real da utilização de variáveis globais do terminal. Isto não é bom nem mau - é um dado que os criadores nos deram, só precisamos de estar cientes disso e de o ter em conta.
O mesmo fio
GlobalVariablesDeleteAll();
feito em qualquer argumento e oops...
Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais
Peculiaridades de mql5, dicas e truques
Vladimir Simakov, 2020.05.24 17:02
O mesmo fio
GlobalVariablesDeleteAll();
...feito em qualquer guião e oops.
O mesmo se passa com os objectos gráficos.
ObjectsDeleteAll(...
Apenas os recursos da EA não podem ser alterados por outros programas.
Colegas, por favor ajudem-me a fazer uma macro, se de todo possível.
Preciso de declarar dinamicamente uma matriz bidimensional. E a segunda dimensão também deve ser alterada. Isto é algo parecido com este laço:
É claro que o compilador não vai conseguir fazer isso:
Eu gostaria de ver uma macro como:
Em vez de uma linha:
double d_array[][would_be_size2];
Obrigado.
Colegas, por favor ajudem-me a fazer uma macro, se de todo possível.
Preciso de declarar dinamicamente uma matriz bidimensional. E a segunda dimensão também deve ser alterada. Isto é algo parecido com este laço:
É claro que o compilador não vai conseguir fazer isso:
Gostaria de ver uma macro como a seguinte:
Em vez de uma linha:
Obrigado.
Mas a criação de uma matriz de tamanho (máximo) suficiente fora do laço é dificultada pela política ? :-)
A abordagem acima (recriar sempre a matriz no laço) não ganha nada em termos de velocidade ou consumo de memória.
Gostaria de ver uma macro semelhante a esta:
Não vai funcionar.