Erros, bugs, perguntas - página 750

 
Nos indicadores de gráficos em tempo real multi-temporais, o testador fica louco, é claro. Tudo é cada vez mais apertado.
 
x100intraday:
Nos indicadores de gráficos em tempo real multi-temporais, o testador fica louco, é claro. Tudo é afunilado.
Posso dar-vos um exemplo? Pergunto-me como será, porque nada está claro na explicação.
 
tol64:
Posso dar-vos um exemplo? Pergunto-me como será, porque pela explicação nada é claro.

Claro que pode. Assim que o terminar, vou torná-lo disponível gratuitamente. mas entretanto...

A questão é que, de acordo com as minhas suspeitas, o testador nunca pensou em trabalhar sem falhas em todos os períodos de tempo predefinidos, apenas segue adequadamente o período de tempo seleccionado para testes. Mas isto é apenas um sentimento, não tenho ideia de como funciona na realidade.

A propósito, terei de passar muito tempo a repará-lo sem uma corrida adequada no testador, porque terei de testar tudo em tempo real sem qualquer aceleração.

 

Aos promotores

Não compreendo a lógica ChartIndicatorDelete. Qual é o truque de trabalhar com nomes curtos?

Adicionar por manípulo e apagar por nome curto, é lógico?

Acho que devo mudar o parâmetro de nome para manuseamento, ou acrescentar uma duplicata da função com manuseamento.

 

Aos criadores de

Alguém pode explicar porque é que este código funciona no terminal sem erros, mas no testador com erros?

  if((FirstStart)&&(Handle_JRSX==INVALID_HANDLE))
  {
  Handle_JRSX = iCustom(NULL,PERIOD_D1,"3c_JRSX_H",20,240);
  
    if(Handle_JRSX==INVALID_HANDLE)ChartIndicatorAdd(0,1,Handle_JRSX);
  
  }

Natabela de testeIndicatorAdd retorna falso e o erro 4014 é exibido.

Aomesmo tempo, o modo visual no testador mostra que o indicador está no gráfico e é normalmente apresentado.

 
victorg:

Por favor, ajudem-me a compreender!

No processo dos meus cálculos recebo números cujo significado não é claro para mim.

Atribuo tal número à variável a e imprimo-o:

Resultado:

Mas de acordo com a documentação, o tipo duplo não pode ter poderes abaixo de -308. Quem sabe que tipo de números são?

É uma floresta escura...

Estou a tentar atribuir poderes

     double x,z;
     int y;
     x=-7.56414503782948460000;
     y=MathPow(
     10,         // основание 
     321      // показатель степени
     );
     z=x*y;
     Print("z = ",z);

Eu recebo

2012.06.11 09:55:30     dbl (EURUSD,M4) z = 16243877779.83916

mas

     double a=-7.56414503782948460000 e-321;
     int b=a;
     Print("b = ",b);

parece certo, transbordar e

2012.06.11 09:55:30     dbl (EURUSD,M4) b = 0

juntar-se à pergunta.

 

Existe alguma funcionalidade que lhe permita definir/alterar a altura do gráfico?

Se não existe tal funcionalidade, gostaria de a obter.

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

Floresta escura...

Tanto quanto eu entendi a norma IEEE 754, o menor valor de número positivo para o dobro é cerca de 2,3-10-308. Mas este valor corresponde a números normalizados, ou seja, os números que têm mantissa pelo menos igual a um. No entanto, existem também números não normalizados, números cujo valor de mantissa é inferior a um. Para estes números, o menor número positivo para o dobro é aproximadamente 5,0-10-324. O apoio de números não-normalizados levanta sempre muitas questões. Parece que a MQL5 suporta operações com númerosnão normalizados, embora o manual não diga nada sobre isso. Então levanta-se a questão, como deve funcionar o MathIsValidNumber() reagir a tais números?

Podemos garantir que a MQL5 não considera os números não normalizados iguais a zero

double a=-7.56414503782948460000 e-321;
PrintFormat("a = %.18e",a);
if(a==0.0)Print("a == 0.0");
else Print("a != 0.0");

obter

  a != 0.0
  a = -7.564145037829484600 e-321
Quanto aoseu exemplo

     double a=-7.56414503782948460000 e-321;
     int b=a;
     Print("b = ",b);

O número a é muito menor do que um em valor absoluto, pelo que o número inteiro b é também igual a zero. Isso é provavelmente correcto.

 
Interesting:

Aos promotores

Não compreendo a lógica ChartIndicatorDelete. Qual é o truque de trabalhar com nomes curtos?

Adicionar por manípulo e apagar por nome curto, é lógico?

Acho que devo mudar o parâmetro de nome para manuseamento, ou acrescentar uma duplicata da função com manuseamento.

Toda a funcionalidade necessária já existe, ver exemplo para IndicatorParameters()
 
Interesting:

Existe alguma funcionalidade que lhe permita definir/alterar a altura do gráfico?

Se não existe tal funcionalidade, gostaria de a obter.

Ver EA_OBJPROP_CHART_ID
Razão: