[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 610

 
ruslanchik:
qual è il calcolo davanti ad a=5 o a=10?
Bene il programma viene eseguito dall'alto verso il basso) Prima 5, poi 10.
 
Solree:
Bene, il programma viene eseguito dall'alto verso il basso) Prima 5, poi 10.
Capisco... aggiornerà i parametri "ovvi" a quelli dati.
 
ruslanchik:
OK grazie... in breve aggiornerà i parametri "espliciti" a quelli dati

Quando i parametri vengono passati a una funzione per riferimento, sono le variabili che vengono passate alla funzione ad essere cambiate.

Supponiamo che abbiate bisogno di restituire più di un parametro da una funzione. Passateli alla funzione per riferimento. Le variabili che sono impostate fuori dalla funzione - le variabili che avete passato in essa per riferimento - saranno cambiate nella funzione.

Se avete tre variabili e, f e g, se l'appersand nella descrizione della funzione precede il nome della variabile nei suoi parametri, verranno cambiate le variabili che avete messo nei parametri quando chiamate la funzione.


int func (int a , int &b , int &c ) {

a=10;
b=20;
c=30;
return(a);

}


Quando si chiama una funzione:

int e=40 , f=50, g=60;

int d=func (e, f, g);

d sarà uguale a 10 (la funzione restituirà e modificata)

f sarà uguale a 20

g sarà uguale a 30

f e g sono passati qui per riferimento

 
artmedia70:

Quando i parametri vengono passati a una funzione per riferimento, sono le variabili che vengono passate alla funzione ad essere cambiate.

Supponiamo che abbiate bisogno di restituire più di un parametro da una funzione. Passateli alla funzione per riferimento. Le variabili che sono impostate fuori dalla funzione - le variabili che avete passato in essa per riferimento - saranno cambiate nella funzione.

Se avete tre variabili e, f e g, se l'appersand nella descrizione della funzione precede il nome della variabile nei suoi parametri, verranno cambiate le variabili che avete messo nei parametri quando chiamate la funzione.


int func (int a , int &b , int &c ) {

a=10;
b=20;
c=30;
return(a);

}


Quando si chiama una funzione:

int e=40 , f=50, g=60;

int d=func (e, f, g);

d sarà uguale a 10 (la funzione restituirà la e modificata)

f sarà uguale a 20

g sarà uguale a 30

f e g sono stati passati per riferimento qui

Dove posso trovare un Helpup su un argomento simile ... con esempi .... Mi sono seduto per fare qualcosa, ma ho capito che non posso costruire un sistema senza riferimenti .... A proposito, anche l'aiuto di S.K. (Sergei Kovalev) non è molto in tema
 
ruslanchik:
Dove posso trovare un Helpup su un argomento simile ... con esempi .... Mi sono seduto per fare qualcosa, ma ho capito che non posso costruire un sistema senza riferimenti .... A proposito, anche il libro di auto-aiuto di S.K. non contiene molte informazioni

Guardate attentamente nel DOCU - c'è TUTTO, dovete solo essere in grado di leggerehttps://docs.mql4.com/ru/basis/variables/formal
 
FAQ:

Guardate attentamente il DOCU - C'è TUTTO lì, dovete solo essere in grado di leggerehttps://docs.mql4.com/ru/basis/variables/formal
e su cosa esattamente attaccare l'occhio se non l'hai notato tu stesso..... "Spiega per favore come "passare parametri per riferimento" l'aiuto in linea ha dato solo dei suggerimenti su come usarlo, ma non è molto facile da capire... da pagina 609 "
 

È possibile passare parametri per riferimento. In questo caso, la modifica di tali parametri influenzerà le variabili corrispondenti nella funzione chiamata passata per riferimento. Non si possono passare elementi di array per riferimento. I parametri possono essere passati per riferimento solo entro i limiti di un singolo modulo, tale opportunità non è prevista per le funzioni di libreria. Per specificare che un parametro è passato per riferimento, il modificatore & deve essere posto dopo il tipo di dati.

Esempio:

void func(int& x, double& y, double& z[]) { double calculated_tp; ... for(int i=0; i<OrdersTotal(); i++) { if(i==ArraySize(z)) break; if(OrderSelect(i)==false) break; z[i]=OrderOpenPrice(); } x=i; y=calculated_tp; }

Gli array possono anche essere passati per riferimento, tutti i cambiamenti saranno riflessi nell'array originale. A differenza dei parametri semplici, gli array possono essere passati per riferimento anche nelle funzioni di libreria.

I parametri passati per riferimento non possono essere inizializzati con valori predefiniti.

 
Buona sera. Sto cercando di capire le barre. Voglio scrivere uno script per analizzare le barre giornaliere. Sto cercando di analizzare la percentuale di quali sequenze si verificano. Voglio raccogliere statistiche non solo per l'intera storia ma anche per un periodo di tempo selezionato. Ho provato a cercare uno script ma ce ne sono troppi. Sto chiedendo un link a un tale script o qualche consiglio su come affrontare le barre, dato che non ho esperienza.
 
ChAnton:
Buona sera. Sto cercando di capire le barre. Voglio scrivere uno script per analizzare le barre giornaliere. Sto cercando di analizzare la percentuale delle barre del giorno. Voglio raccogliere statistiche non solo per l'intera storia ma anche per un periodo di tempo selezionato. Ho provato a cercare uno script ma ce ne sono troppi. Sto chiedendo un link a un tale script o qualche consiglio su come affrontare le barre, dato che non ho esperienza.
Hai qualche esperienza di programmazione? Se non lo fai, dovresti leggere il libro di testo e la documentazione (i link sono in cima alla pagina) e imparare le basi... Maggiori informazioni sui bar qui https://docs.mql4.com/ru/predefined/variables
 
Salve, ho capito che OrderOpenTime() restituisce il numero di secondi trascorsi dalle 00:00 del 1 gennaio 1970. Come si fa a convertirlo in tempo normale?
Motivazione: