Erros, bugs, perguntas - página 1814

 
Alexey Kozitsyn:

Erro na determinação do tipo de parâmetros indicadores ENUM_DATATYPE.

Podemos ver que TYPE_COLOR(#6) mostra TYPE_UINT em vez de TYPE_DATETIME (#9), TYPE_LONG em vez de TYPE_FLOAT(#12), TYPE_DOUBLE em vez de TYPE_DATETIME. Embora os tipos TYPE_COLOR, TYPE_DATETIME e TYPE_FLOAT estejam descritos na enumeração e devam ter os seus próprios valores!

No entanto, é possível ver a lógica no resultado. Mesmo a flutuação->double pode ser explicada. Truncaria ainda mais o número de tipos de saída. Neste sentido, o ENUM_DATATYPE parece excessivamente amplo.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:

A lógica no resultado é, no entanto, visível. Mesmo a flutuação->double é explicável. Truncaria ainda mais o número de tipos de saída. Neste sentido, o ENUM_DATATYPE parece demasiado amplo.

Não vejo lógica na descrição explícita do enumerador ENUM_DATATYPE na documentação e cada membro tendo o seu próprio número. Também não vejo qualquer lógica em olhar para o tamanho em bytes de flutuação e tipos duplos.
 
Alexey Kozitsyn:
Não vejo a lógica quando a documentação descreve explicitamente o enumerador ENUM_DATATYPE e cada membro tem o seu próprio número. Também não vejo a lógica em olhar para o tamanho em bytes de flutuação e tipos duplos.
Bem, eu deixaria apenas os tipos inteiro (int) e "real" (duplo) - a partir de números.
 
fxsaber:
Bem, eu só deixaria os tipos int e duplo - de números.
O exemplo mais simples: de acordo com a sua lógica, um tipo de variável é int. Cria-se uma variável deste tipo. Quer escrever valor = 2 aí. Mas na verdade o tipo era bool. O que fazer então?
 
Alexey Kozitsyn:
O exemplo mais simples: Obteve uma variável do tipo int pela sua lógica. Cria-se uma variável deste tipo. Quer escrever valor = 2 aí. Mas o valor é na verdade bool. O que fazer então?
void f( bool ) {}

void OnStart()
{
  f(2);
}
 
fxsaber:
void f( bool ) {}

void OnStart()
{
  f(2);
}
Muito bem, mas estará a operar com um valor de 1. Haverá uma série de erros difíceis de encontrar.
 
Alexey Kozitsyn:
Muito bem, mas estará a operar com um valor de 1. Haverá uma série de erros difíceis de encontrar.
Não haverá erros. Nem sequer os consegue inventar.
 
fxsaber:
Não haverá erros. Nem sequer os consegue inventar.
Só porque não se pode fazer algo, não significa que não possa ser. Vamos esperar pela resposta do SD.
 
Alexey Kozitsyn:
Só porque não se pode fazer algo, não significa que não possa ser. Vamos esperar pela resposta do SD.
Os criadores têm a sua própria visão. Não se pode realmente chegar a uma situação errónea na variante int&double.
 
Erro de desinicialização! Aplicação#1677278!