Buongiorno.
Sto perdendo la testa dietro ad un problema apparentemente semplice che non riesco a risolvere...
Ho preparato una funzione per il mio EA che apre una posizione, memorizza il ticket, e dovrebbe poi passarlo al codice principale, che lo utilizzera' in seguito per selezionare proprio quella posizione.
Il mio problema e' che il ticket all'interno della funzione viene perfettamente percepito (lo so perche' in fase di debug glielo faccio scrivere) ma il codice principale che ha chiamato la funzione non lo recepisce (lo so perche' glielo faccio scrivere, ma mi restituisce 0).
So che con l'eccezione delle funzioni VOID, dovrebbe essere possibile restituire un valore utilizzando RETURN. Ma non mi funziona...
Ecco il codice della funzione nelle parti salienti (ho eliminato la parte che apre il file e che funziona):
int ApriLongHedging()
{
<codice funzionante che apre la posizione>
Print("Ticket (funzione apertura posizione): ", SLTicket);//Debug, funziona
return (SLTicket);
}
Il codice principale chiamerebbe questa funzione col comando:
ApriLongHedging()
Poi tenta una verifica, con esito negativo:
Print ("Ticket (codice principale): ",SLTicket); // DEBUG: restituisce 0
Qualcuno ha idea di dove stia lo sbaglio?
Di funzioni ne ho fatte parecchie, ma erano sempre di tipo VOID, e questo problema mi trova spiazzato.
:-(
Funzione che non funziona
Re: Funzione che non funziona
Il valore è restituito dalla funzione quindi dovresti salvarlo su una variabile oppure usarlo direttamente nella print.
miaVariabile = ApriLongHedging();
miaVariabile = ApriLongHedging();
-
- Messaggi: 4
- Iscritto il: 27/03/2020, 16:27
Re: Funzione che non funziona
Esatto, ora funziona!
:-)
:-)
Chi c’è in linea
Visitano il forum: Nessuno e 1 ospite