English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
Arriva il Nuovo MetaTrader 5 e MQL5

Arriva il Nuovo MetaTrader 5 e MQL5

MetaTrader 5Esempi | 8 dicembre 2021, 16:54
193 0
Yuriy Zaytsev
Yuriy Zaytsev

Darò solo una breve descrizione di alcuni momenti.


Fig. 1. Non è Photoshop, è MQL5.

Quasi tutto ciò che interessava me e altri in MQL5 e MT5 è implementato ad un livello molto alto.

Il cambiamento fondamentale su MQL5 è l'aspetto della programmazione orientata agli oggetti. Non approfondirò l'OOP: i programmatori esperti hanno più possibilità. Per coloro a cui è piaciuto MQL4 e non conoscono l'OOP, gli sviluppatori hanno lasciato la possibilità di scrivere in MQL5 utilizzando lo stile di MQL4 senza OOP. La differenza sta nella funzionalità che dovrebbe essere imparata di nuovo.

Facciamo un semplice esempio: le variabili Ask e Bid non esistono più. Per ottenere i valori Bid, è necessario chiamare la seguente funzione:

SymbolInfoDouble(Symbol(),SYMBOL_BID);

Non ci sono Low[0] o iLow ( Symbol(), PERIOD_D1, 0 ) usati frequentemente, ma si possono ricostruire facilmente. Le nuove funzioni che lavorano con i dati storici danno la possibilità di leggere i dati storici nella memoria da un punto all'altro, da una certa barra ad un'altra determinata barra o dall'ora selezionata all'altra ora selezionata. Prima della lettura di una serie di dati, l'intero intervallo visibile è stato caricato in memoria. Che ne aveste bisogno o no, è stato letto; e se era necessario leggere M1, è stato letto dal 1999 (nel caso in cui la cronologia fosse disponibile) fino alla data, all'ora e ai minuti correnti.

Ora è possibile leggere solo l'intervallo necessario, risparmiando notevolmente tempo e memoria.

MqlRates rates_arrayG[];
Int Bar=30; // read only 30 bars stating from the zero one
iCopBar=CopyRates(Symbol(),PERIOD_M1,0,Bar,rates_arrayG);

Questa funzione consente di risparmiare tempo e memoria.

Un tale cambiamento di funzionalità non spaventa. Avremo semplicemente bisogno di tempo per imparare nuove funzioni analoghe.

Alcune novità funzionali che mi aspettavo da MQL:

  • OnTimer() - funzione per elaborare gli eventi del timer (ora non è necessario eseguire il loop dell'Expert Advisor per farlo funzionare con una certa periodicità indipendente dall’incoming tick);
  • OnTrade() - funzione per elaborare eventi di trading - apertura, chiusura o variazione del volume di una posizione di trading ;
  • OnChartEvent() - elaborazione degli eventi tramite mouse o tastiera.

Soffermiamoci un po' su questi.

La funzione OnTimer() viene chiamata se il timer viene preinizializzato nella funzione preimpostata OnInit (processore degli eventi di inizializzazione EA).

Esempio:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   EventSetTimer(1); //each second we'll refer to OnTimer()
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit()
  {
   EventKillTimer(); // canceling of timer reference must be called at exit
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
   MqlDateTime str1;
   TimeGMT(str1); // new function to get GMT time
   Comment(str1.hour
           ,str1.min
           ,str1.sec
           ,str1.day
           ,str1.mon
           ,str1.year
           ,str1.day_of_year
           ,OrdersTotal()
           ,PositionsTotal()
           );
  }

Quindi, il controllo può essere ottenuto non solo alla ricezione del tick così come era prima, ma anche dal timer che consente di scrivere programmi gestibili in tempo reale. Con questa possibilità si possono creare sistemi più elaborati.

Mi è piaciuta la funzione OnTrade(). Questa funzione viene chiamata nel momento in cui si genera uno dei seguenti eventi di trading: inserimento di ordini, attivazione di StopLoss o TakeProfit, modifica dei livelli di StopLoss o TakeProfit, inserimento/cancellazione di un ordine in sospeso.

Ora è molto più semplice monitorare gli eventi legati alle operazioni di trading. Ora non c'è bisogno di controllare lo stato degli ordini a tick o barre nei cicli. Tali cicli sono utilizzati su MQL4 che riduce considerevolmente le prestazioni del programma così importante nel processo di ottimizzazione.

Soffermiamoci sulla funzione OnChartEvent(). La chiamata alla funzione viene eseguita per diversi eventi. Non sono riuscito a testare ciascuno di loro, ma l'elenco è davvero impressionante:

  • CHARTEVENT_KEYDOWN — evento di pressione dei tasti;
  • CHARTEVENT_OBJECT_CLICK — evento di un click del mouse su un oggetto grafico appartenente ad un diagramma;
  • CHARTEVENT_OBJECT_DRAG — evento di spostamento di un oggetto grafico eseguito da un mouse;
  • CHARTEVENT_OBJECT_ENDEDIT — evento di fine modifica del testo;
  • CHARTEVENT_CUSTOM+n — identificatore di un evento personalizzato;
  • CHARTEVENT_CUSTOM_LAST — l'ultimo.

La possibilità di gestire il trading e la grafica a un nuovo livello funzionale: questo è ciò che gli sviluppatori hanno promesso.

Sono comparsi nuovi oggetti grafici, pulsanti, campi da compilare. La gestione dei grafici è diventata meravigliosa: si possono persino inserire immagini dai file. Questa opzione offre molte possibilità a chi predilige il design speciale. Questo non è Photoshop, bensì è il risultato delle possibilità di MQL5 e MetaTrader 5. Tra le nuove funzionalità, c'è la possibilità di creare i propri pulsanti e campi di inserimento aggiungendo, ad esempio, un pulsante per chiudere tutti gli ordini aperti, oppure il pulsante di Acquisto e Vendita rapida con parametri stop and take preimpostati.


Fig. 2. Gli oggetti grafici consentono di creare un pannello informativo.

Fig. 2. Gli oggetti grafici consentono di creare un pannello informativo

C'è un fatto spiacevole: gli oggetti non possono essere creati dagli indicatori. Ciò è stato fatto volutamente per accelerare le prestazioni degli indicatori. La buona notizia è che lo hanno capito e, probabilmente, implementeranno la possibilità di avviare diversi Expert Advisor in un grafico. In questo modo, potremo creare indicatori EA con oggetti e senza trading. Tali indicatori possono essere creati ora: funzioneranno come indicatori. Ora, il compito viene risolto avviando un EA trading in un grafico e l'EA creando oggetti nel secondo, quindi implementando lo scambio tra loro.

Ad esempio, sono riuscito a trasformare il mio indicatore innovativo da MQL4 a MQL5 in diverse ore. La maggior parte del tempo è stata impiegata dalla funzione di learning e debug. Su MQL5, il codice è diventato più corto.

Per quanto riguarda il terminale stesso, sono rimasto colpito dal numero di intervalli. Secondo me, è persino eccessivo. Tuttavia, l'abbondanza di minuti di intervallo può essere utile per alcuni trader. Dunque, ora c'è solo un passaggio per la creazione di un intervallo impostato liberamente. Ora, tutti i dati vengono archiviati solo come minuti di intervallo, quindi non ci sono problemi con la sincronizzazione di intervalli diversi: questa è un'importante soluzione tecnologica.

Ora non ci sono file per periodi diversi nel catalogo HISTORY



Fig. 3. L'intera cronologia è archiviata in un unico file.

Un'altra piacevole introduzione è che ora possiamo cancellare i log.


Fig. 4. Usa un pulsante per cancellare l'EA Journal, elimina tutti i messaggi non necessari

Questa è solo una panoramica di MetaTrader 5. Non posso descrivere tutte le nuove funzionalità del sistema per un periodo di tempo così breve: i test sono iniziati il 2009.09.09. Questa è una data simbolica e sono sicuro che sarà un numero fortunato. Sono passati alcuni giorni da quando ho ricevuto la versione beta del terminale MetaTrader 5 e MQL5. Non sono riuscito a provare tutte le sue funzionalità, ma sono già sorpreso.

I maghi di MetaQuotes hanno creato un prodotto straordinario. Sono uno sviluppatore con 25 anni di esperienza, ho visto l'inizio di molti progetti e lo posso affermare con certezza!

Cordiali saluti,
Yuriy Zaytsev

Skype: yurazyuraz
yzh@mail.ru

Tradotto dal russo da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/ru/articles/1

Passi su Nuovi Binari: Indicatori Personalizzati in MQL5 Passi su Nuovi Binari: Indicatori Personalizzati in MQL5
Non elencherò tutte le nuove possibilità e funzionalità del nuovo terminale e del nuovo linguaggio. Sono numerose e alcune novità meritano la trattazione in un articolo a parte. Inoltre non c'è codice qui, scritto con programmazione orientata agli oggetti, è un argomento troppo serio per essere semplicemente menzionato in un contesto come i vantaggi aggiuntivi per gli sviluppatori. In questo articolo, considereremo gli indicatori, la loro struttura, il disegno, i tipi e i loro dettagli di programmazione rispetto a MQL4. Spero che questo articolo sia utile sia per i principianti che per gli sviluppatori esperti, forse alcuni di loro troveranno qualcosa di nuovo.
Utilizza i canali MQL5.community e le chat di gruppo Utilizza i canali MQL5.community e le chat di gruppo
Il sito web MQL5.com riunisce trader di tutto il mondo. Gli utenti pubblicano articoli, condividono codici gratuiti, vendono prodotti nel Market, offrono servizi da freelance e copiano segnali di trading. Puoi comunicare con loro sul Forum, nelle chat dei trader e nei canali MetaTrader.
MQL5: Crea il tuo Indicatore MQL5: Crea il tuo Indicatore
Cos'è un indicatore? È un insieme di valori calcolati che vogliamo siano visualizzati sullo schermo in un modo pratico. Gli insiemi di valori sono rappresentati nei programmi, come array. Pertanto, la creazione di un indicatore equivale alla scrittura di un algoritmo che gestisce alcuni array (matrici di prezzo) e registra i risultati della gestione su altri array (valori dell'indicatore). Descrivendo la creazione del True Strength Index, l'autore mostra come scrivere indicatori in MQL5.
Combinatoria e teoria della probabilità per il trading (Parte II): Frattale universale Combinatoria e teoria della probabilità per il trading (Parte II): Frattale universale
In questo articolo continueremo a studiare i frattali e presteremo particolare attenzione a riassumere tutto il materiale. A tal fine, cercherò di riunire tutti gli sviluppi precedenti in una forma compatta che sia comoda e comprensibile per l'applicazione pratica nel trading.