Come iniziare con MT5, un riassunto! - pagina 2

 

In arrivo -
Nuovo sistema di comunicazione un analogo di Telegram - leggi questo post.

 

============

Ichimoku


L'inizio

  1. Sistema Ichimoku semplice
  2. Sistema Ichimoku semplice - regole per i sistemi
  3. Scalping Ichimoku semplice

Dopo

============

 

È stato creato un buon thread con informazioni visualizzate - Ilthread dei suggerimenti.
Si raccomanda vivamente di leggere questo piccolo thread a tutti i neofiti (per sapere), e agli utenti esperti (per rinfrescare le loro conoscenze).

----------------

Servizio freelance

  • Come depositare fondi sul tuo conto MQL5
  • Come procedere alla fase successiva
  • Come lasciare un feedback
  • Cos'è uno screenshot
  • Come allegare un file di una specifica preliminare dei requisiti/file di altri formati
  • Cose da fornire ad uno sviluppatore se il programma ha un errore
  • Come inserire un'immagine/codice/video/tabella in un testo
  • Come fare uno screenshot su un dispositivo mobile
  • Come estendere il periodo di esecuzione/costo dell'ordine
  • Non sparire per 5 giorni dopo aver impostato 3 giorni per l'esecuzioneCliente: Come creare un'immagine GIF, invece di un video, da incorporare in una chat s

----------------

Piattaforma

  • Come installare un Expert Advisor/indicatore
  • Dove si trova il diario della piattaforma/tester/ottimizzatore
  • Dove si trova l'ID MetaQuotes per conferire le notifiche push
  • Come fare uno screenshot di un errore tramite il menu grafico in tre clic
  • Dove abilitare e configurare le notifiche e-mail
  • Dove sono i file con cui lavora un EA/indicatore
  • Cosa sono i campi "descrizione" e "icona" e dove trovarli
  • Dove trovare il numero di build della piattaformaCome abilitare la finestra dei dati e vedere i valori dell'indicatore
  • Come abilitare la scala temporale accurata
  • Come salvare un modello di grafico
  • Come aggiungere un URL per lavorare tramite WebRequestDove trovare i file EX4/EX5

----------------

Consulente esperto

  • Cos'è il numero magico
  • Come funziona il trailing stopDove si trova il diario dell'EA
  • Perché un EA/indicatore è grigio nel Navigator
  • Qual è la differenza tra Netting e Hedging
  • Come installare un prodotto acquistato nel mercato

----------------

Tester

  • Come salvare/caricare un file di set
  • Dove trovare il giornale della piattaforma/tester/ottimizzatore
  • Come sono diverse le modalità di test?
  • Come lanciare e utilizzare i test visivi
  • Come scaricare la cronologia dei prezzi disponibili in MetaTrader 4

 

Questo è un aggiornamento molto importante e molto interessante - per favore leggetelo -

Forum sul trading, sistemi di trading automatico e strategie di trading di prova

MetaTrader 5 Piattaforma Beta Build 1910: Drag-and-drop non vincolato di grafici e librerie .Net in MQL5

MetaQuotes Software Corp., 2018.10.12 19:43

La versione beta della piattaforma MetaTrader 5 aggiornata sarà rilasciata il 14 ottobre 2018. Aggiorneremo il nostro server pubblico MetaQuotes-Demo situato all'indirizzo access.metatrader5.com:443. Invitiamo tutti i trader a partecipare ai test per valutare le caratteristiche aggiornate della piattaforma e per aiutare gli sviluppatori a correggere gli errori.

Per aggiornare la piattaforma MetaTrader 5 fino alla build 1910, connettiti al server access.metatrader5.com:443.

La build finale della nuova piattaforma MetaTrader 5 sarà rilasciata dopo il beta test pubblico.

L'aggiornamento sarà caratterizzato dai seguenti cambiamenti:

  1. Terminale: Ora è possibile staccare i grafici dei simboli finanziari dalla finestra del terminale di trading.

    Questa caratteristica è conveniente quando si utilizzano più monitor. Così, puoi impostare la finestra principale della piattaforma su un monitor per controllare lo stato del tuo conto, e spostare i grafici sul secondo schermo per osservare la situazione del mercato. Per staccare un grafico dal terminale, disattivate l'opzione Docked nel suo menu contestuale. Dopodiché, sposta il grafico sul monitor desiderato.



    Una barra degli strumenti separata sui grafici staccati permette di applicare oggetti analitici e indicatori senza dover passare da un monitor all'altro. Usa il menu contestuale della barra degli strumenti per gestire l'insieme dei comandi disponibili o per nasconderla.

  2. Terminale: Aggiornate completamente le chat integrate. Ora supportano dialoghi e canali di gruppo. Conduci discussioni private con un gruppo di persone in un ambiente unificato senza passare da una finestra di dialogo all'altra e crea canali secondo i tuoi interessi e lingue. Comunicate con i colleghi e gli amici di MQL5.community senza visitare il sito web.

    Le chat di gruppo e i canali possono essere pubblici o privati. I loro creatori decidono se è possibile unirsi a loro liberamente o solo su invito. È anche possibile assegnare moderatori a canali e chat per un ulteriore controllo della comunicazione.



  3. Terminale: Aggiunto il supporto per una maggiore precisione del volume per il trading di criptovalute. Ora il volume minimo possibile delle operazioni di trading è di 0,00000001 lotti. La profondità del mercato, il tempo e le vendite, così come altri elementi dell'interfaccia hanno ora la capacità di visualizzare volumi accurati fino a 8 cifre decimali.

    Il volume minimo e la sua fase di cambiamento dipendono dalle impostazioni dello strumento finanziario dal lato del broker.




  4. Terminale: Aggiunta la scheda degli articoli pubblicati su MQL5.community alla finestra del Toolbox. Oltre 600 materiali dettagliati sullo sviluppo di strategie di trading in MQL5 sono ora disponibili senza la necessità di lasciare il terminale. Nuovi articoli vengono pubblicati settimanalmente.



  5. Terminale: Aggiunto il supporto per l'autenticazione estesa tramite certificati quando si lavora sotto Wine.
  6. Terminale: Corretta la visualizzazione della profondità del mercato quando è limitata a un livello.
  7. Terminale: Aggiunto il comando "Salva come immagine" alla barra degli strumenti standard. Ora è molto più facile fotografare i grafici e condividerli con la comunità.




  8. Terminale: Corretta l'applicazione dello spostamento temporale durante l'importazione di barre e tick. In precedenza, lo spostamento non veniva applicato in alcuni casi.



  9. MQL5: Aggiunto il supporto nativo per le librerie .NET con l'importazione di funzioni "intelligenti". Ora le librerie .NET possono essere usate senza scrivere wrapper speciali - MetaEditor lo fa da solo.

    Per lavorare con le funzioni delle librerie .NET, basta importare la DLL stessa senza definire funzioni specifiche. MetaEditor importa automaticamente tutte le funzioni con cui è possibile lavorare:
    • Strutture semplici (POD, plain old data)
    • Strutture con tipi di dati semplici
    • Funzioni statiche pubbliche con parametri, in cui si usano solo tipi semplici e strutture POD o i loro array

    Per chiamare funzioni dalla libreria, basta importarla:
    #import "TestLib.dll"
    
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int x=6;
       TestClass::Inc(x);
       Print(x);
      }
    Il codice C# della funzione Inc della TestClass appare come segue:
    public class TestClass
    {
       public static void Inc(ref int x)
       {
        x++;
       }
    }
    Come risultato dell'esecuzione, lo script restituisce il valore 7.

  10. MQL5: Aggiunto il supporto per gli specificatori inline, __inline e __forceinline durante l'analisi del codice. La presenza degli specificatori nel codice non causa errori e non influenza la compilazione. Al momento, questa caratteristica semplifica il trasferimento del codice С++ a MQL5.
    Trovate maggiori informazioni sugli specificatori in MSDN.

  11. MQL5: Esecuzione significativamente ottimizzata dei programmi MQL5. In alcuni casi, il miglioramento delle prestazioni può raggiungere il 10%. Ricompilate i vostri programmi nella nuova versione di MetaEditor per renderli più veloci.
    Sfortunatamente, i nuovi programmi non saranno compatibili con le versioni precedenti del terminale a causa di questa ulteriore ottimizzazione. I programmi compilati in MetaEditor versione 1910 e successive non possono essere lanciati in versioni di terminale inferiori alla 1880. I programmi compilati nelle versioni precedenti di MetaEditor possono essere lanciati nei nuovi terminali.

  12. MQL5: Ottimizzate significativamente più funzioni MQL5.
  13. MQL5: Aggiunte nuove proprietà per attaccare/togliere i grafici dalla finestra principale del terminale e gestire la loro posizione.

    Aggiunte le seguenti proprietà all'enumerazione ENUM_CHART_PROPERTY_INTEGER:

    • CHART_IS_DOCKED - la finestra del grafico è agganciata. Se impostato a 'false', il grafico può essere trascinato fuori dall'area del terminale.
    • CHART_FLOAT_LEFT - la coordinata sinistra della finestra del grafico non agganciata rispetto allo schermo virtuale.
    • CHART_FLOAT_TOP - la coordinata superiore della finestra del grafico sganciata rispetto allo schermo virtuale.
    • CHART_FLOAT_RIGHT - la coordinata destra della finestra del grafico non agganciata rispetto allo schermo virtuale.
    • CHART_FLOAT_BOTTOM - la coordinata inferiore della finestra del grafico sganciata rispetto allo schermo virtuale.

    Aggiunte le seguenti funzioni all'enumerazione ENUM_TERMINAL_INFO_INTEGER:

    • TERMINAL_SCREEN_LEFT - la coordinata sinistra dello schermo virtuale. Uno schermo virtuale è un rettangolo che copre tutti i monitor. Se il sistema ha due monitor ordinati da destra a sinistra, allora la coordinata sinistra dello schermo virtuale può essere sul confine di due monitor.
    • TERMINAL_SCREEN_TOP - la coordinata superiore dello schermo virtuale.
    • TERMINAL_SCREEN_WIDTH - larghezza del terminale.
    • TERMINAL_SCREEN_HEIGHT - altezza del terminale.
    • TERMINAL_LEFT - la coordinata sinistra del terminale rispetto allo schermo virtuale.
    • TERMINAL_TOP - la coordinata superiore del terminale rispetto allo schermo virtuale.
    • TERMINAL_RIGHT - la coordinata destra del terminale rispetto allo schermo virtuale.
    • TERMINAL_BOTTOM - la coordinata inferiore del terminale rispetto allo schermo virtuale.

  14. MQL5: Aggiunto il campo volume_real alle strutture MqlTick e MqlBookInfo. È progettato per lavorare con volumi di maggiore precisione. Il valore volume_real ha una priorità maggiore di 'volume'. Il server userà questo valore, se specificato.

    struct  MqlTick
      {
       datetime         time;          // Last price update time
       double           bid;           // Current Bid price
       double           ask;           // Current Ask price
       double           last;          // Current price of the Last trade
       ulong            volume;        // Volume for the current Last price
       long             time_msc;      // Last price update time in milliseconds
       uint             flags;         // Tick flags
       double           volume_real;   // Volume for the current Last price with greater accuracy
      };

    struct MqlBookInfo
      {
       ENUM_BOOK_TYPE   type;            // order type from the ENUM_BOOK_TYPE enumeration
       double           price;           // price
       long             volume;          // volume
       double           volume_real;     // volume with greater accuracy
      };

  15. MQL5: Aggiunte nuove proprietà all'enumerazione ENUM_SYMBOL_INFO_DOUBLE:

    • SYMBOL_VOLUME_REAL - il volume dell'ultima operazione eseguita;
    • SYMBOL_VOLUMEHIGH_REAL - il volume più alto dell'operazione del giorno corrente;
    • SYMBOL_VOLUMELOW_REAL - il volume più basso dell'operazione del giorno corrente;

    Usare la funzione SymbolInfoDouble per ottenere queste proprietà.

  16. MQL5: Aggiunta la proprietà MQL_FORWARD all'enumerazione ENUM_MQL_INFO_INTEGER - flag della modalità di test in avanti.
  17. MQL5: Requisiti attenuati per il casting delle enumerazioni. In caso di casting implicito, il compilatore sostituisce automaticamente il valore di un'enumerazione corretta e mostra un avviso.

    Per il seguente codice:
    enum Main
      {
       PRICE_CLOSE_,
       PRICE_OPEN_
      };
    
    input Main Inp=PRICE_CLOSE;
    //+------------------------------------------------------------------+
    //| Start function                                                   |
    //+------------------------------------------------------------------+
    void OnStart()
      {
      }
    Il compilatore visualizza l'avvertimento:
    implicit conversion from 'enum ENUM_APPLIED_PRICE' to 'enum Main'
    'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
    In precedenza, in questo caso veniva generato il seguente errore:
    'PRICE_CLOSE' - cannot convert enum
    Il compilatore continuerà a mostrare l'errore se le enumerazioni sono usate in modo non corretto nei parametri della funzione.

  18. MQL5: Corretta la compilazione delle funzioni template. Ora, quando si usano funzioni template sovraccaricate, viene istanziato solo il sovraccarico necessario, piuttosto che tutti quelli esistenti.
    class X {  };
    
    void f(int)  {  }
      
    template<typename T>
    void a(T*) { new T(2); }  // previously, the compiler generated the error here
      
    template<typename T>
    void a()  { f(0); }
      
      
    void OnInit()  { a<X>(); }  
    
  19. MQL5: Ottimizzati alcuni casi di accesso alla cronologia dei tick tramite la funzione CopyTicks*.
  20. Tester: Corretto il calcolo della precisione della valuta di deposito durante i test/ottimizzazione e la generazione dei relativi rapporti.
  21. Tester: Ottimizzato e accelerato il funzionamento del tester delle strategie.
  22. MetaEditor: Corretta la ricerca di parole intere. Ora durante la ricerca, il trattino basso viene contato come un carattere regolare, piuttosto che un delimitatore di parola.
  23. Aggiornata la documentazione.

 

È stato iniziato un buon thread -Come iniziare con MQL5

Forum sul trading, sistemi di trading automatico e strategie di trading di prova

Come iniziare con MQL5

Vladimir Karputov, 2018.12.24 20:34

Questo thread discute degli esempi di codice MQL5. Ci saranno esempi di come ottenere dati dagli indicatori, come programmare gli advisor ... in generale, qualsiasi domanda da principiante al linguaggio MQL5.


Se state iniziando a familiarizzare con il terminale MetaTrader 5, allora posso raccomandare i seguenti thread:

 

C'è un articolo che ogni venditore sul mercato dovrebbe leggere: si tratta della convalida dei prodotti del mercato -

----------------

I controlli che un robot di trading deve superare prima della pubblicazione sul Mercato

Why products are checked before they are published in the Market 

Prima che qualsiasi prodotto venga pubblicato sul mercato, deve essere sottoposto a controlli preliminari obbligatori, poiché un piccolo errore nella logica dell'esperto o dell'indicatore può causare perdite sul conto di trading. Per questo motivo abbiamo sviluppato una serie di controlli di base per garantire il livello di qualità richiesto dei prodotti del Mercato.

Se gli errori vengono identificati dai moderatori del Mercato nel processo di controllo del tuo prodotto, dovrai correggerli tutti. Questo articolo considera gli errori più frequenti commessi dagli sviluppatori nei loro robot di trading e indicatori tecnici. Si consiglia inoltre di leggere i seguenti articoli:

 

Grazie amico...

Molto utile, grande sforzo...

 

Forum sul trading, sui sistemi di trading automatizzati e sul test delle strategie di trading

Nuova piattaforma MetaTrader 5 build 2005: calendario economico, applicazioni MQL5 come servizi e API del linguaggio R

MetaQuotes Software Corp. , 20.02.2019 17:20

L'aggiornamento della piattaforma MetaTrader 5 sarà rilasciato il 21 febbraio 2019. La nuova versione presenta le seguenti modifiche:

  1. Terminale: Calendario economico integrato completamente rivisto.

    Il Calendario Economico è la nostra soluzione proprietaria. In esso troverai oltre 600 notizie e indicatori finanziari relativi alle 13 maggiori economie globali: USA, Unione Europea, Giappone, Regno Unito, Canada, Australia, Cina, tra gli altri. I dati rilevanti vengono raccolti da fonti aperte in tempo reale.

    La nuova versione presenta contenuti aggiornati e filtri avanzati degli eventi: per ora, priorità, valute e paesi.

    È ora possibile accedere ai dati del calendario dai programmi MQL5. Vedi sotto per i dettagli.




  2. Terminale: aggiunto un nuovo tipo di applicazioni MQL5 — Servizi. Questa nuova tipologia consente di creare feed di prezzo personalizzati per il terminale, ovvero di implementare la consegna dei prezzi da sistemi esterni in tempo reale, proprio come avviene sui server commerciali dei broker.

    A differenza di Expert Advisor, indicatori e script, i servizi non sono collegati a un grafico specifico. Tali applicazioni vengono eseguite in background e vengono avviate automaticamente all'avvio del terminale (a meno che tale app non sia stata interrotta forzatamente).

    I servizi possono essere gestiti da una nuova sezione all'interno della finestra del Navigatore:





    Come creare servizi
    Per creare un modello di servizio, utilizzare l'opzione della procedura guidata MQL5 corrispondente. I servizi hanno un punto di ingresso OnStart , simile agli script. A questo punto, è possibile implementare un ciclo infinito di ricezione e gestione dei dati utilizzando le funzioni di rete .

    Come avviare i servizi
    Per eseguire più Expert Advisor o copie di indicatori con parametri diversi, è necessario avviarli su grafici diversi. In questo caso vengono create diverse istanze del programma, che operano in modo indipendente. I servizi non sono collegati ai grafici, pertanto è stato implementato un meccanismo speciale per la creazione di istanze di servizio.

    Seleziona un servizio dal Navigatore e fai clic su "Aggiungi servizio" nel suo menu contestuale. Si aprirà una finestra di dialogo standard del programma MQL5, in cui è possibile abilitare/disabilitare il trading e accedere alle impostazioni del segnale, nonché impostare vari parametri.




    Un'istanza del servizio può essere avviata e arrestata utilizzando il menu dell'istanza appropriato. Per gestire tutte le istanze, utilizzare il menu di servizio.

  3. Terminale: è stato aggiunto un programma di apprendimento.

    La nuova funzionalità aiuterà i principianti a imparare a interagire con la piattaforma. Abbiamo aggiunto oltre 100 suggerimenti interattivi sulle principali funzionalità della piattaforma.

    • I suggerimenti vengono visualizzati senza interruzioni come barra di avanzamento sulla barra degli strumenti e quindi non distraggono l'utente.
    • I suggerimenti vengono visualizzati solo per le azioni che non hai mai eseguito nella piattaforma.
    • Tutti i suggerimenti includono collegamenti interattivi, tramite i quali è possibile navigare agli elementi dell'interfaccia pertinenti. Ad esempio, una finestra di dialogo di trading o un menu con il programma desiderato possono essere avviati direttamente dalla punta.

    L'area piena della barra di avanzamento aumenterà ogni volta che esegui le azioni appropriate e prosegui l'allenamento.




  4. Terminale: la cronologia del conto di trading può essere presentata come posizioni. La piattaforma raccoglie i dati sulle operazioni relative alla posizione (apertura, aumento di volume, chiusura parziale o totale) e raggruppa le informazioni in un unico record. In questo modo puoi accedere ai dettagli della posizione: tempo di apertura e chiusura, volume, prezzo e risultato. Questo efficiente modulo di presentazione è ora disponibile nei rapporti cronologici esportati in file.




  5. Terminale: aggiunta nuova API che abilita la richiesta dei dati del terminale MetaTrader 5 tramite applicazioni che utilizzano il linguaggio R.

    Abbiamo preparato uno speciale pacchetto MetaTrader. Contiene DLL per le interazioni tra R e il terminale MetaTrader 5, documentazione e file r ausiliari. Stiamo completando la registrazione del pacchetto nel repository CRAN , dopodiché sarà disponibile per il download e l'installazione.




    Il pacchetto può essere installato utilizzando un comando speciale:
    R CMD INSTALL --build MetaTrader

    Sono disponibili i seguenti comandi relativi alla richiesta dei dati:

    • MT5Initialize inizializza e stabilisce la connessione con il terminale MetaTrader 5. Se necessario, il terminale viene avviato durante l'esecuzione del comando.
    • MT5Shutdown si de-inizializza e si disconnette da MetaTrader 5.
    • MT5Version ottiene la versione terminale MetaTrader 5.
    • MT5TerminalInfo ottiene lo stato ei parametri della connessione del terminale al server di un broker (numero di conto e indirizzo del server).
    • MT5WaitTerminal attende che il terminale MetaTrader 5 si connetta al server di un broker.
    • MT5CopyTicksFrom(symbol, from, count, flags) copia il numero di tick specificato a partire dalla data specificata. La data è specificata in millisecondi dal 01.01.1970.
    • MT5CopyTicksRange(symbol, from, to, flags) copia i tick entro il periodo specificato. Le date sono specificate in millisecondi dal 01.01.1970.
    • MT5CopyRatesFrom(symbol, timeframe, from, count) copia il numero specificato di barre di un minuto a partire dalla data specificata. La data è specificata in secondi dal 01.01.1970.
    • MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) copia le barre di un minuto dalla posizione specificata rispetto all'ultima barra.
    • MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) copia le barre entro il periodo specificato. Le date sono specificate in secondi dal 01.01.1970.

    L'elenco dei comandi supportati verrà ulteriormente ampliato.

  6. Terminale: finestra di dialogo Chiudi per ottimizzata utilizzata per chiudere una posizione con una opposta. Ora, la finestra di dialogo non viene rallentata anche se hai un numero elevato di posizioni aperte.
  7. Terminale: risolti errori di calcolo dei simboli sintetici , a causa dei quali i dati potevano essere occasionalmente saltati.
  8. Terminale: quando un simbolo personalizzato viene eliminato, vengono eliminati anche i file che ne memorizzano la cronologia dei tick e delle barre. Ciò evita l'accumulo di dati inutilizzati sul disco rigido.
  9. Terminale: corretta visualizzazione dei risultati di ricerca su schermi con DPI elevati.
  10. MQL5: Accesso implementato ai dati del calendario economico dai programmi MQL5.

    Nuove funzioni

    CalendarCountryById: ottiene la descrizione del paese in base all'identificatore.
     bool CalendarCountryById(
       const long            country_id,    // country ID
       MqlCalendarCountry&  country        // country description
       );
    CalendarEventById — ottiene la descrizione dell'evento in base all'identificatore.
     bool CalendarEventById(
       const long            event_id,      // event ID
       MqlCalendarEvent&     event           // event description
       );
    CalendarValueById — ottiene la descrizione del valore dell'evento in base all'identificatore.
     bool CalendarValueById(
       const long            value_id,      // value ID
       MqlCalendarValue&     value           // value description
       );
    CalendarEventByCountry: ottiene l'array di eventi disponibili per il paese.
     bool CalendarEventByCountry(
       string                country_code,  // country code
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarEventByCurrency: ottiene l'array di eventi disponibili per la valuta interessata.
     bool CalendarEventByCurrency(
       string                currency,       // currency
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarValueHistoryByEvent — Ottiene la matrice di valori per il periodo di tempo specificato, in base all'identificatore di evento.
     bool CalendarValueHistoryByEvent(
       ulong                 event_id,      // event ID
       MqlCalendarValue&    values[],      // array of values
       datetime              datetime_from, // period beginning date
       datetime              datetime_to= 0  // period end date
       );
    CalendarValueHistory: ottiene l'array di valori per il periodo di tempo specificato per tutti gli eventi, filtrati per paese e/o valuta.
     bool CalendarValueHistory(
       MqlCalendarValue&    values[],           // array of values
       datetime              datetime_from,     // beginning of period
       datetime              datetime_to= 0 ,     // end of period
       string                country_code=NULL, // country code
       string               currency=NULL      // currency
       );
    CalendarValueLastByEvent — ottiene una matrice di valori dell'ultimo evento in base all'identificatore. Questa funzione abilita la richiesta dei valori che sono comparsi dalla richiesta precedente. Per questa operazione viene inoltre utilizzato il parametro in/out "change_id".

    Ogni volta che il database del calendario cambia, la proprietà "change_id" (l'ultimo identificatore di modifica) viene aggiornata. Durante la richiesta di dati, specifichi "change_id" e il terminale restituisce gli eventi che sono apparsi dopo tale tempo, nonché il valore "change_id" corrente, che può essere utilizzato per la richiesta successiva. Durante la prima chiamata di funzione, specificare lo zero "change_id": la funzione non restituirà alcun evento, ma restituirà l'attuale "change_id" per ulteriori richieste.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[]           // array of values
       );
    CalendarValueLast — ottiene l'array degli ultimi valori per tutti gli eventi, filtrati per paese e/o valuta. Questa funzione abilita la richiesta dei valori che sono comparsi dalla richiesta precedente. Analogamente a CalendarValueLastByEvent, per la richiesta viene utilizzata la proprietà "change_id".
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[],           // array of values
       string                country_code=NULL, // country code
       string currency=NULL                     // currency
       );

    Nuove strutture

    MqlCalendarCountry — descrizione del paese.
     struct MqlCalendarCountry
      {
       ulong              id;                         // country ID in ISO 3166-1
       string             name;                       // text name of the country
       string             code;                       // code name of the country in ISO 3166-1 alpha-2
       string             currency;                   // country currency code
       string             currency_symbol;           // country currency symbol/sign
       string             url_name;                   // country name used in URL on mql5.com
      };
    MqlCalendarEvent — descrizione dell'evento.
     struct MqlCalendarEvent
      {
       ulong                           id;           // event ID
       ENUM_CALENDAR_EVENT_TYPE       type;         // event type
       ENUM_CALENDAR_EVENT_SECTOR     sector;       // sector to which the event belongs
       ENUM_CALENDAR_EVENT_FREQUENCY  frequency;     // event release frequency
       ENUM_CALENDAR_EVENT_TIMEMODE   time_mode;     // event release time mode
       ulong                           country_id;   // country ID
       ENUM_CALENDAR_EVENT_UNIT       unit;         // unit for the event values
       ENUM_CALENDAR_EVENT_IMPORTANCE importance;   // event importance
       ENUM_CALENDAR_EVENT_MULTIPLIER multiplier;   // event importance multiplier
       uint                            digits;       // number of decimal places in the event value
       string                          source_url;   // source URL
       string                          event_code;   // event code
       string                          name;         // text name of the event in the terminal language
      };
    MqlCalendarValue — descrizione del valore dell'evento.
     struct MqlCalendarValue
      {
       ulong              id;                         // value ID
       ulong              event_id;                   // event ID
       datetime           time;                       // event date and time
       datetime           period;                     // period, for which the event is published
       int                revision;                   // published indicator revision in relation to the reported period
       long               actual_value;               // current event value
       long               prev_value;                 // previous event value
       long               revised_prev_value;         // revised previous event value
       long               forecast_value;             // forecast event value
       ENUM_CALENDAR_EVENT_IMPACRT impact_type;     // potential impact on the currency rate
      };

    Nuove enumerazioni

     enum ENUM_CALENDAR_EVENT_FREQUENCY
      {
       CALENDAR_FREQUENCY_NONE            = 0 ,   // not used
       CALENDAR_FREQUENCY_WEEK            = 1 ,   // weekly
       CALENDAR_FREQUENCY_MONTH           = 2 ,   // monthly
       CALENDAR_FREQUENCY_QUARTER         = 3 ,   // quarterly
       CALENDAR_FREQUENCY_YEAR            = 4 ,   // yearly
       CALENDAR_FREQUENCY_DAY             = 5 ,   // daily
      };
    
    enum ENUM_CALENDAR_EVENT_TYPE
      {
       CALENDAR_TYPE_EVENT                = 0 ,   // event (meeting, speech, etc.)
       CALENDAR_TYPE_INDICATOR            = 1 ,   // indicator
       CALENDAR_TYPE_HOLIDAY              = 2 ,   // holiday
      };
    
    enum ENUM_CALENDAR_EVENT_SECTOR
      {
       CALENDAR_SECTOR_NONE               = 0 ,   // no
       CALENDAR_SECTOR_MARKET             = 1 ,   // market
       CALENDAR_SECTOR_GDP                = 2 ,   // GDP
       CALENDAR_SECTOR_JOBS               = 3 ,   // jobs
       CALENDAR_SECTOR_PRICES             = 4 ,   // prices
       CALENDAR_SECTOR_MONEY              = 5 ,   // money
       CALENDAR_SECTOR_TRADE              = 6 ,   // trade
       CALENDAR_SECTOR_GOVERNMENT         = 7 ,   // government
       CALENDAR_SECTOR_BUSINESS           = 8 ,   // business
       CALENDAR_SECTOR_CONSUMER           = 9 ,   // consumer
       CALENDAR_SECTOR_HOUSING            = 10 ,   // housing
       CALENDAR_SECTOR_TAXES              = 11 ,   // taxes
       CALENDAR_SECTOR_HOLIDAYS           = 12 ,   // holidays
      };
      
    enum ENUM_CALENDAR_EVENT_IMPORTANCE
      {
       CALENDAR_IMPORTANCE_LOW            = 0 ,   // no
       CALENDAR_IMPORTANCE_NONE           = 1 ,   // low
       CALENDAR_IMPORTANCE_MODERATE       = 2 ,   // moderate
       CALENDAR_IMPORTANCE_HIGH           = 3 ,   // high
      };
    
    enum ENUM_CALENDAR_EVENT_UNIT
      {
       CALENDAR_UNIT_NONE                 = 0 ,   // no
       CALENDAR_UNIT_PERCENT              = 1 ,   // percent
       CALENDAR_UNIT_CURRENCY             = 2 ,   // national currency
       CALENDAR_UNIT_HOUR                 = 3 ,   // number of hours
       CALENDAR_UNIT_JOB                  = 4 ,   // number of jobs
       CALENDAR_UNIT_RIG                  = 5 ,   // number of rigs
       CALENDAR_UNIT_USD                  = 6 ,   // US dollar
       CALENDAR_UNIT_PEOPLE               = 7 ,   // number of people
       CALENDAR_UNIT_MORTGAGE             = 8 ,   // number of mortgages
       CALENDAR_UNIT_VOTE                 = 9 ,   // number of votes
       CALENDAR_UNIT_BARREL               = 10 ,   // number of barrels
       CALENDAR_UNIT_CUBICFEET            = 11 ,   // volume in cubic feet
       CALENDAR_UNIT_POSITION             = 12 ,   // number of job positions
       CALENDAR_UNIT_BUILDING             = 13    // number of buildings
      };
      
    enum ENUM_CALENDAR_EVENT_MULTIPLIER
      {
       CALENDAR_MULTIPLIER_NONE           = 0 ,   // no    
       CALENDAR_MULTIPLIER_THOUSANDS      = 1 ,   // thousands
       CALENDAR_MULTIPLIER_MILLIONS       = 2 ,   // millions
       CALENDAR_MULTIPLIER_BILLIONS       = 3 ,   // billions
       CALENDAR_MULTIPLIER_TRILLIONS      = 4 ,   // trillions
      };
      
    enum ENUM_CALENDAR_EVENT_IMPACRT
      {
       CALENDAR_IMPACT_NA                 = 0 ,   // not available
       CALENDAR_IMPACT_POSITIVE           = 1 ,   // positive
       CALENDAR_IMPACT_NEGATIVE           = 2 ,   // negative
      };
    
    enum ENUM_CALENDAR_EVENT_TIMEMODE
      {
       CALENDAR_TIMEMODE_DATETIME         = 0 ,   // the source publishes the exact time
       CALENDAR_TIMEMODE_DATE             = 1 ,   // the event takes the whole day
       CALENDAR_TIMEMODE_NOTIME           = 2 ,   // the source does not publish the event time
       CALENDAR_TIMEMODE_TENTATIVE        = 3 ,   // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
      };

    Nuovi codici di errore

    ERR_CALENDAR_MORE_DATA             = 5400 ,   // the array is small for the whole result (values which fit in the array were passed)
    ERR_CALENDAR_TIMEOUT               = 5401 ,   // timed out waiting for a response to the calendar data request
    ERR_CALENDAR_NO_DATA               = 5402 ,   // data not found

  11. MQL5: correzioni e miglioramenti della velocità operativa relativi alla cronologia dei tick e delle barre.
  12. MQL5: correzioni e miglioramenti significativi della velocità operativa relativi alle funzioni di modifica della cronologia tick e barre dei simboli di trading personalizzati, CustomTicks* e CustomRates* .
  13. MQL5: Nuove funzioni di conversione dei dati.

    CharArrayToStruct copia una matrice uchar in una struttura POD.
     bool   CharArrayToStruct(
       void &         struct_object,    // structure
       const uchar &  char_array[],      // array
       uint           start_pos= 0         // starting position in the array
       );
    StructToCharArray copia una struttura POD in una matrice uchar.
     bool   StructToCharArray(
       const void &  struct_object,      // structure
       uchar &       char_array[],      // array
       uint          start_pos= 0         // starting position in the array
       );

  14. Aggiunta la funzione MathSwap per modificare l'ordine dei byte nei valori ushort, uint e ulong.
     ushort MathSwap( ushort value );
    uint    MathSwap( uint    value );
    ulong   MathSwap( ulong    value );

  15. MQL5: Aggiunte funzioni di rete per la creazione di connessioni TCP a host remoti tramite socket di sistema:

    • SocketCreate crea un socket con flag specificati e restituisce il relativo handle
    • SocketClose chiude il socket
    • SocketConnect si connette al server, con controllo del timeout
    • SocketIsConnected controlla se il socket è attualmente connesso
    • SocketIsReadable ottiene il numero di byte che possono essere letti dal socket
    • SocketIsWritable controlla se la scrittura di dati su questo socket è possibile al momento attuale
    • SocketTimeouts imposta i timeout di ricezione e invio dei dati per l'oggetto socket di sistema
    • SocketRead legge i dati da un socket
    • SocketSend scrive i dati in un socket
    • SocketTlsHandshake avvia una connessione TLS (SSL) sicura con l'host specificato utilizzando il protocollo TLS Handshake
    • SocketTlsCertificate riceve le informazioni relative al certificato utilizzato per la connessione di rete sicura
    • SocketTlsRead legge i dati da una connessione TLS sicura
    • SocketTlsReadAvailable legge tutti i dati disponibili da una connessione TLS sicura
    • SocketTlsSend invia i dati utilizzando una connessione TLS sicura

    L'indirizzo dell'host, al quale viene stabilita la connessione tramite le funzioni di rete, deve essere aggiunto esplicitamente all'elenco degli indirizzi consentiti nelle impostazioni del terminale.

    Sono stati aggiunti nuovi codici di errore per le operazioni con le funzioni di rete:

    • ERR_NETSOCKET_INVALIDHANDLE (5270): handle socket non valido passato alla funzione
    • ERR_NETSOCKET_TOO_MANY_OPENED (5271): troppi socket aperti (massimo 128)
    • ERR_NETSOCKET_CANNOT_CONNECT (5272): errore durante la connessione all'host remoto
    • ERR_NETSOCKET_IO_ERROR (5273): errore durante l'invio/ricezione dei dati dal socket
    • ERR_NETSOCKET_HANDSHAKE_FAILED (5274): errore di creazione della connessione protetta (TLS Handshake)
    • ERR_NETSOCKET_NO_CERTIFICATE (5275) — nessun dato sul certificato utilizzato per la connessione sicura

  16. MQL5: Aggiunte nuove funzioni per le operazioni sulle stringhe :

    StringReserve riserva per una stringa il buffer di memoria della dimensione specificata.
     bool   StringReserve(
       string &        string_var,           // string
       uint            new_capacity          // buffer size for the string
       );
    StringSetLength imposta la lunghezza della stringa specificata in caratteri.
     bool   StringSetLength(
       string &        string_var,          // string
       uint            new_length           // new string length
       );

  17. MQL5: Aggiunta una nuova funzione per le operazioni sugli array :

    ArrayRemove rimuove da una matrice il numero specificato di elementi che iniziano con l'indice specificato.
     bool   ArrayRemove(
       void &         array[],              // array of any type
       uint           start,                // the index to start removal
       uint           count=WHOLE_ARRAY      // number of elements
       );
    ArrayInsert inserisce in una matrice ricevente il numero specificato di elementi dalla matrice di origine, a partire dall'indice specificato.
     bool   ArrayInsert(
       void &         dst_array[],          // receiver array
       const void &   src_array[],          // source array
       uint           dst_start,            // index in the receiver array where to insert
       uint           src_start= 0 ,           // index in the source array to start copying
       uint           count=WHOLE_ARRAY     // number of inserted elements
       );
    ArrayReverse inverte in una matrice il numero specificato di elementi che iniziano con l'indice specificato.
     bool   ArrayReverse(
       void &         array[],              // array of any type
       uint           start= 0 ,               // index to start reversing
       uint           count=WHOLE_ARRAY      // number of elements
       );

  18. MQL5: È stato aggiunto il nuovo parametro "uint count" nelle funzioni CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd e CustomTicksReplace . Consente di specificare il numero di elementi dell'array passato, che verranno utilizzati per queste funzioni. Il valore WHOLE_ARRAY viene utilizzato per il parametro per impostazione predefinita. Significa che verrà utilizzato l'intero array.
  19. MQL5: Aggiunta la funzione CustomBookAdd per passare lo stato della Profondità di Mercato per un simbolo personalizzato. La funzione permette di trasmettere la Profondità di Mercato come se i prezzi arrivassero dal server di un broker.
     int   CustomBookAdd(
       const string         symbol,             // symbol name
       const MqlBookInfo&  books[]             // an array with the DOM elements descriptions
       uint                 count=WHOLE_ARRAY   // number of elements to be used
       );
  20. MQL5: Aggiunto sovraccarico della funzione CustomSymbolCreate . Ciò consente la creazione di un simbolo di trading personalizzato basato su uno esistente. Dopo la creazione, qualsiasi proprietà del simbolo può essere modificata utilizzando le funzioni corrispondenti.
     bool   CustomSymbolCreate (
       const string         symbol_name,       // custom symbol name
       const string         symbol_path= "" ,    // name of the group in which the symbol will be created
       const string         symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
       );
    Il nome del simbolo, dal quale devono essere copiate le proprietà del simbolo personalizzato, è specificato nel parametro "symbol_origin".

  21. La funzione StringToTime che converte la stringa con data/ora in un valore datetime è stata aggiornata. Ora supporta i seguenti formati di data:

    • aaaa.mm.gg [hh:mi]
    • aaaa.mm.gg [hh:mi:ss]
    • aaaammgg [hh:mi:ss]
    • aaaammgg [hhmiss]
    • aaaa/mm/gg [hh:mi:ss]
    • aaaa-mm-gg [hh:mi:ss]

  22. MQL5: Nuova proprietà TERMINAL_VPS nell'enumerazione ENUM_TERMINAL_INFO_INTEGER ; mostra che il terminale è in esecuzione sul server di hosting virtuale MetaTrader (MetaTrader VPS). Se un'applicazione è in esecuzione su un server di hosting, è possibile disabilitare tutte le sue funzioni visive, poiché il server virtuale non dispone di un'interfaccia utente grafica.
  23. MQL5: la nuova proprietà SYMBOL_EXIST nell'enumerazione ENUM_SYMBOL_INFO_INTEGER significa che il simbolo con questo nome esiste.
  24. MQL5: correzione della digitazione quando si utilizzano le pre-dichiarazioni delle funzioni modello.
  25. MQL5: Aggiunta reinizializzazione degli indicatori quando si cambia un conto di trading.
  26. MQL5: funzione StringSplit ottimizzata.
  27. MQL5: corretti errori nell'operazione di libreria standard.
  28. Tester: aggiunta della funzione TesterStop : arresto anticipato di routine di un Expert Advisor su un agente di test. Ora puoi interrompere forzatamente il test dopo aver raggiunto il numero specificato di operazioni in perdita, un livello di prelievo preimpostato o qualsiasi altro criterio.

    Il test completato utilizzando questa funzione è considerato riuscito. Dopo la chiamata di funzione, la cronologia di negoziazione ottenuta durante il test e tutte le statistiche commerciali vengono trasmesse al terminale.

  29. Tester: capacità disabilitata di testare e ottimizzare Expert Advisor tramite MQL5 Cloud Network in modalità tick reale. Questa modalità può essere utilizzata solo su agenti locali e farm di rete locali.
  30. Tester: lavoro migliorato con gli indicatori durante i test visivi. Ora il grafico dei prezzi e le linee degli indicatori vengono tracciati in modo sincrono, anche per la massima velocità di visualizzazione.
  31. Tester: test e ottimizzazione ottimizzati e notevolmente accelerati.
  32. Tester: corretto il debug degli indicatori sui dati storici. Ora è possibile eseguire correttamente il debug delle funzioni dell'indicatore OnInit e OnDeinit.
  33. Tester: è stato implementato un accesso più rapido ai dati storici durante il test di Expert Advisor multivaluta.
  34. Tester: risolto il blocco occasionale del tester visivo durante il debug sui dati storici.
  35. Tester: implementato un avvio più rapido dei passaggi di ottimizzazione durante l'elaborazione di un pacchetto di attività da parte di un agente.
  36. Tester: modificata la politica di distribuzione dei pacchetti di attività agli agenti di test. La dimensione del pacchetto è stata aumentata e quindi il consumo di risorse per le operazioni di rete è stato notevolmente ridotto.
  37. Tester: comportamento modificato delle opzioni che consentono l'uso di agenti locali, di rete e cloud. Ora, quando si disattivano le opzioni, gli agenti completano l'elaborazione delle attività ricevute, mentre non vengono più assegnate nuove attività. Nelle versioni precedenti, il comportamento era simile al comando "Disabilita", che interrompeva immediatamente il funzionamento dell'agente.




  38. MetaEditor: Aggiunto supporto per caratteri non ANSI nel debugger. Ora le espressioni vengono visualizzate correttamente anche se il nome della variabile è specificato in cirillico.
  39. MetaEditor: corretta visualizzazione dei risultati di ricerca su schermi con DPI elevati.
  40. Aggiunta la traduzione dell'interfaccia utente in croato.
  41. La documentazione è stata aggiornata.
L'aggiornamento sarà disponibile tramite il sistema LiveUpdate.

 

Salve, devo rimuovere la mia build 1940 prima di installare questa 2005?

Devo rimuovere la mia build 1940 prima di installare questa 2005?
Ho provato senza disinstallare e dopo l'installazione è la stessa 1940 di prima.
Inoltre, non riesco ad aggiornare dall'anno scorso, qualche motivo?
Devo rimuovere tutto e riprovare?


Grazie...

 
utile per i principianti
Motivazione: