Variabili globali contro FileWrite

 

Ho circa 8-10 variabili che non possono essere ricalcolate al volo senza sostanziali aggravi (sono derivate da chiamate iCustom potenzialmente passate da tempo).

Considerando che normalmente eseguo 5-10 istanze dell'EA per terminale e voglio creare un livello di persistenza, qual è la mia opzione migliore per affidabilità e velocità:

1. Variabili globali; o

2. FileWrite

Sono sicuro che sarò in grado di capire cosa ho bisogno di fare con entrambi i sistemi, ma non mi è chiaro quale sia la strada migliore da seguire.

Qualsiasi pensiero sarà molto apprezzato.

 
toast:

Ho circa 8-10 variabili che non possono essere ricalcolate al volo senza sostanziali aggravi (sono derivate da chiamate iCustom potenzialmente passate da tempo).

Considerando che normalmente eseguo 5-10 istanze dell'EA per terminale e voglio creare un livello di persistenza, qual è la mia opzione migliore per affidabilità e velocità:

1. Variabili globali; o

2. FileWrite

Sono sicuro che sarò in grado di capire cosa ho bisogno di fare con entrambi i sistemi, ma non mi è chiaro quale sia la strada migliore da seguire.

Qualsiasi pensiero sarà molto apprezzato.

Le variabili globali del terminale sono più facili da usare, potete anche cambiarle manualmente nel terminale. Ma scrivere su un file è più flessibile.
 
angevoyageur:
Ma scrivere su un file è più flessibile.

ma più affidabile
 

Le variabili globali possono essere affidabili se codificate correttamente il vostro ea. La stessa cosa per la scrittura su un file.

Niente è affidabile se il codice del vostro ea non è fatto correttamente per gestire le variabili globali o la scrittura su un file.

Le variabili globali o la scrittura su un file sono solo sapori a vostro gusto, in realtà.

 

hai ragione!!!

Mi ricordo i tempi (qualche anno fa) in cui le variabili globali sono state salvate in un file solo chiudendo il terminale

il che significa che se c'è un crash del terminale/computer/alimentazione, non sono state salvate

sembra che le cose siano cambiate da allora e ora vengono salvate immediatamente in un file

grazie per le informazioni

 
Grazie mille a tutti per le pronte risposte - veloci e informative, come sempre!
 
qjol:

hai ragione!!!

Mi ricordo i tempi (qualche anno fa) in cui le variabili globali sono state salvate in un file solo chiudendo il terminale

il che significa che se c'è un crash del terminale/computer/alimentazione, non sono state salvate

sembra che le cose siano cambiate da allora e ora vengono salvate immediatamente in un file

grazie per le informazioni


GV sta diventando più affidabile in questi giorni.

Bello, vero? Spero che MetaQuotes possa renderlo ancora più bello :)

 

Se posso disturbarvi con un'altra domanda:

Usare ChartID() è un modo affidabile per nominare le variabili globali? È sempre unico e non cambia una volta assegnato a un particolare grafico?

Stavo pensando di usare una combinazione di numero magico e Symbol(), ma la mia preoccupazione è che qualcuno cambi il numero magico con gli scambi attivi. Se questo accade, allora i GV utilizzati nella gestione dei trade non saranno recuperati correttamente.


(Nota bene: non condivido i GV tra diversi grafici/EA, quindi non ho bisogno di preoccuparmi che un altro EA possa recuperare i GV. Li sto usando semplicemente per la persistenza)

 
toast:

Se posso disturbarvi con un'altra domanda:

Usare ChartID() è un modo affidabile per nominare le variabili globali? È sempre unico e non cambia una volta assegnato a un particolare grafico?

Stavo pensando di usare una combinazione di numero magico e Symbol(), ma la mia preoccupazione è che qualcuno cambi il numero magico con gli scambi attivi. Se questo accade, allora i GV utilizzati nella gestione dei trade non saranno recuperati correttamente.


(Nota bene: non condivido i GV tra diversi grafici/EA, quindi non ho bisogno di preoccuparmi che un altro EA possa recuperare i GV. Li sto usando semplicemente per la persistenza)


Il numero magico non può essere cambiato una volta che è in ordini (in sospeso o a mercato).
 

Grazie per la risposta.

Sì, sono d'accordo.

Ma il problema sarà il seguente:

Viene aperto un trade con il numero magico 123.

Quando si gestisce questo trade, l'EA cercherà GV con il nome 123xxxxxx

Ora l'utente cambia l'impostazione dell'EA per il numero magico a 789 mentre il trade è ancora attivo.

Quindi ora l'EA sta cercando GV con nome 789xxxxx (che non esiste).

Essenzialmente, sto cercando una convenzione di denominazione GV che non può essere modificata dall'input dell'utente.

 
toast:

Grazie per la risposta.

Sì, sono d'accordo.

Ma il problema sarà il seguente:

Viene aperto un trade con il numero magico 123.

Quando si gestisce questo trade, l'EA cercherà GV con il nome 123xxxxxx

Ora l'utente cambia l'impostazione dell'EA per il numero magico a 789 mentre il trade è ancora attivo.

Quindi ora l'EA sta cercando GV con nome 789xxxxx (che non esiste).

Essenzialmente, sto cercando una convenzione di denominazione GV che non può essere modificata dall'input dell'utente.

Non permettere di cambiare il numero magico se ci sono ancora scambi aperti con la vecchia magia.
Motivazione: