Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 108

 
-Aleks-:

Portanto, eu tenho uma sonda desse tipo - você pode colocar uma linha longa, mas eu preciso do dobro para cálculos com um ponto decimal.

Isto parece funcionar bem.

double CalcY=StringToDouble("0.01234567890001");
Print ("CalcY=",DoubleToString(CalcY,14));

2017.02.05 23:52:50.190 00 EURUSD,M1: CalcY=0.01234567890001

 
Vitalie Postolache:

Isto parece funcionar bem.

double CalcY=StringToDouble("0.01234567890001");
Print ("CalcY=",DoubleToString(CalcY,14));

Eu tenho 18 dígitos em um número.

 
-Aleks-:

Eu tenho 18 dígitos em um número.

Quem tem facilidade hoje em dia...

A saída de texto só tem até 16 caracteres, está escrita em preto e branco na documentação. E os cálculos são até o limite do tipo de dados.

 
Vitalie Postolache:

Quem tem facilidade hoje em dia...

A saída de texto só tem até 16 caracteres, está escrita em preto e branco na documentação. E cálculos - até o limite fornecido pelo tipo de dados.

Portanto, estou falando de cálculo - o número é simplesmente bom sem pré-formar em cadeia. Mas o cálculo duplo em si com um número é limitado, como eu o entendo, a 15 dígitos. Ou são 15 dígitos em ambos os sentidos - antes do ponto decimal e depois?

DBL_MIN

Valor positivo mínimo que pode ser representado pelo dobro

2.2250738585072014e-308

DBL_MAX

Valor máximo que pode ser representado por tipo duplo

1.7976931348623158e+308

DBL_EPSILON

O menor número para o qual a condição 1.0+DBL_EPSILON != 1.0 é atendida

2.2204460492503131e-016

DBL_DIG

Número de casas decimais significativas

15

DBL_MANT_DIG

Número de bits em mantissa

53

DBL_MAX_10_EXP

Valor decimal máximo do grau de expoente

308

DBL_MAX_EXP

Valor binário máximo do grau exponente

1024

DBL_MIN_10_EXP

Valor decimal mínimo do expoente

(-307)

DBL_MIN_EXP

Valor binário mínimo do grau exponente

(-1021)

 
-Aleks-:

Entendo que o dobro com um número é limitado a 15 dígitos. Ou são 15 dígitos em ambos os sentidos - antes e depois do ponto decimal?

O limite é de, no máximo, 15 dígitos, portanto a vírgula é irrelevante.

 
int Counter (int type, string sy, enum counterEnum{TIME_1_SY, TOTAL, LOCK})
{
...
}
Por favor, avise-me, quero declarar uma enumeração nos parâmetros da função, para que somente os seguintes valores possam ser selecionados como o terceiro parâmetro quando a função for chamada:
TIME_1_SY, TOTAL ou LOCK

Como implementar isto?

Descobri que, afinal, era muito simples:

enum CE {TIME_1_SY, TOTAL, LOCK};
int Counter (int type, string sy, int counterEnum)
{
...
}
 

Olá, você poderia me dizer o código para este programa?

se(ObjectFind("Rectângulo 33579")==0) Alerta("SIM");
outro Alerta("NÃO");

Ele sinaliza várias vezes "SIM", depois várias vezes "NÃO" se o objeto existe e o tempo todo "NÃO" se o objeto não existe, mas por que um simáforo assim quando o objeto existe?

 
Maksym Mudrakov:
int Counter (int type, string sy, enum counterEnum{TIME_1_SY, TOTAL, LOCK})
{
...
}
Por favor, avise-me, quero declarar uma enumeração nos parâmetros da função, para que somente os seguintes valores possam ser selecionados como o terceiro parâmetro quando a função for chamada:
TIME_1_SY, TOTAL ou LOCK

Como implementar isto?
Declare uma enumeração no âmbito global. E use a enumeração como um tipo de parâmetro na função.
 
vivatforex:

Olá, você poderia me dizer, por favor, aqui está o código do programa

se (ObjectFind("Rectângulo 33579")==0) Alerta("SIM");
senão Alerta ("NÃO");

Ele sinaliza várias vezes "SIM", depois várias vezes "NÃO" se o objeto existe e o tempo todo "NÃO" se o objeto não existe, mas por que um simáforo assim quando o objeto existe?

Experimente assim:

if (ObjectFind(0,"Rectangle 33579")<0) Alert("НЕТ");
else Alert("ДА");
 

Olá a todos.

Quem pode ver porque ele se exibe assim?

Isto é, as funções são propriedades diferentes, mas o visor é o mesmo.

Também com dois outros objetos do mesmo tipo, apenas um deles funciona, outros parâmetros são ignorados

Arquivos anexados:
Razão: