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

 

Inizio dell'argomento:

Di seguito la versione beta dell'IDE, la stessa per MetaTrader 4/MQL4 e MetaTrader 5/MQL5. Questa è una versione in anteprima per la revisione pubblica.

Quali sono le differenze rispetto alla vecchia versione di MQL4?

  • La priorità delle operazioni logiche AND/OR è stata 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, non possiamo usare nomi come short, long, float, const, virtual, input, delete, new, do, char.

  • Ora le funzioni dll importate non possono prendere array di stringhe come parametro. Come in MQL5

  • Ora sono apparsi i nomi di variabili predefinite _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed che possono scontrarsi con semplici variabili dichiarate in fonti esistenti con gli stessi nomi

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

Le differenze non sono fatali e possono essere facilmente risolte nel codice. In cambio, abbiamo a disposizione un sacco di caratteristiche di MQL5, così come la velocità di esecuzione e un controllo di qualità molto più stretto.


Stiamo pianificando di eseguire test pubblici per tutto il prossimo mese per raccogliere più feedback possibile e per preparare gli sviluppatori.

Discussione sul forum MQL5: https://www.mql5.com/ru/forum/13651

File:
 

Questo è quello che mi ha stressato di più:

Renat:

Ora le funzioni dll importate non possono accettare array di stringhe come parametro. Come in MQL5

Perché è impossibile mantenere la compatibilità? Devi riscriverlo di nuovo? Gli array di stringhe MQL4 rimangono? Se rimangono, non è chiaro come lo avete proibito e perché?
 
Si tratta solo di trasferire a una DLL.
 
Renat:

Discussione sul forum MQL4: https://www.mql5.com/ru/forum/13651

:)
 
Possiamo davvero rendere il forum MT4 come una sezione del forum MT5?
 
In precedenza, durante la compilazione, non c'erano avvertimenti se i nomi delle variabili globali e locali coincidevano, ma ora esce - "dichiarazione di 'dist' nasconde la dichiarazione globale alla linea 63", anche questo avvertimento esce quando i nomi dei parametri formali della funzione e i nomi delle variabili globali coincidono. È critica e può influenzare il comportamento del programma? Oppure è puramente stilisticamente scorretta, per esempio, in modo che non ci sia confusione in progetti complessi? (Sono già abituato a tenere a mente gli scopi delle variabili e spesso chiamo variabili simili per scopo con lo stesso nome)
 
zenz:
... Questo è critico e potrebbe influenzare il comportamento del programma...?
Il comportamento del programma non cambierà, se c'era un uso errato di una variabile in 4ka, rimarrà nel nuovo compilatore.
 
Ho compilato il file nel nuovo editor e l'ho passato a MT4.509 - l'ha cancellato... :(
 
TarasBY:
Ho compilato il file con il nuovo editor e l'ho passato a MT4.509 - l'ha cancellato... :(

Questo è logico, poiché il vecchio terminale non sa nulla del nuovo formato della lingua.

Finora abbiamo rilasciato solo un editor e un compilatore per i test preliminari. In un paio di settimane rilasceremo una versione beta del nuovo terminale che può funzionare con il nuovo formato del programma.

Raccomando di leggere i link nel post originale - praticamente coprono tutto.

 
Renat:

Questo è logico, poiché il vecchio terminale non sa nulla del nuovo formato della lingua.

Finora abbiamo rilasciato solo un editor e un compilatore per i test preliminari. In un paio di settimane, rilasceremo una versione beta del nuovo terminale che può funzionare con il nuovo formato del programma.

Raccomando di leggere i link nel post originale - coprono quasi tutto.


Non l'ho ancora guardato, ma sarebbe meglio fare un tester come MT5, con le virgolette :), e non sarebbe male collegare un tester alle risorse del processore.
 
M2012K:

Non l'ho ancora guardato, ma sarebbe meglio se facessero un tester come MT5, con citazioni :), e non sarebbe male allegare un tester alle risorse del processore.


Ricordate il cartone animato "Porridge dall'ascia"? ;)))

Motivazione: