Come iniziare con Metatrader 5 - pagina 121

 

Ciao

Sono un principiante e voglio seguire la strategia taglia e incolla. Come posso iniziare. Ho bisogno di un approccio passo dopo passo

per favore


 
Seth Agblemor:

Ciao

Sono un principiante e voglio seguire la strategia taglia e incolla. Come posso iniziare. Ho bisogno di un approccio passo dopo passo

per favore


Da dove comincio?
https://www.mql5.com/en/forum/212020

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

Where Do I start from?
Where Do I start from?
  • 2017.07.25
  • www.mql5.com
Hi fam! Am a total newbie in the forex niche... Just signed up here on this platform... Please where do i start from? I need help...
 

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

Alcune domande sui segnali

Sergey Golubev, 2016.12.30 20:14

Solo alcune informazioni sul servizio di segnali:

Queste sono le informazioni su dove iniziare.

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

Dalleregole-

  • I segnali basati su conti reali sono disponibili solo con abbonamento a pagamento; i segnali basati su conti demo possono essere ricevuti solo con abbonamento gratuito.
  • I segnali basati su conti in centesimi non possono avere un abbonamento a pagamento. Tali segnali sono disponibili solo nel terminale MetaTrader gratuitamente. Un conto in centesimi è definito automaticamente. Nel caso in cui un segnale sia definito in modo errato, l'amministrazione del servizio può assegnare questa proprietà al segnale manualmente.

 
Uso pratico delle reti neurali di Kohonen nel trading algoritmico. Parte I. Strumenti

<br / translate="no">

L'argomento delle reti neurali di Kohonen è stato affrontato in alcuni articoli sul sito mql5.com, comeUsing Self-Organizing Feature Maps (Kohonen Maps) in MetaTrader 5 eSelf-Organizing Feature Maps (Kohonen Maps) - Revisiting the Subject. Hanno introdotto i lettori ai principi generali della costruzione di reti neurali di questo tipo e dell'analisi visiva dei numeri economici dei mercati utilizzando tali mappe.

Tuttavia, in termini pratici, l'uso delle reti di Kohonen solo per il trading algoritmico è stato confinato con un solo approccio, cioè la stessa analisi visiva delle mappe topologiche costruite per i risultati dell'ottimizzazione EA. In questo caso, il giudizio di valore, o meglio la visione e la capacità di trarre conclusioni ragionevoli da un'immagine risulta essere, forse, il fattore cruciale, mettendo in secondo piano le proprietà della rete per quanto riguarda la rappresentazione dei dati in termini di noccioline e bulloni.

In altre parole, le caratteristiche degli algoritmi di rete neurale non sono state sfruttate appieno, cioè, sono state utilizzate senza estrarre automaticamente la conoscenza o sostenere il processo decisionale con raccomandazioni specifiche. In questo articolo, consideriamo il problema della definizione degli insiemi ottimali dei parametri dei robot in modo più formalizzato. Inoltre, applicheremo la rete Kohonen alla previsione delle gamme economiche. Tuttavia, prima di procedere a questi problemi applicati, dovremmo rivedere i codici sorgente esistenti, sistemare qualcosa e fare alcuni miglioramenti.

Si raccomanda vivamente di leggere prima gli articoli di cui sopra, se non avete familiarità con termini come 'rete', 'strato', 'neurone' ('nodo'), 'link', 'peso', 'tasso di apprendimento', 'campo di apprendimento', e altre nozioni relative alle reti Kohonen. Poi dovremo saturarci in questa materia, quindi insegnare nuovamente le nozioni di base allungherebbe notevolmente questa pubblicazione.

 

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.

 

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

Pacchetto MetaTrader R - il riassunto

Sergey Golubev, 2019.02.22 06:47

Lo studio principale

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

Gli articoli

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

Il forum

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

più a seguire ..


 

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

Link utili/threads/strumenti

Sergey Golubev, 2017.10.05 12:33

Expert Advisors multi-valuta in MT5 - backtesting e ottimizzazione


I thread/post

  • Comprare o vendere tutte le 7 coppie -il thread con la spiegazione.
  • Multi-Currency Expert Advisorsil post con gli esempi di backtesting/ottimizzazione

Gli articoli

Documentazione

  • Aiuto di MetaTrader 5 → Trading algoritmico, Trading Robots →Tipi di ottimizzazione- Tutti i simboli selezionati in Market Watch
  • Aiuto di MetaTrader 5 → Trading algoritmico, Trading Robots →Test di strategia- Consulenti esperti multi-valuta
  • Aiuto MetaTrader 5 - Piattaforma di trading -Manuale utente

..e questo è l'esempio del codice da CodeBase -

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

Multicurrency iMA Trend- esperto per MetaTrader 5

The multi-symbol adviser uses the MA Trend 2 adviser as the base advisor, while the advisor itself is rewritten as a class.

Questo consulente è in forma di una classe la prima versione, quindi, per ora, i simboli ("EURUSD", "USDCAD", "USDJPY") sono specificati nel codice duro. Inoltre, tutti i parametri di input sono gli stessi per ciascuno dei tre simboli (Stop Loss, Take Profit, e così via ...).

 

È stato pubblicato un buon articolo -

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

Applicazione pratica delle correlazioni nel trading

Applicazione pratica delle correlazioni nel trading

La correlazione è una relazione statistica tra due o più variabili casuali (o quantità che possono essere considerate casuali con un certo grado di precisione accettabile). I cambiamenti di una o più variabili portano a cambiamenti sistematici di altre variabili correlate. La misura matematica della correlazione di due variabili casuali è il coefficiente di correlazione. Se un cambiamento in una variabile casuale non porta a un cambiamento regolare nell'altra variabile casuale, ma porta a un cambiamento in un'altra caratteristica statistica di questa variabile casuale, tale relazione non è considerata correlazione, sebbene sia statistica.

Applicazione pratica delle correlazioni nel trading

 

Forum sul trading, sui sistemi di trading automatico e sulla sperimentazione di strategie di trading

Da dove comincio?

Sergey Golubev, 2018.09.20 15:43

Usa i suggerimenti - le istruzioni su HowTo

=========

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

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

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


 

C'è un thread sul forum -
Possibilità di Canvas.
È un thread molto utile.
E questo è uno strumento molto interessante che è completamente legato a questo thread -

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

Sistema di equazioni algebriche lineari su ogni barra- indicatore per MetaTrader 5

This work has 3 goals: 

  • Dimostrare il funzionamento dell'indicatore in due finestre contemporaneamente: nella finestra principale e nella sottofinestra. Questo si ottiene utilizzando la classeiCanvas.
  • Soluzione compatta di un sistema di equazioni algebriche lineari usando la ricorsione.
  • Dimostrare e provare ad alcuni ricercatori il fatto che l'uso di SLAE nel trading algoritmico contiene il potenziale di previsione dei prezzi.
Motivazione: