Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1072

 
Buon pomeriggio, domanda da 5 copechi))) Potete dirmi cosa significa il segno "&" quando si passa a una funzione? Esempio: int determineSection_D1(int & askSection_D1,int & bidSection_D1) ? Grazie.
 
rabanik:    Buono ... su un centesimo ... cosa significa ... "&" quando sipassa a una funzione?

Clicca a sinistra sull'immagine per ingrandirla o clicca a destra e salva

MetaEditor ha un aiuto per il linguaggio MQL-4. Ha senso leggere tutto l'aiuto o almeno percorrerlo

 

Buon pomeriggio.

Ho fatto un pulsante sullo schermo e voglio allegare un'apertura Offline Chart ad esso. Quale funzione posso usare per specificare il percorso del grafico offline desiderato?

 
Buon pomeriggio, come possiamo fare in modo che il grafico si aggiorni automaticamente ogni 10 secondi in modo da non dover premere il pulsante "Update" ogni volta?
 
zert: aggiornare il diagramma
voidOnTimer() // Sul timer WindowRedraw(); // Ridisegna la finestra
 
LRA:
voidOnTimer() // Sul timer WindowRedraw(); // Ridisegna la finestra
Non capisco dove scrivere tutto, puoi mostrarmi uno screenshot?
 
zert:   dove scrivere
inserire nell'EA che state usando. Se non ce n'è uno, dovete scriverne uno. Perché un nuovo soprannome?
 
LRA:

Clicca a sinistra sull'immagine per ingrandirla o clicca a destra e salva

Il MetaEditor ha un aiuto per il linguaggio MQL-4. Ha senso leggerlo tutto, o almeno sfogliarlo

Grazie per la risposta. Non lo capisco fino in fondo. Per esempio, ho la funzione SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) con dei parametri. Inoltre, se per esempio nel codice provo a fare riferimento ad esso in qualsiasi condizione, ottengo l'errore "parametro passato come riferimento, variabile".

Per favore, consigliate cosa fare? Grazie.

 
rabanik:    se vai su .... errore "parametro passato come riferimento, variabile".

Se il parametro è senza & pass by value, che è più affidabile. Il parametro effettivo viene copiato e una copia viene passata alla funzione. Le modifiche apportate al parametro all'interno della funzione rimangono all'interno della funzione. Il parametro effettivo al posto della chiamata di funzione rimane invariato. E non importa per la funzione se le viene passata una costante o una variabile, perché in ogni caso solo una copia del parametro raggiunge la funzione. Questo viene fatto per aumentare l'affidabilità, per proteggere le variabili da cambiamenti accidentali all'interno di una funzione.

Quando si passa il parametro per riferimento, si specifica il simbolo &, e questo significa che il riferimento, l'indirizzo della variabile stessa, viene passato alla funzione. E la funzione può cambiare questa variabile e questi cambiamenti influiranno sul valore della variabile all'interno della funzione che ha chiamato questa funzione. Bene, perché una funzione cambi il valore di un parametro, deve essere una variabile, il traduttore molto probabilmente ha scritto: parametro passato come riferimento, variabile attesa = parametro per riferimento deve essere una variabile

In caso di dubbio di nuovo, ho la funzione SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) invece farei meglio a scrivere come è stata chiamata la funzione. Sembra che si passi un numero come primo parametro, il che non ha senso. In questo parametro, la vostra funzione cerca di restituire il numero con il quale l'ordine è stato inserito nel database del broker. Chiaramente questa dovrebbe essere una variabile. In caso di dubbio, date un'occhiata alla funzione. E la funzione è VERO per cambiare il numero passato, vuole una variabile in quel posto.

 

Non sarebbe più facile capire da un esempio?

void OnStart()
{
 int a = 5;
 int b = 7;
 int c = f(a, b);
 Print("a = ", a, ": b = ", b": c = ", c);
}

int f(int k, int n)
{
 k += 2;
 return(k+n);
}

//результат a = 5: b = 7: с = 14

L'altra opzione

void OnStart()
{
 int a = 5;
 int b = 7;
 int c = f(a, b);
 Print("a = ", a, ": b = ", b": c = ", c);
}

int f(int &k, int n)
{
 k += 2;
 return(k+n);
}

//результат a = 7: b = 7: с = 14

questa è la differenza.

Motivazione: