int spread=SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);
compilador é infeliz: possível perda de dados devido à conversão do tipo, porque o inteiro está em todo o lado. Claro, poderia deixar as coisas como estão, mas o aviso é um pouco incómodo.
compilador é infeliz: possível perda de dados devido à conversão do tipo, porque o inteiro está em todo o lado. Claro, poderíamos deixar as coisas como estão, mas o aviso é um pouco incómodo.
Faça-o desta forma:
int spread=(int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);
Sinto, contudo, que preciso de remediar a minha falta de conhecimento, porque enquanto que o meu exemplo acima esforçava o compilador, o meu exemplo abaixo não esforça o compilador, e a situação parece ser semelhante.
No entanto, sinto que preciso de eliminar a minha falta de conhecimento, porque se para o meu exemplo acima o compilador se esforçou, para o exemplo abaixo o compilador não se esforça, e a situação parece ser semelhante.
SymbolInfoInteger retorna um valor de tipo longo, que é de 64 bits. E a int é de 32 bits, pelo que o compilador gera correctamente um aviso.
No segundo caso, SymbolInfoDouble devolve um valor do tipo duplo e este é o mesmo tipo da sua variável de pedido. Portanto, não podem ocorrer aqui perdas (mesmo teoricamente) e o compilador não dirá uma palavra.
Comparando MT4 e MT5, vejo duas desvantagens ou imperfeições de MT5. A primeira não mostra as ordens pendentes no gráfico do testador e, por conseguinte, ao depurar algumas estratégias, não podemos ver no gráfico o resultado de que uma determinada ordem é feita. A segunda é a ausência ou a qualidade extremamente fraca da escala fixa. Se premir a opção "escala fixa" em MT4 e puder mover a tabela para cima e para baixo praticamente a qualquer distância, o que é muito conveniente. Por exemplo, em MT5, abri o mesmo gráfico durante 5 minutos, verifiquei "escala fixa" ... mas o gráfico não subirá nem descerá de todo. Isto é muito desconfortável. Claro que estes inconvenientes não são cruciais e podemos passar sem eles.
Obrigado, é que o padrão é um pouco estranho sem ele.
Configure o gráfico conforme precisar, e guarde o modelo com o nome por defeito
Não consigo entender porquê escrever:
compilador é infeliz: possível perda de dados devido à conversão do tipo, porque o inteiro está em todo o lado. Claro, poderia deixar as coisas como estão, mas o aviso é um pouco incómodo.
Não consigo perceber porquê para a gravação:
compilador é infeliz: possível perda de dados devido à conversão do tipo, porque o inteiro está em todo o lado. Claro, poderíamos deixar as coisas como estão, mas o aviso é um pouco incómodo.
Faça-o desta forma:
E leia isto: Conversão de tipoFaça-o:
E leia isto: Conversão de tipoSinto, contudo, que preciso de remediar a minha falta de conhecimento, porque enquanto que o meu exemplo acima esforçava o compilador, o meu exemplo abaixo não esforça o compilador, e a situação parece ser semelhante.
Obrigado, ajudou. Ter lido o artigo.
No entanto, sinto que preciso de eliminar a minha falta de conhecimento, porque se para o meu exemplo acima o compilador se esforçou, para o exemplo abaixo o compilador não se esforça, e a situação parece ser semelhante.
SymbolInfoInteger retorna um valor de tipo longo, que é de 64 bits. E a int é de 32 bits, pelo que o compilador gera correctamente um aviso.
No segundo caso, SymbolInfoDouble devolve um valor do tipo duplo e este é o mesmo tipo da sua variável de pedido. Portanto, não podem ocorrer aqui perdas (mesmo teoricamente) e o compilador não dirá uma palavra.
Costumava ver aqui uma secção dedicada aos bugs MT5 detectados, mas esqueci-me onde está ou como encontrá-los...