Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 54
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
Caratteristiche delle strutture ereditate
Se vuoi sapere se il flag "Unlimited" è abilitato in Settings --> Charts --> Max bars nella finestra, usa questa costruzione:
Quando non voglio che un metodo pubblico si illumini (quando si digita un punto dopo il nome dell'oggetto, per esempio), rendo questo metodo un operatore pubblico. Tuttavia, non è sempre possibile utilizzare tale stampella.
Quando non voglio che un metodo pubblico si illumini (quando si digita un punto dopo il nome dell'oggetto, per esempio), rendo questo metodo un operatore pubblico. Tuttavia, non è sempre possibile utilizzare una tale stampella.
C'è un esempio nel codice? Per favore.
C'è un esempio nel codice? Per favore.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Peculiarità del linguaggio mql5, sottigliezze e trucchi
fxsaber, 2017.09.08 13:20
Non è questo
Non è la stessa cosa?E questo.
Non è la stessa cosa?No, certo che no. Campi Valore1, Valore2, ... sono molti; GetValue1() e GetValue2() sono uguali. Non è razionale eseguire ulteriori calcoli ad ogni GetValue. Non ha senso eseguire calcoli anche in un GetValue chiamato più di una volta.
Non riuscivo a capire come poter impostare la dimensione di un campo array di una struttura semplice. Così ho fatto questa stampella.
Ho usato le macro, per farla breve. In MQL5 probabilmente non c'è altro modo. È una soluzione normale in C++? Come template <typesize S>.
Forum sul trading, sistemi di trading automatico e test di strategia
Biblioteche: MT4Orders
fxsaber, 2017.09.14 08:52
Il trigger SL/TP è stato postato sul forum anche prima delle bandiere di MQL5 Reason. La sua logica mostrava chiaramente che quando i livelli SL/TP/SO di una posizione aperta vengono accettati dal server di trading, l'ordine di mercato corrispondente viene generato e rimane nella tabella MT5 degli ordini aperti fino a quando non viene eseguito.
Quindi in MT5 anche su MQL5 puro la modifica/cancellazione di tali ordini non è possibile, e la logica di trading in MT5 richiede di controllare se un ordine aperto è effettivamente congelato o meno.
...Potete vedere che per più di un quarto di secondo l'ordine TP è rimasto sospeso tra quelli aperti. Qualsiasi tentativo di modificarlo/cancellarlo avrebbe causato degli errori.
Siate consapevoli di questa caratteristica di MT5.
Quando non voglio che un metodo pubblico si illumini (quando si digita un punto dopo il nome dell'oggetto, per esempio), rendo questo metodo un operatore pubblico. Tuttavia, non è sempre possibile utilizzare una tale stampella.
In realtà è una specie di mega stampella. Come analizzerete in seguito il vostro codice contenente operatori così poco informativi che non sanno cosa stanno facendo?
Deve essere un errore di progettazione. Se una classe non è inizialmente destinata ad essere modificata dall'esterno, ma contiene solo metodi Get, dovrebbe essere la stessa. Tutte le modifiche vengono effettuate attraverso le classi ereditate da esso.
Un'altra variante conveniente sarebbe l'ereditarietà protetta, quando la classe base contiene tutti i metodi e la classe ereditata mostra solo i metodi Get. E quando è necessario, si può fare il cast alla classe base. Ma Metaeditor non ha ancora risolto il bug, tutti questi metodi saranno scaricati nella lista anche se non sono disponibili.
Non è razionale fare calcoli aggiuntivi su ogni GetValue. Anche un GetValue chiamato più di una volta non ha bisogno di eseguire calcoli.
Quindi cosa vi impedisce di usare il metodo Recalculate()? Se è questo che fa funzionare logicamente la classe, perché la classe stessa non può definire quando è necessario ricalcolare, significa che la classe è controllata da un utente.