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.

[Eliminato]  
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.
[Eliminato]  
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.

[Eliminato]  
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.