[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 353

 
Zhunko:

L'ottimizzazione deve essere fatta prima. La velocità MQL4 è adatta alla maggior parte dei compiti.

C'è un esempio di DLL nella cartella MT4.


Intendo compiti individuali, dove una sola esecuzione dello script richiede diverse ore. Cosa intende per ottimizzazione?
 
Beh, qualche ora è molto, di solito ci sono opzioni per far funzionare i calcoli più velocemente riprogettando l'algoritmo di calcolo, togliendo le azioni ripetitive dal ciclo, evitando costruzioni lente, array multidimensionali, ecc.
 
splxgf:
Beh, alcune ore sono tante. Di solito, ci sono varianti per rendere i calcoli più veloci modificando l'algoritmo dei calcoli, spostando le azioni ripetitive fuori dal ciclo, evitando costruzioni lente, array multidimensionali, ecc.

Avete una risposta alla domanda: è meglio memorizzare le caratteristiche degli ordini aperti in un array multidimensionale o in diversi array monodimensionali, uno per caratteristica? Ho provato in entrambi i modi. Non ho notato alcuna differenza nella velocità. Qual è il modo ottimale (diversi ordini, sia a mercato che pendenti, e forse anche ordini perdenti diversamente diretti)?

Probabilmente, "secondo i requisiti del problema"?

 
splxgf:
Beh, qualche ora è molto, di solito ci sono opzioni per far funzionare i calcoli più velocemente ridisegnando l'algoritmo di calcolo, togliendo le azioni ripetitive dal ciclo, evitando costruzioni lente, array multidimensionali, ecc.

Se non è difficile, potete mostrare un esempio di tale ottimizzazione. Per esempio, considera tutti i periodi dell'indicatore Alligator iAlligator da 1-100 (7 periodi), le operazioni matematiche stesse sono semplici (addizione, sottrazione).

 
snail09:

Avete una risposta alla domanda: è meglio memorizzare le caratteristiche degli ordini aperti in un array multidimensionale o in diversi array monodimensionali, uno per caratteristica? Ho provato in entrambi i modi. Non ho notato alcuna differenza nella velocità. Qual è il modo ottimale (diversi ordini, sia a mercato che pendenti, e forse anche ordini perdenti diversamente diretti)?

Probabilmente, sarebbe "secondo la dichiarazione del problema", vero?


Non l'ho ancora incontrato, non lo so. Ma se il tuo codice è corretto e fa il compito, penso che non faccia differenza in quale array.
 
khorosh:
Esiste un indicatore di equity che permetta di impostare una data nella sua variabile esterna, in modo che tutti gli ordini aperti prima di quella data non vengano presi in considerazione nel calcolo dell'equity?


Guarda questi... Begin_Monitoring e Draw_Begin...

File:
 
FelixFX:

Mi riferisco a compiti individuali, dove l'esecuzione di uno script richiede diverse ore. Cosa intende per ottimizzazione?
Intendo modificare il codice in modo che funzioni più velocemente. Ci sono alcune caratteristiche speciali di MQL4, conoscendole, è possibile accelerare i calcoli di diverse volte. Senza il tuo codice, non puoi dire cosa può essere ottimizzato.
 
Zhunko:
Questo significa modificare il codice per farlo funzionare più velocemente. Ci sono delle peculiarità di MQL4, conoscendole, è possibile accelerare i calcoli di diverse volte. Senza il tuo codice, è impossibile dire cosa può essere ottimizzato.

Per esempio, considera tutti i periodi dell'indicatore Alligator iAlligator da 1-100 (7 parametri variabili), le operazioni matematiche sono semplici (addizione, sottrazione - per esempio, puoi prendere la somma delle differenze dei prezzi massimi e minimi di ogni barra, il cui prezzo di chiusura è superiore a tutte le linee dell'indicatore).
 
FelixFX:

Non l'ho ancora incontrato, non lo so. Ma se il tuo codice è corretto e fa quello che si suppone faccia, penso che non faccia differenza in quale array.
Entrambe le opzioni sono corrette. Ecco perché ho chiesto. E come rintracciate i "vostri" ordini? Per favore, condividete.
 
FelixFX:

Se non è difficile, puoi mostrare un esempio di tale ottimizzazione. Per esempio, considera tutti i periodi dell'indicatore alligatore iAlligator da 1-100 (7 periodi), le stesse operazioni matematiche sono semplici (addizione, sottrazione).

Per esempio il problema è quante volte il prezzo ha attraversato un dato livello negli ultimi due anni.

1. Puoi prendere ogni livello e guardare i dati per due anni. I costi: il numero di barre moltiplicato per il numero di livelli.

2. È possibile creare una serie separata di livelli. È sufficiente rivedere tutte le barre controllando e incrementando gli elementi richiesti dell'array. In questo caso i calcoli saranno più veloci.

Motivazione: