Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
E sì, analizzare i testi in MQL è molto divertente :-) Beh, non è progettato per l'analisi del testo. Voglio dire, si può, ma è un peccato...
Array e ordini: ecco cos'è MQL
È di questo che sto parlando... :)
La versatilità è spesso sinonimo di lentezza, e ancora di più con la corda.
Vi faccio un esempio.
Una volta ho analizzato una stringa ricevuta da un crypto-exchange usando WebRequest. E l'ho analizzato usando lalibreria JSON di Sergeev, che ha portato da "high-speed C++ library". E ho notato che la velocità è molto insoddisfacente. Lì tutto era fatto attraverso stringhe "universali".
Ho capito che la ragione della bassa velocità era la stringa e volevo evitare di usare le funzioni di stringa e ho scritto una funzione che analizza direttamente dall'array uchar. Il risultato mi ha sorpreso non poco. La mia velocità di analisi era .... (rullo di tamburi) 800 volte più veloce. Se l'analisi di un'intera stringa attraverso JSON ha richiesto 0,3 secondi, la mia funzione l'ha analizzata in meno di mezzo millisecondo.
Ecco un esempio del mio parsing tramite array uchar.
Il succo del suo suggerimento è il seguente:
Inizialmente volevo usare gli oggetti MT per trasferire le stringhe.
La seconda variante mi sembrava inizialmente più veloce.
Quando hai così tanti compiti come me, devi affidarti al tuo intuito quando scegli una soluzione. Non avrete abbastanza vita per controllare tutto accuratamente. Hai bisogno di una squadra o di un grande senso di intuizione per scegliere la direzione giusta. E, naturalmente, bisogna sacrificare la professionalità e sopportare le lacune di conoscenza. Altrimenti, rimarrete a fare scarabocchi (anche se in modo professionale) e non finirete mai un mega-progetto. Questa è la realtà.
Il succo del suo suggerimento è il seguente:
Non è affatto così.
Sono occupato al momento - non ho tempo per spiegare.
Se smontate il mio codice in dettaglio, in modo da non lasciare punti vuoti, farete molte scoperte per voi stessi.
ZS. Solo che senza un debugger sarà molto più difficile capirlo. Non so se hai iniziato ad usarlo o se ancora non usi questo importante strumento.
...
Se esaminate il mio codice in dettaglio, e non lasciate punti vuoti, farete molte nuove scoperte.
ZS. Solo che senza usare il debugger sarà molto più difficile da capire. Non so se hai iniziato ad usarlo o se ancora non usi questo importante strumento.
Domani darò un'occhiata più da vicino al tuo codice. (Non dimenticare i fusi orari).
Forse, infatti, scoprirò qualcosa di nuovo. ))
Qualsiasi struttura è una stringa. Un array di strutture è un array di stringhe con una descrizione del loro formato. Classe - struttura e metodi, implementazione della classe - array di implementazioni (scusate il francesismo).
Non c'è bisogno di convertire nulla fino all'ultimo momento. Dappertutto ci sono solo corde. Semplicemente, sono normalizzati: alcuni prendono 2, o 4 byte, e alcuni prendono 1, quindi bisogna allineare.
Ho usato questo approccio per la prima volta intorno al 1993, Clarion DBMS. Ha funzionato molto rapidamente.
Qualsiasi struttura è una stringa. Un array di strutture è un array di stringhe con una descrizione del loro formato. Classe - struttura e metodi, implementazione della classe - array di implementazioni (scusate il francesismo).
Non c'è bisogno di convertire nulla fino all'ultimo momento. Dappertutto ci sono solo corde. Semplicemente, sono normalizzati: alcuni prendono 2, o 4 byte, e alcuni prendono 1, quindi bisogna allineare.
Ho usato questo approccio per la prima volta intorno al 1993, Clarion DBMS. Tutto ha funzionato molto rapidamente.
Circa lo stesso tempo con lo stesso :-) Una scuola... comunque il DBMS non era male ed era in anticipo sui tempi in molti modi.
PS/ c'è un solletico molto amato a volte, a posteriori a livello di concetto "tutto è una stringa/testo". La velocità è davvero al livello di python.
Domani darò un'occhiata più da vicino al tuo codice. (Non dimenticare i fusi orari).
Forse scoprirò davvero qualcosa di nuovo. ))
Forse sarà utile
L'esempio di indicatore che utilizza la variabile risorsa su doppio esempio, che non reinizializza il suo valore quando si cambia TF. Questa è un'alternativa più conveniente alle variabili globali del terminale. Allo stesso modo, diverse strutture di dati e array di queste strutture possono essere utilizzati come globali.
potrebbe ancora tornare utile.
)
Per amore dell'interesse, proverò la variante con l'unione. E conCharArrayToString e StringToCharArray. Anche se la mia intuizione mi dice che difficilmente sarà più veloce della comunicazione tramite la descrizione di oggetti МТТ. Ma potrei sbagliarmi. Vediamo...
Peter, hai fatto un jolly fin dall'inizio, e ora stai discutendo sulle prestazioni di messaggistica all'interno del tuo jolly. Avete capito: una stringa è solo un comodo ***, niente di più. Qualsiasi dato è in realtà solo un insieme di byte nella memoria. Quindi vi si consiglia di gestire direttamente i byte, ma siete testardi come sempre a non capire che la stessa stringa è lo stesso array di byte. Quindi non si perde nulla nella conversione di una stringa in un array uchar, ma quando si analizza una stringa, le prestazioni rallentano davvero. Ecco perché manca tutta la tua intuizione.
1. Peter, all'inizio hai fatto un gioco, e ora stai discutendo sulle prestazioni della messaggistica all'interno del tuo gioco.
2.Hai capito: una stringa è solo un comodo ***, niente di più. Qualsiasi dato è in realtà solo un insieme di byte nella memoria. Quindi, vi consigliano di lavorare direttamente con i byte, ma voi siete testardi come sempre a non capire che la stessa stringa è lo stesso array di byte. Quindi non si perde nulla nella conversione da stringa a array uchar, ma quando si analizza una stringa, le prestazioni rallentano davvero.
3. Quindi tutte le tue intuizioni sono solo una mancanza.
1. "Wildness" - in questo caso, è la tua comprensione, non quello che ho fatto. Ci sono volute 75 pagine per farvi capire di cosa si tratta e di cosa è il motore. Capire: I difetti e gli errori non caratterizzano un'entità. Nessuna forma di essenza caratterizza l'essenza stessa. Proprio come i tuoi vestiti non definiscono che tipo di persona sei. Solo il pensiero sbagliato giudica il tutto dal particolare.
2. Per me è chiaro così com'è. Oggi controllerò se ci sarà un reale guadagno di velocità usando la funzione StringToChar.
3. Ogni giorno controllo la mia intuizione. Ne dubito ogni giorno. E giustamente. Se fallisce, dovreste farvi guidare dalla Ragione. Ma la Ragione è troppo limitata, arrogante e stupida per essere sempre affidabile. Pertanto, l'intuizione è l'unica alternativa. Se sai cosa intendo...