Il mio approccio. Il nucleo è il motore. - pagina 125
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Quindi sono ridisegnati esattamente come hai detto tu.
E il carico sul processore viene dall'animazione:
C'è una costante reinizializzazione dei valori nell'array di pixel. Ogni 16 millisecondi. Questo carica il processore fino al 40%.
Stavo cercando di capire quale sia esattamente il carico. Ho pensato che si trattasse di salvare una risorsa o di leggerla. Si è scoperto che era la reinizializzazione dell'array nel ciclo di disegno.
Si è anche scoperto che una chiamata costante di ObjectSetInteger(0, "MT object",OBJPROP_SELECTED,1); (ogni 16 ms) carica anche il processore. Di circa il 10%.
Uso questa chiamata per dire a un altro EA di leggere la risorsa con i dati dell'animazione.
In totale, ottiene +~50% di carico della CPU durante l'animazione.
Scusa, non avevo notato che non si tratta più della lista delle compravendite aperte. Sparite, credo, 2-3 pagine del thread.
No, va bene. Ho appena portato il carico della CPU perché ho intenzione di rifare la comunicazione tra l'EA e il motore, il che significa che anche la tabella dei trade aperti prenderà i dati in modo diverso.
Perché fare il periris 64 fotogrammi al secondo (16 ms), per l'occhio è sufficiente 32 fotogrammi al secondo.
Bella domanda. In effetti, il timer non funziona bene. Ci sono dei salti. 16,32,16,16...
Se usate 32, i salti sono di 64 ms. E questo si nota. Inoltre, varie altre cose gravano e rallentano il disegno. Per esempio, la coda di eventi OnChartEvent().
Penso che influisca sulla qualità dell'animazione. Ho provato a usare 25 ms. Poi 16, e sono arrivato alla conclusione che 16 trasmette meglio un movimento fluido.
Più tardi skolnuyu motore con animazione 16 ms e 32 ms e vedrete voi stessi. Anche se forse sarà ok....
Bella domanda. In effetti, il timer non funziona bene. Ci sono dei salti. 16,32,16,16...
Se usate 32, i salti sono di 64 ms. E questo si nota. Inoltre, varie altre cose gravano e rallentano il disegno. Per esempio, la coda di eventi OnChartEvent().
Penso che influisca sulla qualità dell'animazione. Ho provato a usare 25 ms. Poi 16, e sono arrivato alla conclusione che 16 trasmette meglio un movimento fluido.
Più tardi skolnuyu motore con animazione 16 ms e 32 ms e vedrete voi stessi. Anche se forse sarà ok....
È solo che non è veramente 16ms, ma 1000/64=15.625ms. Ecco perché è meglio impostare 30 ms invece di 32 ms, allora ci saranno meno salti. cioè se si mette una pausa tra i fotogrammi di 33 ms, allora la pausa reale sarà 15,625×3=46,875 ms.
Perché? Semplice, interessante.
Perché? Semplice, mi chiedo.
È solo che non è veramente 16ms, ma 1000/64=15.625ms. Ecco perché è meglio impostare 30 ms invece di 32 ms, allora ci saranno meno salti. cioè se si mette una pausa tra i fotogrammi di 33 ms, allora la pausa reale sarà 15,625×3=46,875 ms.
Ok, ne terrò conto.
Ridurre la frequenza del timer ridurrà certamente il carico sul processore. Se non degrada la qualità dell'animazione, ottimo. Il carico della CPU può essere ridotto fino al 30%, ma lo sarà comunque.
Dovrete sopportarlo.
Certo, se il disegno fosse distribuito tra diversi thread, (ad esempio, parte dell'animazione disegna l'Expert Advisor, e parte il motore), allora il carico sarebbe quasi eliminato. Dobbiamo pensare...
Ahimè, la mia ipotesi non è stata confermata.
Ora ho fatto un esperimento - ho messo un EA su due grafici. L'Expert Advisor carica il processore del 50%.
Ho scoperto che anche quando si lavora con diversi grafici, il carico della CPU si somma e il carico totale della CPU dalla parte di MT è superiore al 90%.
Quindi, anche dividere i grafici tra diversi Expert Advisors non aiuterà. Il carico si sta accumulando!
Ahimè, la mia ipotesi non è stata confermata.
Ora ho fatto un esperimento - ho messo un EA su due grafici. L'Expert Advisor carica il processore del 50%.
Ho scoperto che anche quando si lavora con diversi grafici, il carico della CPU si somma e il carico totale della CPU dalla parte di MT è superiore al 90%.
Quindi, anche dividere i grafici tra diversi Expert Advisors non aiuterà. Il carico si sta accumulando!