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
Quindi dovrebbe essere così che il ruolo di costruttore di copia è eseguito dall'operatore di assegnazione sovraccaricato?
Lo schermo visualizza 1, cioè il costruttore di copia viene eseguito.
Credo che sia questo: "2) decommentare uno stop con un operatore di assegnazione sovraccaricato" non dovrebbe aiutare.
Non so cosa sia corretto, ma l'operatore di assegnazione in VS non svolge il ruolo del costruttore di copia.
Lo schermo visualizza 1, cioè il costruttore di copie è in esecuzione.
Penso questo: "2) decommentare uno stop con un operatore di assegnazione sovraccarico" non dovrebbe aiutare.
Il costruttore di copie viene eseguito qui
non all'interno della funzione fn().Il costruttore di copie viene eseguito qui
e non dentro la funzione fn().In questa variante:
La linea "Il costruttore di assegnazioni viene eseguito" non viene emessa.Ed è così che si deduce:
WWer, se per analogia con VS, hai bisogno di guardare la situazione specifica, dai un esempio specifico di copia/assegnazione. Ciò che sarà eseguito viene deciso sul posto.Perché dovrebbe essere inizializzato? È un'istanza di una classe che ha un costruttore proprio per questo scopo.
E come scrivere correttamente un costruttore di copia per questo scopo?
La vostra funzione getCopy() che cerca di restituire l'oggetto è scritta abbastanza correttamente. Dopo aver sovrascritto l'assegnazione che restituisce già un puntatore, l'errore svanisce.
--
La confusione qui può essere causata dal fatto che il linguaggio ha qualche "scappatoia sintattica", associata alla stessa rappresentazione sintattica dell'accesso ai campi di un oggetto statico e di uno dinamico (attraverso un punto, non una freccia. Che, tra l'altro, è davvero conveniente). Questo è molto comune, e può in qualche modo smussare la distinzione tra oggetti e puntatori a oggetti, che a sua volta può portare ad alcune illusioni, come quella che qualcosa possa essere assegnato a una variabile oggetto statica (o automatica). Lungi da ciò, una variabile oggetto a sinistra di un'assegnazione è sempre un puntatore, se il costruttore di copie non è definito.
C++ costruisce l'oggetto q2 all'interno della funzione fn() in ritorno, ecco perché il costruttore di copia funziona.
In MQL5, l'oggetto è costruito dall'esterno, quindi ci sono differenze. Eliminiamoli.
Per coloro che sono interessati: si chiama ottimizzazione del valore di ritorno
Colleghi, buona giornata!
Potete dirmi come posso ottenere valori di prezzo per diversi strumenti finanziariin sincronia? Intendo, per esempio, i prezzi di chiusura delle barre in un certo momento del passato su diversi strumenti. L'uso della funzione CopyClose e l'ottenimento dei valori per indice di barre non è assolutamente corretto, perché ci possono essere alcune barre mancanti per diversi strumenti. Per quanto ricordo, mql4 ha la funzione BarShift per tempo, c'è un analogo su mql5?
Se conoscete l'ora, potete usare questa funzione.
Indirizzamento per data di inizio e numero di articoli richiesti
intCopyClose(
stringasymbol_name,// nome del simbolo
ENUM_TIMEFRAMEStimeframe,// periodo
datetimestart_time,// da cuidata
intcount,// quanti ne copiamo
doubleclose_array[]// array per copiare i prezzi di chiusura
);
Se conoscete l'ora, potete usare questa funzione.
Fare riferimento alla data di inizio e al numero di articoli richiesti
intCopyClose(
stringasymbol_name,// nome del simbolo
ENUM_TIMEFRAMEStimeframe,// periodo
datetimestart_time,/ da quale data
intcount,// quanti ne copiamo
doubleclose_array[]// array per copiare i prezzi di chiusura
);
Supponiamo che io voglia trovare il rapporto tra close[i] EUR/USD e close[i] GBP/USD, ma se uso l'indice i, le barre possono essere comunque diverse nel tempo, perché ci sono alcune barre mancanti.
In altre parole, devo usare CopyClose(Symbol, 0, date_of_current_bar, 1, array) in cicli per ogni barra ?
Mi sembra che i bar dei vecchi TF raramente "spariscano".
Un'altra variante è quella di ottenere il tempo di questa barra simultaneamente attraverso CopyTime().
E la terza opzione (probabilmente la più semplice) usare CopyRates nella struttura in una volta sola.