Versione beta dell'IDE di MetaTrader 4 che include un nuovo compilatore ed editor MQL4 - pagina 5

 
Probabilmente è difficile trovare un suggerimento di ottimizzazione più meschino, ma forse è il momento di organizzare l'output della lista Market Overview in ordine alfabetico dopo tutto? O è l'ingegnere in me che dice che tutto dovrebbe essere parallelo/perpendicolare... Un po' non stressante, ma nemmeno felice. Forse potresti aggiungere un paio di righe in più a quelle funzioni pronte al 90%, eh?
 
Zaxvatov:
Probabilmente è difficile trovare un suggerimento di ottimizzazione più meschino, ma forse è il momento di organizzare l'output della lista Market Overview in ordine alfabetico dopo tutto? O è l'ingegnere in me che dice che tutto dovrebbe essere parallelo/perpendicolare... Un po' non stressante, ma nemmeno felice. Forse potresti aggiungere un paio di righe in più a quelle funzioni pronte al 90%, eh?
C'è un'applicazione per questo. Ma un pulsante sarebbe meglio...
 
VOLDEMAR:

Domanda: Quando è il nuovo mt? Non vedo l'ora .....

Cosa state aspettando esattamente? Nuovi insetti? (che è inevitabile con cambiamenti così importanti). Non vedi l'ora di riscrivere e fare il debug di tutti i tuoi codici che non funzionano in un attimo? Non hai tempo libero da perdere?

Personalmente, tutto questo casino con le ultime build mi ha fatto pensare globalmente alle prospettive di tale programmazione MQL. E non importa se è al 4 o al 5. L'essenza è la stessa. Scrivi i tuoi programmi in un certo linguaggio sintetico che è legato a una piattaforma di trading, e alla fine diventi ostaggio di tutti i capricci e gli errori degli sviluppatori della piattaforma / linguaggio. Oggi vogliono incrociare MQL4 con MQL5, domani con MQL6, ecc. E non avete scelta, siete costretti a riprogettare i vostri sviluppi secondo le nuove regole. Altrimenti, tutto smetterà di funzionare. E così via. Non è tutto serio.

In generale, questa è stata la spinta finale per me a trasferire tutti i miei programmi MQL in un ambiente di programmazione indipendente senza legarsi a una specifica piattaforma di trading. E userò MQL solo come collegamento tra MT e il mio programma. E questo è probabilmente l'unico modo giusto. A meno che non abbiate intenzione di vendere i vostri sviluppi sul mercato, naturalmente).

Beh, se ti piace programmare in MQL e vuoi solo alcune nuove caratteristiche (cioè l'interesse sportivo), allora cosa ti impedisce di codificare in P5, dove tutto questo è già implementato?

 
Meat:

Cosa state aspettando esattamente? Altri insetti? (che è inevitabile con cambiamenti così importanti). Non vedi l'ora di riscrivere e debuggare tutti i tuoi codici che non funzionano in un attimo? Non hai tempo libero da perdere?

Personalmente, tutto questo casino con le ultime build mi ha fatto pensare globalmente alle prospettive di tale programmazione MQL. E non importa se è al 4 o al 5. L'essenza è la stessa. Scrivi i tuoi programmi in un certo linguaggio sintetico che è legato a una piattaforma di trading, e alla fine diventi ostaggio di tutti i capricci e gli errori degli sviluppatori di questa piattaforma / linguaggio. Oggi vogliono incrociare MQL4 con MQL5, domani con MQL6, ecc. E non avete scelta, siete costretti a riprogettare i vostri sviluppi secondo le nuove regole. Altrimenti, tutto smetterà di funzionare. E così via. Non è tutto serio.

In generale, questa è stata la spinta finale per me a trasferire tutti i miei programmi MQL in un ambiente di programmazione indipendente senza legarsi a una specifica piattaforma di trading. E userò MQL solo come collegamento tra MT e il mio programma. E questo è probabilmente l'unico modo giusto. A meno che non abbiate intenzione di vendere i vostri sviluppi sul mercato, naturalmente).

Beh, se ti piace programmare in MQL e vuoi solo alcune nuove caratteristiche (cioè l'interesse sportivo), allora cosa ti impedisce di codificare in P5, dove tutto questo è già implementato?

Sono d'accordo, se lo sviluppatore avrebbe lasciato il supporto per lavorare su vecchie build, almeno 500 e rimuovere l'aggiornamento obbligatorio a una nuova build, che sospetto sarà implementato, sarebbe ok, ma è un altro sviluppatori mossa incomprensibile. Naturalmente, sostengo l'inclusione di OOP, ma è facilmente implementabile in una dll e non c'è bisogno di appiccare un incendio con una nuova versione del linguaggio come nuovo standard. Per esempio, lo stesso C++, hanno diversi standard esistenti, ma in generale c'è una base comune che funzionerà per qualsiasi implementazione del codice.
 
Barbarian:
Sono d'accordo, se lo sviluppatore avrebbe lasciato il supporto per le vecchie build, almeno 500 e rimosso l'aggiornamento obbligatorio a una nuova build, che sospetto sarà implementato, sarebbe ok, ma è un altro sviluppatori mossa incomprensibile. Naturalmente, sostengo l'inclusione di OOP, ma è facilmente implementabile in una dll e non c'è bisogno di appiccare un incendio con una nuova versione del linguaggio come nuovo standard. Per esempio, lo stesso C++, hanno diversi standard esistenti, ma in generale c'è un nucleo comune che funzionerà in qualsiasi implementazione del codice.

Ho il sospetto che stiri con ferri da stiro in ghisa e riscaldi il fornello con il carbone... Le innovazioni sono buone, non solo il mercato valutario è molto dinamico e bisogna essere sempre in tendenza se si vuole ottenere qualcosa... nuovi cambiamenti in meglio, si spera ....
 
VOLDEMAR:

Le innovazioni sono buone, non solo il mercato valutario è molto dinamico e bisogna essere sempre in tendenza se si vuole ottenere qualcosa... nuovi cambiamenti in meglio, si spera ....

Una cosa è essere "di tendenza" da soli, un'altra cosa è far diventare "di tendenza" i vostri disegni passati. Se non ne avete molti o non sono di valore, allora nessun problema. Ma molte persone qui hanno accumulato un enorme codice di base, scritto e debuggato per anni. E ora tutti vengono messi davanti al fatto che una parte considerevole di questo codice smetterà presto di funzionare. Questa è una sciocchezza. In questi casi, la retrocompatibilità, cioè il supporto delle vecchie versioni del linguaggio è sempre previsto, ma le meta-citazioni non lo fanno.

 
Meat:

Una cosa è essere "di tendenza", ma un'altra cosa è far diventare "di tendenza" i propri disegni passati. Se non ne avete molti o non sono di valore, allora nessun problema. Ma molte persone qui hanno accumulato un enorme codice di base, scritto e debuggato per anni. E ora tutti vengono messi davanti al fatto che una parte considerevole di questo codice smetterà presto di funzionare. Questa è una sciocchezza. In casi come questo, la compatibilità all'indietro è sempre prevista, cioè il supporto per le vecchie versioni del linguaggio, ma le meta-citazioni non lo fanno.


Ne sei sicuro? Si tratta di un insider?
 
Meat:

Una cosa è essere "di tendenza", ma un'altra cosa è far diventare "di tendenza" i propri disegni passati. Se non ne avete molti o non sono di valore, allora nessun problema. Ma molte persone qui hanno accumulato un enorme codice di base, scritto e debuggato per anni. E ora tutti vengono messi davanti al fatto che una parte considerevole di questo codice smetterà presto di funzionare. Questa è una sciocchezza. In casi come questo, la compatibilità all'indietro è sempre prevista, cioè il supporto per le vecchie versioni del linguaggio, ma le meta-citazioni non lo fanno.

Parole di un allarmista. Metacquote ha detto molte volte, e probabilmente non si stancherà di ripeterlo, che ci sarà piena compatibilità. Basta con l'infantilismo.
 
FAQ:

Sei sicuro di questo? Si tratta di un insider?

artmedia70:
Le parole di un allarmista. Le meta-citazioni hanno detto molte volte e probabilmente non si stancheranno di ripetere che ci sarà piena compatibilità. Vuoi smetterla con questa infantilità?

Qui l'ho evidenziato, in modo che nessuno possa dire che è completamente compatibile:

Renat:


Quali sono le differenze rispetto alla vecchia versione di MQL4:

  • La priorità delle operazioni logiche AND/OR è cambiata. Ora tutto è come nel classico C/C++

  • È stata introdotta una valutazione abbreviata delle espressioni logiche. Ora, quando si valuta un'espressione logica, le sottoespressioni rimanenti non vengono valutate. Come in C/C++.

  • L'operatore switch ora usa solo valori interi. In precedenza, si potevano usare quelli veri.

  • Ora, non si può usare un punto fermo nei nomi delle variabili. Inoltre, non potete usare i caratteri '@', '$', '?' nei nomi delle variabili.

  • I requisiti per la funzione di avvio sono stati rafforzati. In precedenza, si potevano specificare i parametri nella funzione di avvio. Ora tutti i punti di ingresso init, start, deinit, OnInit, OnStart, OnTick, OnTimer, ecc. devono corrispondere esattamente alle loro firme

  • A causa dell'espansione del set di parole chiave, nomi come short, long, float, const, virtual, input, delete, new, do, char non possono più essere usati.

  • Le funzioni dll importate non possono più accettare array di stringhe come parametro. Come in MQL5

  • Sono apparsi nomi di variabili predefinite _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed, che possono essere in conflitto con semplici variabili dichiarate nel codice sorgente esistente con gli stessi nomi

  • Il tipo datetime è diventato 8 byte, come in MQL5.

Le differenze non sono fatali, e possono essere facilmente corrette nel codice. Invece, molte delle caratteristiche di MQL5, così come la velocità di esecuzione e un controllo di qualità molto più stretto, sono disponibili per noi.

In rosso, ho evidenziato i più sgradevoli.
 
Barbarian:
Io, naturalmente, sostengo l'inclusione di OOP, ma è implementato in dll e non c'è bisogno di iniziare una farsa in una nuova edizione del linguaggio come nuovo standard.

Non credo che nulla dovrebbe essere cambiato in Mql4. È esistito immutato per molti anni, tutti i mali sono stati curati e gli utenti si sono abituati. La cosa principale è che era un linguaggio molto semplice e unico con le sue caratteristiche, per esempio, permetteva un po' di libero arbitrio, che poteva far risparmiare molte righe di codice. L'unica cosa che mancava erano le strutture. Avresti potuto limitarti ad aggiungerli e basta. E MQL5, con la sua noiosa severità e le sue limitazioni, non è più così interessante, perché, come ha giustamente sottolineato Barbarian, è molto più facile codificare in vero C++ con possibilità molto più ampie.

In breve, la soluzione migliore sarebbe quella di lasciare MQL4 così com'è e aggiungere MQL5 come un linguaggio separato in MT4 (solo il set di funzioni sarà diverso da MT5). L'utente deciderebbe da solo in quale lingua scrivere.

Motivazione: