[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 198
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
In un indicatore ho trovato la seguente costruzione:
int R; //la variabile è dichiarata a livello globale
Ho trovato la stessa variabile con il simbolo & in una funzione definita dall'utente come questa
void Function(int A, int B, int &R) {R = A*B}
Qualcuno può dirmi perché questo viene fatto e dove posso leggerlo in dettaglio?
In un indicatore ho trovato la seguente costruzione:
int R; //la variabile è dichiarata a livello globale
Ho trovato la stessa variabile con il simbolo & in una funzione definita dall'utente come questa
void Function(int A, int B, int &R) {R = A*B}
Qualcuno può dirmi perché questo viene fatto e dove posso leggerlo in dettaglio?
Il tutorial è qui, e google rules!
Tutorial qui e regole di google!
Non capisco cosa cambierebbe se fosse così:
void Function(int A, int B) {R = A*B}
La variabile R è dichiarata globalmente e sarà comunque visibile all'interno della funzione. In quali casi è necessario passare parametri per riferimento?
Non capisco cosa cambierebbe se fosse così:
void Function(int A, int B) {R = A*B}
La variabile R è dichiarata globalmente e sarà comunque visibile all'interno della funzione. In quali casi è necessario passare parametri per riferimento?
Leggete il libro di testo, la documentazione, cercate su Google, qui.
"Quando si chiama la funzione swap, vengono create nuove variabili a e b a cui vengono assegnati i valori 3 e 5. Queste variabili non sono in alcun modo legate alle variabili p e q e cambiarle non cambia i valori di p e q. Questo metodo di passaggio di parametri è chiamato passaggio di valore.
Affinché una funzione possa cambiare i valori delle variabili dichiarate in altre funzioni, dovete specificare che il parametro che viene passato non è solo un valore costante ma una variabile, dovete passare i valori per riferimento. Per fare questo, la funzione swap avrebbe dovuto essere dichiarata come segue:
void swap(int & a, int & b)
Le virgolette prima del nome della variabile significano che questa variabile non è una variabile locale, ma un riferimento alla variabile specificata come parametro quando la funzione viene chiamata. Ora, quando chiamate swap(p,q), le variabili a e b sono sinonimi delle variabili p e q, e cambiare i loro valori fa cambiare i valori di p e q. Ma non potete chiamare una funzione come swap(3,5) perché 3 e 5 sono costanti, e non potete rendere le variabili sinonimo di costanti".
Leggete il tutorial, la documentazione, google, qui.
"Quando viene chiamata la funzione swap, vengono create nuove variabili a e b e vengono loro assegnati i valori 3 e 5. Queste variabili non sono in alcun modo collegate alle variabili p e q, e cambiarle non cambia i valori di p e q. Questo metodo di passaggio di parametri è chiamato passaggio di valore.
Affinché una funzione possa cambiare i valori delle variabili dichiarate in altre funzioni, dovete specificare che il parametro che viene passato non è solo un valore costante ma una variabile, dovete passare i valori per riferimento. Per fare questo, la funzione swap avrebbe dovuto essere dichiarata come segue:
void swap(int & a, int & b)
Le virgolette prima del nome della variabile significano che questa variabile non è una variabile locale, ma un riferimento alla variabile specificata come parametro quando la funzione viene chiamata. Ora, quando chiamate swap(p,q), le variabili a e b sono sinonimi delle variabili p e q, e cambiare i loro valori fa cambiare i valori di p e q. Ma non potete chiamare una funzione come swap(3,5) poiché 3 e 5 sono costanti e non potete rendere le variabili sinonimi di costanti".
Grazie per le informazioni
Si può, ma è necessario che il consulente sia aggiornato
Sì, lo capisco :) È solo che spesso si prova qualche strategia, una versione tester, solo per vedere come funziona un'idea. A volte gli errori si rivelano sotto una luce completamente diversa. E non hai tempo da perdere, se devi comporre e vedere in fretta.
C'è un modo per chiuderlo senza problemi, in modo che non copi quello che scrive nel file di log? Domanda su questo.
È comprensibile:) È solo che spesso si prova solo una strategia, una versione tester, solo per vedere come funziona l'idea. A volte gli errori vengono fuori in una luce completamente diversa. E non hai tempo da perdere, se devi comporre e vedere in fretta.
C'è un modo per chiuderlo senza problemi, in modo che non copi quello che scrive nel file di log? Domanda su questo.
Come ci si può fidare di un EA che lavora in errore
Ha bisogno di qualcos'altro - di cambiare la variabile interna del programma, il punto di riferimento per disegnare l'indicatore, e poi di ricalcolare e ridisegnare la linea dopo aver premuto la combinazione di tasti.
A proposito, perché MT non vuole ganci?
Grazie per la comprensione):