Riferimenti alle matrici - pagina 4

 
Voglio dire indicatore buffer nove, ma il significato è lo stesso.
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 

TheXpert:

Ho bisogno di un array normale senza copiare

Il modo è quello di fregare la struttura dell'array. Cioè infilare un puntatore alla serie temporale invece di un puntatore all'array, insieme a parametri adeguati, in modo che la struttura pensi di essere a posto.

aha, capito!

e poi tirare una struttura invece di un riferimento ad un array attraverso le funzioni...

la struttura è come staccata dall'array, ma si possono ancora ottenere dati da

ArrayStore::double x[];
 
sergeev:
Bingo! :)
 
Ora non resta che decollare :)
 
sergeev:
ora non resta che decollare :)
Riesci a sentire la prospettiva? Teoricamente, si potrebbe fare lo stesso con qualsiasi cosa, compresi gli oggetti.
 
TheXpert:
Si può avere una prospettiva? Teoricamente, la stessa cosa può essere fatta a qualsiasi cosa, compresi gli oggetti.

Non ti consiglierei di avere una prospettiva. :))

Mi sono seduto con il tuo problema per un po' e qualcosa si è chiarito.

i primi due byte sono di tipo array (int).

secondo due byte - non chiaro.

i terzi due - numero di byte nell'elemento di dati (int)

   // int x[][15];     // == 0x5200 0100 0400  // здесь в каментах - первые три пары байт структуры
   // uint x[][15];    // == 0x5300 0100 0400
   // short x[][15];   // == 0x5000 0100 0200
   // ushort x[][15];  // == 0x4F00 0100 0200
   // char x[][15];    // == 0x4D00 0100 0100

   // uchar x[][15];   // == 0x4E00 0100 0100

   // long x[][15];    // == 0x5500 0100 0800
   // ulong x[][15];   // == 0x5600 0100 0800

   // double x[][15];  // == 0x5800 0100 0800
   // datetime x[][15];// == 0x5400 0100 0800


Poi ci sono quattro [ulong][ulong][ulong][ulong][ulong][ulong] di fila.

poi la dimensione del buffer riservato.

e poi un puntatore al buffer (non ho ancora controllato).

il resto non è chiaro, forse una riserva, ma non è sicuro

 

Sì, ma questo se si esclude memcpy

prima di questo, vale la pena controllare se la copia interna dell'array è più veloce di memcpy

 
MetaDriver:

Mi sono seduto con il tuo problema per un po', qualcosa si è chiarito.

Oh, i miei Knicks a voi, appena iniziato a scavare.
 
sergeev:

Sì, ma questo se si esclude memcpy

prima di questo, vale la pena controllare se la copia interna dell'array è più veloce di memcpy

Sì, dovremmo. Se memcpy è paragonabile a copiare un array di diciamo 500.000, probabilmente non ha senso.
 

MetaDriver:

ulteriore confusione, forse una riserva, ma non una certezza

Ci dovrebbe essere anche un flag AsSeries e forse altri.