Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 240

 

Il modo più produttivo e breve per determinare il giorno della settimana in base all'ora:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+3 )%7+1;
}

restituisce un valore compreso tra 1 e 7

1 - Lunedì

...

7 - Domenica

 
Nikolai Semko #:

7 - Domenica

Èpiù utile quando la domenica è zero.

 
fxsaber #:

Èpiù utile quando la domenica è zero.

forse allora:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+4 )%7;
}
 
Un'espressione matematicamente identica (evidenziata) può produrre risultati diversi nella pratica.
template <typename T>
T MathMin1( const T Num1, const T Num2 )
{
  return(Num1 < Num2 ? Num1 : Num2);    
}

template <typename T>
T MathMin2( const T Num1, const T Num2 )
{
  return(Num1 <= Num2 ? Num1 : Num2);    
}

void OnStart()
{
  Print(MathMin1(0.0, -0.0)); // -0.0
  Print(MathMin2(0.0, -0.0)); // 0.0
}
 
fxsaber # : Matematicamente la stessa espressione (evidenziata) può dare risultati diversi nella pratica.

Finché le due quantità sono uguali, una qualsiasi di esse è un minimo valido. Consideriamo MathMin(1, 1), non fa differenza se la funzione restituisce il primo (1) o il secondo (1).

Quindi, restituire 0,0 non è diverso da -0,0.

Modifica: a proposito, le due espressioni evidenziate NON sono identiche.
 
fxsaber #:
Matematicamente la stessa espressione (evidenziata) può dare risultati diversi nella pratica.

Si tratta di espressioni diverse, quindi il risultato è diverso. Cosa c'è di sbagliato qui?

Nel primo caso: 0 < 0? No. Viene restituito il secondo argomento.

Nel secondo caso: 0 <= 0? Sì, viene restituito il primo argomento.

 
Ihor Herasko #:

Sono espressioni diverse

fxsaber #:
Matematicamente la stessa espressione
 
fxsaber #:

I segni < e <= sembrano essere diversi.....

 
Ihor Herasko #:

I segni < e <= sembrano essere diversi.....

Vi rifiutate di capire.

 
fxsaber #:

Vi rifiutate di capire.

Non capisco nemmeno perché le espressioni evidenziate siano matematicamente uguali.