Discussione sull’articolo "L'uso delle Librerie MQL5 Standard Trade Class nella scrittura di un Expert Advisor" - pagina 3
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
Ci sono anche righe nella classe COrderInfo
return(FormatType(str,Type())); ... FormatType(type,Type()) ... if(m_type==Type() && m_state==State() &&Ma la funzione Type() è assente nella classe.
La sezione 1.4 dell'articolo fornisce le caratteristiche della classe COrderInfo che, a giudicare dalla descrizione, è stata progettata per lavorare con gli ordini in sospeso attivi. Si suggerisce di fare come segue:"Per utilizzare questa classe per ottenere le proprietà degli ordini in sospeso, si richiede innanzitutto il numero totale di ordini e li si seleziona per biglietto d'ordine".
Ma se la funzione HistorySelect() è stata progettata per interrogare la"storia delle transazioni e degli ordini", cioè per interrogare gli ordini storici, perché utilizzare questa funzione per interrogare il numero totale di ordini pendenti attivi?Nella classe COrderInfo ...
Ma la funzione Type() è assente nella classe.
Qualcuno può spiegare? Ecco un pezzo di codice della classe CDealInfo:
La funzione CDealInfo::FormatDeal(string& str) contiene questa riga:
symbol.Name(Symbol());A sua volta, la funzione Symbol() è definita sia nella classe CDealInfo stessa che tra le funzioni standard del terminale client. Quale funzione viene passata come argomento alla funzione symbol.Name()? In base a quale regola?Qualcuno può spiegare? Ecco un pezzo di codice della classe CDealInfo:
La funzione CDealInfo::FormatDeal(string& str) contiene questa riga:
A sua volta, la funzione Symbol() è definita sia nella classe CDealInfo stessa che tra le funzioni standard del terminale client. Quale funzione viene passata come argomento alla funzione symbol.Name()? Secondo quale regola?In questo caso vale la stessa regola dell'ambito delle variabili. Se una variabile è dichiarata con un unico nome a livello globale e locale, all'interno dell'ambito locale il nome punterà alla variabile locale e all'esterno a quella globale.
Si scopre che se una funzione standard viene sovraccaricata all'interno di una classe, il corpo dell'overload verrà chiamato nella classe stessa e il corpo della funzione standard verrà chiamato a livello globale. Il corpo della funzione sovraccaricata può essere richiamato a livello globale attraverso il puntatore alla classe.
In questo caso vale la stessa regola dell'ambito delle variabili. Se una variabile è dichiarata con lo stesso nome a livello globale e locale, all'interno dell'ambito locale il nome punterà alla variabile locale e all'esterno a quella globale.
Si scopre che se una funzione standard viene sovraccaricata all'interno di una classe, il corpo dell'overload verrà chiamato nella classe stessa e il corpo della funzione standard verrà chiamato a livello globale. Il corpo della funzione sovraccaricata può essere chiamato a livello globale attraverso il puntatore di classe.