Ottenere il numero di posizioni decimali di qualsiasi numero (non solo le virgolette) bypassando Digits() in MQL4 e MQL5 - pagina 19

 
Grazie, lo testerò domani.
 
Grande, in mql5 hanno rimosso la direzione di ordinamento dalla funzione ArraySort, nell'articolo sulla migrazione da mql4 consigliano di usare invece ArraySetAsSeries... Ma non funziona con gli array multidimensionali =))) Ieri ho modellato ArraySort da niente)))
 
Dmitry Fedoseev:

Scelgo l'opzione di conversione in stringa.

modificato leggermente la tua opzione

int ds(double v){
   string s=(string)v;
   int l=StringLen(s);
   int p=StringFind(s,".",0);
   return((p>0)?l-p-1:0);
}
 
Igor Makanu:

Grazie, ce l'ho, lo testerò domani.

Ho dimenticato una precisazione importante :)

#define    test(M,S,EX)        {uint mss=GetTickCount();int nn=(int)pow(10,M);for(int tst=0;tst<nn&&!_StopFlag;tst++){EX;} \
                                printf("%s: loops=%i ms=%u",S,nn,GetTickCount()-mss);}

Altrimenti si può rimanere appesi per molto tempo se si fallisce)

Taras Slobodyanik:

Ho modificato un po' la tua versione.

Opzione eccellente, ma funziona 10 volte più lentamente di quelle già proposte qui sotto

 
fxsaber:

Posso fare un brainstorming su un'implementazione veloce per tradurre un array di strutture (lunghezza multipla di sizeof(int)) da e verso un array int[]?

L'applicazione pratica è lo scambio veloce di dati attraverso le risorse. La mia variante è troppo universale, quindi rallenta.


Queste funzioni sono apparse in MT5

Non esistono e probabilmente non esisteranno in MT4. Pertanto, dobbiamo risolvere il problema con e senza queste funzioni (se sono utili).

Il risultato sarà utile a un gran numero di utenti del forum qui.


Ho scritto un modello molto semplice per il brainstorming con la mia soluzione a questo problema.


Risultato

La struttura è una stringa. La sua lunghezza non può essere un multiplo di int o non int.

 
Ilya Malev:
È fantastico, mql5 ha rimosso la direzione di ordinamento dalla funzione ArraySort. Sembra che nell'articolo sulla migrazione da mql4 raccomandino di usare invece ArraySetAsSeries... Ma non funziona con gli array multidimensionali =))) Ieri ho modellato ArraySort da niente)))

Articoli

Metodi di ordinamento e loro visualizzazione con MQL5

Dmitrii Troshin, 2017.05.26 09:44

È stata creata una libreria speciale Graphic.mqh per lavorare con la grafica in MQL5. Questo articolo descrive un esempio del suo uso pratico e spiega l'essenza del marshalling. Per ogni ordinamento, c'è almeno un articolo separato, e su alcuni di essi sono stati pubblicati interi studi, quindi qui si descrive solo l'idea generale.

 
Andrey Khatimlianskii:

C'è un confronto della velocità di ordinamento con il solito ArraySort integrato su un campionamento casuale? C'è qualche metodo che ordina i dati casuali più velocemente in media...

O non più veloce, ma almeno uguale. O non così veloce, ma almeno non più del doppio del tempo. Senza alcuna Dll e altre cose come il multithreading
 
Алексей Тарабанов:

La struttura è una stringa. La sua lunghezza non può essere un multiplo di int, o non int.

La molteplicità è la condizione del problema.

 
Non riesco a superarlo.
Mi assicurerò di partecipare quando arriverò al computer.
Dopo una rapida occhiata, ho già delle idee su come migliorare il risultato del 10-20%.

 
Nikolai Semko:
Non riesco a superarlo.
Mi assicurerò di partecipare quando arriverò al computer.
Ho già alcune idee su come migliorare il risultato del 10-20%.

Il risultato di cosa?

Motivazione: