Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1264
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
Nella struttura
POSIZIONE_STRUTTURA
la struttura contiene il metodo
GetCurrentPositionProperty(void)
che calcola e assegna valori agli elementi della struttura. Definire il corpo del metodo al di fuori della struttura. Per farlo, usate l'operazione di risoluzione del contesto (::).
In OnTick() chiamiamo la funzione:
void OnTick() { //--- STRUCT_POSITION.GetCurrentPositionProperty(); }
E qui otteniamo un errore:
'.' - nome atteso eSower_and_Gather_5.mq5 69 19
Non so dove sia andato storto, per favore aiutatemi.
'.' - nome previsto eSower_and_Gather_5.mq5 69 19
Cos'è la linea 69 19? Si prega di pubblicare la linea di codice 69 e di specificare dove si trova la posizione 19. Sarà immediatamente chiaro dove si trova l'errore.
Cos'è la linea 69 19? Codice postale linea 69 e specificare dove si trova la 19a posizione. Sarà immediatamente chiaro dove si trova l'errore.
STRUCT_POSITION.GetCurrentPositionProperty();
È evidenziato in rosso nel post sopra. Grazie per la sua pronta risposta.
Cos'è la linea 69 19? Codice postale linea 69 e specificare dove si trova la 19a posizione. Sarà immediatamente chiaro dove si trova l'errore.
Questo è un punto che deve dare accesso a una funzione che a sua volta utilizza il contesto della struttura. Ma non riesco a capire perché non funziona.
è evidenziato in rosso nel post sopra. Grazie per la sua pronta risposta.
STRUCT_POSITION' è un TIPO DI DATI. Dovete creare una variabile con questo tipo e poi chiamare VARIABLE.GetCurrentPositionProperty();
Questo è il punto che dovrebbe dare accesso alla funzione, che a sua volta utilizza il contesto della struttura. Ma perché non funziona non riesco a capire.
Codice: (basta chiamare una funzione - funzione EA, non un metodo di struttura - che ha più senso)
STRUCT_POSITION' è un TIPO DI DATI. Dovete creare un oggetto con questo tipo e poi chiamare OBJECT.GetCurrentPositionProperty();
Provato. Tale oggetto viene creato, dichiarato subito dopo la dichiarazione dell'elemento
StrPositionArray[].
Se lo metti in OnTick
otteniamo un errore:
']' - espressione prevista eSower_and_Gather_5.mq5 69 21
Codice: (basta chiamare una funzione - funzione EA, non un metodo di struttura - che ha più senso)
Quindi usare :: era un'idea inutile?
Allora perché hai scritto la funzione
all'interno della struttura? Riempirebbe la struttura senza alcun riempimento al suo interno, vero? Per favore chiarite, sono confuso, forse questa è una funzione obsoleta, dovrei dimenticarla?
Quindi usare :: è stata una perdita di tempo?
Allora perché scrivere una funzione
all'interno della struttura? Cioè, riempirà perfettamente la struttura anche senza. Per favore, chiarisci, sono confuso, forse questa è un'idea obsoleta che dovrebbe essere dimenticata.
Copia-incolla. C'è una linea rimasta dopo il copia-incolla.
Dovrebbe essere così (non ci sono metodi all'interno della struttura)
Copia-incolla. C'è una linea lasciata dopo il copia-incolla.
Dovrebbe essere così (non ci sono metodi all'interno della struttura)
Beh, ho speso tanto tempo per la lezione. Anche se era per MT4, è stato presentato lì come un trucco, quindi ecco un estratto del testo:
La struttura ha un metodo Refresh() che calcola e assegna valori agli elementi della struttura. Definiamo il corpo del metodo fuori dalla struttura. Per fare questo, usiamo l'operazione di risoluzione del contesto (::). Il contesto è un descrittore (nome) della struttura:
Notate che nel corpo del metodo ci riferiamo agli elementi della struttura senza usare un punto, poiché abbiamo usato l'operazione di risoluzione del contesto. I campi numerici sono azzerati da ZeroMemory() con la parola chiave this prima di aggiornarli all'inizio del corpo del metodo, quindi la struttura passa un riferimento a se stessa.
Il codice principale di EA all'interno del gestore OnTick() sarà ora simile a questo