Domande da un "manichino" - pagina 104

 
220Volt:
Grazie, sembra che sia il momento di bruciare il libro del bisnonno ))))

Dalla storia: il libro del bisnonno ha specificamente lasciato long=int per la compatibilità del vecchio software.

Una volta abbiamo anche deciso - di lasciare l'"inutile" long come int e introdurre l'inumano int64 (o long int) o di fare "correttamente" usando puro long. Di conseguenza, abbiamo deciso che la procedura corretta è quella di usare long come un intero a 64 bit.

Long non è sempre a 32 bit in altri sistemi. Anche lo stesso compilatore per diverse architetture usa dimensioni diverse. Questo è quello che ha l'Intel C++:

The size of a "long" integer varies between architectures and operating systems.

The Intel Compiler is compatible and inter-operable with Microsoft* Visual C++ on Windows* and
with gcc* on Linux* and Mac OS X*. Consequently, the sizes of fundamental types are the same as
for these compilers. The size of  a long integer in particular depends on the operating system
and the targeted architecture as follows:

   OS         arch           size
----------------------------------
Windows       IA-32        4 bytes
Windows       Intel 64     4 bytes
Windows       IA-64        4 bytes
Linux         IA-32        4 bytes
Linux         Intel 64     8 bytes
Linux         IA-64        8 bytes
Mac OS X      IA-32        4 bytes

Mac OS X        Intel 64       8 bytes


In MQL5 usiamo l'architettura compatibile x64 bit che richiede lo stesso comportamento sia a 32 che a 64 bit. lungo è a 64 bit anche per questo motivo.


Un po' di storia, se vi ricordate: ai tempi di MSDOS, int era a 16 bit e uguale a short nei compilatori a 16 bit. Quando il programmatore è passato alla piattaforma a 32 bit, int è stato esteso a 32 bit ed è diventato uguale a short. Sembra che non ci siano state particolari lamentele. Quando siamo passati a 64 bit, long ha dovuto essere staccato da int. Ed è logico.

 

MqlRates tassi[];

Ho bisogno di trovare il valore massimo di rates[].high delle ultime tre barre

Non so come applicareArrayMaximum alla struttura?

 
dentraf:

MqlRates tassi[];

Ho bisogno di trovare il valore massimo di rates[].high delle ultime tre barre

Non so come applicareArrayMaximum alla struttura?

Per quanto ne so, questa funzione funziona solo con gli array numerici, quindi scrivete la vostra funzione per pasticciare con la struttura.
 
dentraf:

MqlRates tassi[];

Ho bisogno di trovare il valore massimo di rates[].high delle ultime tre barre

Non so come applicareArrayMaximum alla struttura?

double MaxHigh(const MqlRates& rates,int &index)
  {
   double max=0.0;
   index=-1;
//--- check
   if(ArraySize(rates)<3) return(EMPTY_VALUE);
//--- loop
   for(int i=0;i<3;i++)
      if(max<rates[i].high)
        {
         max=rates[i].high;
         index=i;
        }
//--- result
   return(max);
  }
Funziona così. ArrayMaximum non si applica alla struttura.
 
uncleVic:
Qualcosa del genere. ArrayMaximum non si applica alla struttura.
Grazie!
 

cosa significa?

CExpertBase::SetOtherSeries: la modifica delle serie temporali è vietata

 
CExpertBase::SetOtherSeries: la modifica delle serie temporali è vietata
cosa potrebbe significare?
 

Dimmelo per favore.

Dato:

  • Due processi (#1 e #2);
  • che funzionano in parallelo;
  • spazio di memoria dell'UE;
  • in un momento (in un ciclo), i processi cercano di fare quanto segue:

1. No.1 scrivere all'UE e No.2 leggere;

2. Scrivi #1 e #2 nell'UE;

Domanda: quale situazione è in conflitto? Sono più interessato al caso #1, possiamo considerarlo normale o l'accesso deve essere limitato? Ho il sospetto che il 1° caso non sia buono, come sarà il conflitto, valore poco chiaro, o aspettarsi qualcosa di più grave?

 
openlive:
CExpertBase::SetOtherSeries: la modifica delle serie temporali è vietata
Cosa significa questo?
Un po' più di dettagli... Qual è la prossima riga (preferibilmente diverse) nel registro?
 

220Volt:

Domanda: quale situazione è una situazione di conflitto? Sono più interessato al caso 1, questo può essere considerato normale o l'accesso deve essere limitato? Ho il sospetto che il caso 1 non sia buono, come sarebbe il conflitto, un valore poco chiaro, o dovrei aspettarmi qualcosa di più grave?

Entrambe le situazioni saranno in conflitto, con un valore poco chiaro.