Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 131

 
fxsaber:

Ilrilascio della memoria è l'unica ragione.

Che tipo di memoria? Se è ridondante, allorareserve_size=-1 è sufficiente, come è già stato detto. Solo la persona lì ha evidentemente sbagliato qualcosa con le misure di velocità (condizioni di test errate, credo)

 

Ho notato una possibilità interessante, che chiamerò ricorsione dell'indicatore.

Quando si può calcolare un indicatore da se stesso:

handle=iMA(_Symbol,_Period,per1,0,MaMethod,PriceBase);  
for(int i=0;i<N;i++) handle=iMA(_Symbol,_Period,per2,0,MaMethod,handle);

Può essere utile per gli appassionati di indicatori...

Nel caso in cui questo argomento sia già stato trattato, la ripetizione è la madre dell'apprendimento.

Per dimostrare questa caratteristica, ho scritto appositamente un indicatore in QB.

 
Nikolai Semko:

Ho notato una possibilità interessante, che chiamerò ricorsione dell'indicatore.

Quando si può calcolare un indicatore da se stesso:

Può essere utile per gli appassionati di indicatori...

Nel caso in cui questo argomento sia già stato trattato, la ripetizione è la madre dell'apprendimento.

Per dimostrare questa caratteristica, ho scritto appositamente un indicatore in QB.

Sì... Non pensavo fosse una caratteristica speciale. Una volta che ne ho avuto bisogno, l'ho scritto in quel modo, ho solo fatto nomi variabili diversi per le maniglie. Pensavo che tutti lo usassero quando ne avevano bisogno...

 
Alexey Viktorov:

Sì... Non pensavo fosse una caratteristica. Una volta che ne ho avuto bisogno, l'ho semplicemente scritto così, ma con nomi di variabili diversi per le maniglie. Pensavo che tutti lo usassero quando ne avevano bisogno...

Ho pensato solo ora di metterlo in un ciclo. Puoi riprodurre l'indicatore 100 volte, ma c'è solo una maniglia.

 
Nikolai Semko:

Ho appena pensato di metterlo in un ciclo. Si può riprodurre l'indicatore almeno 100 volte, ma c'è solo una maniglia.

Non è una maniglia singola, hai una variabile. Avete perso i valori delle maniglie precedenti. E come si fa a chiuderli?

 
Alexey Navoykov:

Non è una maniglia singola, avete una variabile. Avete perso i valori delle maniglie precedenti. E come si fa a chiuderli?

Bene...

Consuma molta memoria. In realtà, solo cambiando TF si possono liberare ibuffer degli indicatori interni che non sono più necessari. ))

Non c'è modo di avvitare in ArrayFree.

 
Nikolai Semko: In realtà, solo cambiando il TF si possono liberare ibuffer di indicatori interni che non sono necessari. ))

Non c'è modo di collegare ArrayFree.

Cambiare il TF crea una nuova copia dell'indicatore e distrugge quella vecchia

 
Igor Makanu:

cambiare il TF crea una nuova copia dell'indicatore e distrugge quella vecchia

Beh, questo è comprensibile.

Ho appena guardato l'utilizzo della memoria durante il caricamento alle impostazioni massime del mio indicatore (cursori a destra fino al bordo). Da 50 MB di memoria è passata a circa 400 MB. Ma quando ho riportato l'indicatore al minimo (cursori a sinistra), la memoria si blocca ancora a 400 Mb.

Significa che tutti i 100 indicatori calcolati sono appesi nella memoria, anche se non vengono utilizzati.
Cambiare TF lo cancella.

 
Nikolai Semko:

Beh, è comprensibile.

È solo che ho guardato l'utilizzo della memoria durante l'avvio secondo le impostazioni massime del mio indicatore (cursori a destra verso il bordo). Da 50 MB di memoria è passato a circa 400 MB. Ma quando ho riportato l'indicatore al minimo (cursori a sinistra), la memoria si blocca ancora a 400 Mb.

Così, tutti i 100 indicatori calcolati sono appesi nella memoria, anche se non sono più utilizzati.
Il cambio di TF lo cancella.

Avvolgerlo nell'indicatore di calcolo della classe - legare i buffer ai campi della classe

 
Igor Makanu:

avvolgere il calcolo dell'indicatore in una classe - legare i buffer ai campi della classe

Sì, dovrò fare una prova. Grazie.
Motivazione: