Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1427

 
Aleksei Stepanenko:

Quindi non ho scritto altro, ho solo ripetuto il tuo codice.

Ha disposto visivamente i numeri in modo errato, e ha pensato che fosse quello di cui aveva bisogno.

Molto probabilmente, dovete assegnare 0,5555 al ciclo invece di ArrayFill. Fate una prova.

Grazie. Spero di imparare rapidamente nuove informazioni.

 
Sei il benvenuto, basta che funzioni :)
 
Aleksei Stepanenko:
Sei il benvenuto, basta che funzioni :)
Volevo solo chiarire il momento.... Forse un ciclo invece di ArrayFill() rallenterà il programma, specialmente se ci sono molti dati nell'array, e se l'intervallo di enumerazione è grande, e se il ciclo lavorerà con più di un array. Qualche post sopra in questo threadMaxim Kuznetsov mi ha detto che esiste un algoritmo ottimale che converte LoY[2][31] in LoY[31][2]. Forse questo algoritmo non rallenterà il programma come un ciclo, o lo rallenterà ma in misura minore. Se avete familiarità con questo algoritmo, vi sarò grato se mi dite cosa ne pensate e forse anche se lo dimostrate nel mio codice.
Ancora una volta grazie mille per il vostro supporto informativo.
 
ANDREY:
forse un ciclo invece di ArrayFill() rallenterà il programma

Tutto il codice consuma risorse. ArrayFill o loop-fill costa circa lo stesso.

Ma ordinare o riscrivere completamente l'array costa tempo. Quindi, è meglio trovare altre soluzioni, per esempio, pensare all'immagazzinamento e alla preparazione dei dati, fare precalcoli e altre opzioni.

 
Aleksei Stepanenko:

Tutto il codice consuma risorse. ArrayFill o loop-fill costa circa lo stesso.

Ma ordinare o riscrivere completamente l'array costa tempo. Ecco perché è meglio trovare altre soluzioni, per esempio la preparazione dei dati, i calcoli preliminari e altre opzioni.

Capito. Grazie.

 
Nel tuo caso, è interessante rispondere alla domanda principale: perché è necessario fare l'ordinamento ogni minuto? Come può la tua idea essere implementata in modo più economico?
 
ANDREY:

Capito. Grazie.

Scusate l'interruzione, forse l'ordinamento non è necessario? Forse solo il valore massimo (minimo) dovrebbe essere determinato?

 

La documentazione per uno dei linguaggi è molto buona e dettagliata, ovviamente richiede tempo, ma aiuta i programmatori

---

Meno costoso sarebbe riempire correttamente all'inizio e se possibile cercare di non dilettarsi con un array in cinque ginocchia: riempire, ordinare, aggiungere, ordinare e aggiungere di nuovo.

Evitare azioni non necessarie, se possibile.

---

In mql c'è una funzione: StringConcatenate, è super costosa, ma è usata per la sua presenza nel linguaggio, anche se può essere facilmente evitata e scrivere codici "leggeri".

 
Luchezar Shalomaev:

Scusate l'interruzione, forse l'ordinamento non è necessario? Forse determinare solo il valore massimo (minimo)?

Grazie per il vostro contributo. È l'ordinamento che serve.... Almeno in questa fase della mia comprensione del mio progetto. Forse più tardi ci ripenserò e cercherò delle alternative di smistamento. Per quanto riguarda il minimo e il massimo so già che ci sono funzioni che li determinano e che è meno costoso.

 
Vitaly Muzichenko:

La documentazione per uno dei linguaggi è molto buona e dettagliata, ovviamente richiede tempo, ma aiuta i programmatori

---

Meno costoso sarebbe riempire correttamente all'inizio e cercare di non scherzare con un array in cinque ginocchia: riempire, ordinare, aggiungere, ordinare e aggiungere di nuovo.

Evitare azioni non necessarie, se possibile.

---

C'è una funzione in mql: StringConcatenate, è super costosa, ma è usata per la sua presenza nel linguaggio, anche se può essere facilmente evitata e scrivere codici "leggeri".

L'idea generale è compresa... come mi sembra. Grazie per il suggerimento. Se non ti dispiace dirmi cosa significa il segno del dollaro prima del nome dell'array $ array[] e prima del valore $var Mi sembra che non sia affatto da mql.