Comment démarrer avec Metatrader 5 - page 121

 

Bonjour

Je suis un débutant qui veut suivre la stratégie du couper-coller. Comment puis-je commencer ? J'ai besoin d'une approche étape par étape

s'il vous plaît


 
Seth Agblemor:

Bonjour

Je suis un débutant qui veut suivre la stratégie du couper-coller. Comment puis-je commencer ? J'ai besoin d'une approche étape par étape

s'il vous plaît


D'où est-ce que je commence ?
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 sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Quelques questions sur les signaux

Sergey Golubev, 2016.12.30 20:14

Juste quelques informations sur le service de signaux :

Voici les informations sur l'endroit où commencer.

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

A partir desrègles-

  • Les signaux basés sur des comptes réels ne sont disponibles que par un abonnement payant ; les signaux basés sur des comptes de démonstration ne peuvent être reçus que par un abonnement gratuit.
  • Les signaux basés sur des comptes centraux ne peuvent pas faire l'objet d'un abonnement payant. Ces signaux ne sont disponibles que dans le terminal MetaTrader, gratuitement. Un compte en cents est défini automatiquement. Dans le cas où un signal est défini de manière incorrecte, l'administration du service peut attribuer cette propriété au signal manuellement.

 
Utilisation pratique des réseaux de neurones de Kohonen en trading algorithmique. Partie I. Outils

<br / translate="no">

Le sujet des réseaux neuronaux de Kohonen a été abordé dans certains articles du site mql5.com, tels queUsing Self-Organizing Feature Maps (Kohonen Maps) in MetaTrader 5 etSelf-Organizing Feature Maps (Kohonen Maps) - Revisiting the Subject. Ils ont présenté aux lecteurs les principes généraux de la construction de réseaux neuronaux de ce type et de l'analyse visuelle des chiffres économiques des marchés à l'aide de ces cartes.

Cependant, en termes pratiques, l'utilisation des réseaux de Kohonen uniquement pour le trading algorithmique s'est limitée à une seule approche, à savoir la même analyse visuelle des cartes topologiques construites pour les résultats d'optimisation de l'EA. Dans ce cas, le jugement de valeur d'une personne, ou plutôt sa vision et sa capacité à tirer des conclusions raisonnables d'une image, s'avère être, peut-être, le facteur crucial, mettant de côté les propriétés du réseau concernant la représentation des données en termes de questions pratiques.

En d'autres termes, les caractéristiques des algorithmes de réseaux neuronaux n'ont pas été exploitées au maximum, c'est-à-dire qu'elles ont été utilisées sans extraire automatiquement des connaissances ou soutenir la prise de décision par des recommandations spécifiques. Dans cet article, nous considérons le problème de la définition des ensembles optimaux de paramètres de robots d'une manière plus formelle. De plus, nous allons appliquer le réseau de Kohonen à la prévision de plages économiques. Cependant, avant de passer à ces problèmes appliqués, nous devons réviser les codes sources existants, corriger certains points et apporter quelques améliorations.

Il est fortement recommandé de lire d'abord les articles ci-dessus, si vous n'êtes pas familier avec les termes tels que "réseau", "couche", "neurone" ("nœud"), "lien", "poids", "taux d'apprentissage", "plage d'apprentissage", et autres notions liées aux réseaux de Kohonen. Ensuite, nous devrons nous saturer en la matière, donc réapprendre les notions de base rallongerait considérablement cette publication.

 

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Nouvelle plateforme MetaTrader 5 build 2005 : calendrier économique, applications MQL5 en tant que services et API en langage R

MetaQuotes Software Corp. , 2019.02.20 17:20

La mise à jour de la plateforme MetaTrader 5 sera publiée le 21 février 2019. La nouvelle version comporte les changements suivants :

  1. Terminal : calendrier économique intégré entièrement révisé.

    Le calendrier économique est notre solution propriétaire. Vous y trouverez plus de 600 actualités financières et indicateurs liés aux 13 plus grandes économies mondiales : États-Unis, Union européenne, Japon, Royaume-Uni, Canada, Australie, Chine, entre autres. Les données pertinentes sont collectées à partir de sources ouvertes en temps réel.

    La nouvelle version propose des contenus mis à jour et des filtres d'événements avancés : par heure, priorité, devises et pays.

    Les données du calendrier sont désormais accessibles à partir des programmes MQL5. Veuillez voir ci-dessous pour plus de détails.




  2. Terminal : Ajout d'un nouveau type d'applications MQL5 — Services. Ce nouveau type permet de créer des flux de prix personnalisés pour le terminal, c'est-à-dire d'implémenter la livraison des prix à partir de systèmes externes en temps réel, tout comme il est implémenté sur les serveurs de trading des courtiers.

    Contrairement aux Expert Advisors, aux indicateurs et aux scripts, les services ne sont pas liés à un graphique spécifique. Ces applications s'exécutent en arrière-plan et sont lancées automatiquement au démarrage du terminal (sauf si une telle application a été arrêtée de force).

    Les services peuvent être gérés à partir d'une nouvelle section dans la fenêtre du navigateur :





    Comment créer des services
    Pour créer un modèle de service, utilisez l'option correspondante de l'assistant MQL5 . Les services ont un point d'entrée OnStart , similaire aux scripts. À ce stade, vous pouvez implémenter un cycle sans fin de réception et de traitement des données à l'aide des fonctions réseau .

    Comment lancer des services
    Pour exécuter plusieurs copies d'Expert Advisor ou d'indicateurs avec différents paramètres, vous devez les lancer sur différents graphiques. Dans ce cas, différentes instances de programme sont créées, qui fonctionnent alors indépendamment. Les services ne sont pas liés aux graphiques, c'est pourquoi un mécanisme spécial a été mis en place pour la création d'instances de service.

    Sélectionnez un service dans le Navigateur et cliquez sur "Ajouter un service" dans son menu contextuel. Cela ouvrira une boîte de dialogue standard du programme MQL5, dans laquelle vous pouvez activer/désactiver le trading et l'accès aux paramètres du signal, ainsi que définir divers paramètres.




    Une instance de service peut être lancée et arrêtée à l'aide du menu d'instance approprié. Pour gérer toutes les instances, utilisez le menu de service.

  3. Terminal : Un programme d'apprentissage a été ajouté.

    La nouvelle fonctionnalité aidera les débutants à apprendre à interagir avec la plateforme. Nous avons ajouté plus de 100 astuces interactives concernant les principales fonctionnalités de la plateforme.

    • Les conseils sont affichés de manière transparente sous forme de barre de progression sur la barre d'outils et ne distraient donc pas l'utilisateur.
    • Les conseils n'apparaissent que pour les actions que vous n'avez jamais effectuées sur la plateforme.
    • Tous les conseils incluent des liens interactifs, par lesquels vous pouvez naviguer vers les éléments d'interface pertinents. Par exemple, une boîte de dialogue de trading ou un menu avec le programme souhaité peut être lancé directement à partir de la pointe.

    La zone remplie de la barre de progression augmente chaque fois que vous effectuez des actions appropriées et que vous poursuivez l'entraînement.




  4. Terminal : L'historique du compte de trading peut être présenté sous forme de positions. La plateforme collecte des données sur les transactions liées au poste (ouverture, augmentation de volume, clôture partielle ou totale) et regroupe les informations dans un seul enregistrement. Ainsi, vous pouvez accéder aux détails de la position : heure d'ouverture et de clôture, volume, prix et résultat. Cette forme de présentation efficace est désormais disponible dans les rapports d'historique exportés vers des fichiers.




  5. Terminal : Ajout d'une nouvelle API permettant de demander les données du terminal MetaTrader 5 via des applications utilisant le langage R.

    Nous avons préparé un package MetaTrader spécial. Il contient des DLL pour les interactions entre R et le terminal MetaTrader 5, de la documentation et des fichiers r auxiliaires. Nous terminons l'enregistrement du package dans le référentiel CRAN , après quoi il sera disponible pour téléchargement et installation.




    Le package peut être installé à l'aide d'une commande spéciale :
    R CMD INSTALL --build MetaTrader

    Les commandes suivantes liées à la demande de données sont disponibles :

    • MT5Initialize initialise et établit la connexion avec le terminal MetaTrader 5. Si nécessaire, le terminal est lancé lors de l'exécution de la commande.
    • MT5Shutdown se désinitialise et se déconnecte de MetaTrader 5.
    • MT5Version obtient la version du terminal MetaTrader 5.
    • MT5TerminalInfo obtient l'état et les paramètres de connexion du terminal au serveur d'un courtier (numéro de compte et adresse du serveur).
    • MT5WaitTerminal attend que le terminal MetaTrader 5 se connecte au serveur d'un courtier.
    • MT5CopyTicksFrom(symbol, from, count, flags) copie le nombre de ticks spécifié à partir de la date spécifiée. La date est spécifiée en millisecondes depuis le 01.01.1970.
    • MT5CopyTicksRange(symbol, from, to, flags) copie les ticks à partir de la période spécifiée. Les dates sont spécifiées en millisecondes depuis le 01.01.1970.
    • MT5CopyRatesFrom(symbol, timeframe, from, count) copie le nombre spécifié de barres d'une minute à partir de la date spécifiée. La date est spécifiée en secondes depuis le 01.01.1970.
    • MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) copie les barres d'une minute à partir de la position spécifiée par rapport à la dernière barre.
    • MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) copie les barres à partir de la période spécifiée. Les dates sont spécifiées en secondes depuis le 01.01.1970.

    La liste des commandes prises en charge sera encore élargie.

  6. Terminal : boîte de dialogue Close By optimisée utilisée pour fermer une position par une position opposée. Désormais, le dialogue n'est pas ralenti même si vous avez un grand nombre de positions ouvertes.
  7. Terminal : Correction des erreurs de calcul de symboles synthétiques , en raison desquelles des données pouvaient parfois être ignorées.
  8. Terminal : lorsqu'un symbole personnalisé est supprimé, les fichiers stockant son historique de ticks et de barres sont également supprimés. Cela évite l'accumulation de données inutilisées sur le disque dur.
  9. Terminal : Correction de l'affichage des résultats de recherche sur les écrans High DPI.
  10. MQL5 : Accès implémenté aux données du calendrier économique des programmes MQL5.

    Nouvelles fonctions

    CalendarCountryById — obtient la description du pays par identifiant.
     bool CalendarCountryById(
       const long            country_id,    // country ID
       MqlCalendarCountry&  country        // country description
       );
    CalendarEventById — obtient la description de l'événement par identifiant.
     bool CalendarEventById(
       const long            event_id,      // event ID
       MqlCalendarEvent&     event           // event description
       );
    CalendarValueById — obtient la description de la valeur de l'événement par identifiant.
     bool CalendarValueById(
       const long            value_id,      // value ID
       MqlCalendarValue&     value           // value description
       );
    CalendarEventByCountry — obtient le tableau des événements disponibles pour le pays.
     bool CalendarEventByCountry(
       string                country_code,  // country code
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarEventByCurrency — obtient le tableau des événements disponibles pour la devise affectée.
     bool CalendarEventByCurrency(
       string                currency,       // currency
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarValueHistoryByEvent — obtient le tableau de valeurs pour la période spécifiée, par identifiant d'événement.
     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 — obtient le tableau de valeurs pour la période spécifiée pour tous les événements, filtrés par pays et/ou devise.
     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 — obtient un tableau des dernières valeurs d'événement par identifiant. Cette fonction permet de demander les valeurs apparues depuis la précédente demande. Le paramètre d'entrée/sortie "change_id" est également utilisé pour cette opération.

    Chaque fois que la base de données du calendrier change, la propriété "change_id" (l'identifiant du dernier changement) est mise à jour. Lors de la demande de données, vous spécifiez "change_id" et le terminal renvoie les événements qui sont apparus après cette heure, ainsi que la valeur actuelle de "change_id", qui peut être utilisée pour la prochaine demande. Lors du premier appel de la fonction, spécifiez le "change_id" nul : la fonction ne renverra aucun événement, mais renverra le "change_id" actuel pour les requêtes ultérieures.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[]           // array of values
       );
    CalendarValueLast — obtient le tableau des dernières valeurs pour tous les événements, filtrés par pays et/ou devise. Cette fonction permet de demander les valeurs apparues depuis la précédente demande. Comme pour CalendarValueLastByEvent, la propriété "change_id" est utilisée pour la requête.
     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
       );

    Nouveaux ouvrages

    MqlCalendarCountry — description du pays.
     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 — description de l'événement.
     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 — description de la valeur de l'événement.
     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
      };

    Nouvelles énumérations

     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
      };

    Nouveaux codes d'erreur

    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 : Corrections et améliorations de la vitesse de fonctionnement liées à l'historique des ticks et des barres.
  12. MQL5 : Corrections et améliorations significatives de la vitesse de fonctionnement liées aux fonctions de modification de l'historique des ticks et des barres des symboles de trading personnalisés, CustomTicks* et CustomRates* .
  13. MQL5 : Nouvelles fonctions de conversion de données.

    CharArrayToStruct copie un tableau uchar dans une structure POD.
     bool   CharArrayToStruct(
       void &         struct_object,    // structure
       const uchar &  char_array[],      // array
       uint           start_pos= 0         // starting position in the array
       );
    StructToCharArray copie une structure POD dans un tableau uchar.
     bool   StructToCharArray(
       const void &  struct_object,      // structure
       uchar &       char_array[],      // array
       uint          start_pos= 0         // starting position in the array
       );

  14. Ajout de la fonction MathSwap pour changer l'ordre des octets dans les valeurs ushort, uint et ulong.
     ushort MathSwap( ushort value );
    uint    MathSwap( uint    value );
    ulong   MathSwap( ulong    value );

  15. MQL5 : Fonctions réseau ajoutées pour créer des connexions TCP vers des hôtes distants via des sockets système :

    • SocketCreate crée une socket avec des drapeaux spécifiés et renvoie son handle
    • SocketClose ferme le socket
    • SocketConnect se connecte au serveur, avec contrôle du délai d'attente
    • SocketIsConnected vérifie si le socket est actuellement connecté
    • SocketIsReadable obtient le nombre d'octets pouvant être lus à partir du socket
    • SocketIsWritable vérifie si l'écriture de données sur ce socket est possible à l'heure actuelle
    • SocketTimeouts définit les délais de réception et d'envoi des données pour l'objet socket système
    • SocketRead lit les données d'un socket
    • SocketSend écrit des données dans un socket
    • SocketTlsHandshake initie une connexion sécurisée TLS (SSL) avec l'hôte spécifié à l'aide du protocole TLS Handshake
    • SocketTlsCertificate reçoit des informations concernant le certificat utilisé pour la connexion réseau sécurisée
    • SocketTlsRead lit les données d'une connexion TLS sécurisée
    • SocketTlsReadAvailable lit toutes les données disponibles à partir d'une connexion TLS sécurisée
    • SocketTlsSend envoie des données à l'aide d'une connexion TLS sécurisée

    L'adresse de l'hôte, auquel la connexion à l'aide des fonctions réseau est établie, doit être explicitement ajoutée à la liste des adresses autorisées dans les paramètres du terminal.

    De nouveaux codes d'erreur ont été ajoutés pour les opérations avec les fonctions réseau :

    • ERR_NETSOCKET_INVALIDHANDLE (5270) : handle de socket invalide passé à la fonction
    • ERR_NETSOCKET_TOO_MANY_OPENED (5271) : trop de sockets ouverts (maximum 128)
    • ERR_NETSOCKET_CANNOT_CONNECT (5272) : erreur lors de la connexion à l'hôte distant
    • ERR_NETSOCKET_IO_ERROR (5273) : erreur lors de l'envoi/de la réception de données depuis le socket
    • ERR_NETSOCKET_HANDSHAKE_FAILED (5274) : erreur d'établissement de connexion sécurisée (prise de contact TLS)
    • ERR_NETSOCKET_NO_CERTIFICATE (5275) — aucune donnée sur le certificat utilisé pour la connexion sécurisée

  16. MQL5 : Ajout de nouvelles fonctions pour les opérations sur les chaînes :

    StringReserve réserve pour une chaîne la mémoire tampon de la taille spécifiée.
     bool   StringReserve(
       string &        string_var,           // string
       uint            new_capacity          // buffer size for the string
       );
    StringSetLength définit la longueur de chaîne spécifiée en caractères.
     bool   StringSetLength(
       string &        string_var,          // string
       uint            new_length           // new string length
       );

  17. MQL5 : Ajout d'une nouvelle fonction pour les opérations sur les tableaux :

    ArrayRemove supprime d'un tableau le nombre spécifié d'éléments commençant par l'index spécifié.
     bool   ArrayRemove(
       void &         array[],              // array of any type
       uint           start,                // the index to start removal
       uint           count=WHOLE_ARRAY      // number of elements
       );
    ArrayInsert insère dans un tableau récepteur le nombre spécifié d'éléments à partir du tableau source, en commençant par l'index spécifié.
     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 inverse dans un tableau le nombre spécifié d'éléments commençant par l'index spécifié.
     bool   ArrayReverse(
       void &         array[],              // array of any type
       uint           start= 0 ,               // index to start reversing
       uint           count=WHOLE_ARRAY      // number of elements
       );

  18. MQL5 : Un nouveau paramètre "uint count" a été ajouté dans les fonctions CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd et CustomTicksReplace . Il permet de spécifier le nombre d'éléments du tableau passé, qui seront utilisés pour ces fonctions. La valeur WHOLE_ARRAY est utilisée pour le paramètre par défaut. Cela signifie que l'ensemble du réseau sera utilisé.
  19. MQL5 : Ajout de la fonction CustomBookAdd pour transmettre le statut du Depth of Market pour un symbole personnalisé. La fonction permet de diffuser le Depth of Market comme si les prix arrivaient du serveur d'un courtier.
     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 : Ajout de la surcharge de la fonction CustomSymbolCreate . Cela permet la création d'un symbole de trading personnalisé basé sur un symbole existant. Après la création, toute propriété de symbole peut être modifiée à l'aide des fonctions correspondantes.
     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
       );
    Le nom du symbole, à partir duquel les propriétés du symbole personnalisé doivent être copiées, est spécifié dans le paramètre "symbol_origin".

  21. La fonction StringToTime convertissant la chaîne avec date/heure en une valeur datetime a été mise à jour. Désormais, il prend en charge les formats de date suivants :

    • aaaa.mm.jj [hh:mi]
    • aaaa.mm.jj [hh:mi:ss]
    • aaaammjj [hh:mi:ss]
    • aaaammjj [hhmiss]
    • aaaa/mm/jj [hh:mi:ss]
    • aaaa-mm-jj [hh:mi:ss]

  22. MQL5 : Nouvelle propriété TERMINAL_VPS dans l'énumération ENUM_TERMINAL_INFO_INTEGER ; il montre que le terminal est en cours d'exécution sur le serveur d' hébergement virtuel MetaTrader (MetaTrader VPS). Si une application s'exécute sur un serveur d'hébergement, vous pouvez désactiver toutes ses fonctions visuelles, car le serveur virtuel n'a pas d'interface utilisateur graphique.
  23. MQL5 : Nouvelle propriété SYMBOL_EXIST dans l'énumération ENUM_SYMBOL_INFO_INTEGER , signifie que le symbole sous ce nom existe.
  24. MQL5 : Correction du typage lors de l'utilisation des pré-déclarations de fonction de modèle.
  25. MQL5 : Ajout de la réinitialisation des indicateurs lors du changement de compte de trading.
  26. MQL5 : Fonction StringSplit optimisée.
  27. MQL5 : correction d'erreurs dans le fonctionnement standard de la bibliothèque.
  28. Testeur : Ajout de la fonction TesterStop — arrêt anticipé de routine d'un Expert Advisor sur un agent de test. Désormais, vous pouvez arrêter de force les tests après avoir atteint le nombre spécifié de transactions perdantes, un niveau de retrait prédéfini ou tout autre critère.

    Les tests effectués à l'aide de cette fonction sont considérés comme réussis. Après l'appel de la fonction, l'historique de trading obtenu lors des tests et toutes les statistiques de trading sont transmis au terminal.

  29. Testeur : capacité désactivée de tester et d'optimiser les Expert Advisors via MQL5 Cloud Network en mode tick réel. Ce mode ne peut être utilisé que sur des agents locaux et des fermes de réseau local.
  30. Testeur : Amélioration du travail avec les indicateurs lors des tests visuels. Désormais, le graphique des prix et les lignes de l'indicateur sont dessinés de manière synchrone, même pour la vitesse de visualisation maximale.
  31. Testeur : tests et optimisation optimisés et considérablement accélérés.
  32. Testeur : Correction du débogage des indicateurs sur les données historiques. Maintenant, les fonctions d'indicateur OnInit et OnDeinit peuvent être correctement déboguées.
  33. Testeur : implémentation d'un accès plus rapide aux données historiques lors des tests d'experts-conseils multidevises.
  34. Testeur : Correction du blocage occasionnel du testeur visuel lors du débogage sur les données historiques.
  35. Testeur : Implémentation d'un démarrage plus rapide des passes d'optimisation lors du traitement d'un package de tâches par un agent.
  36. Testeur : modification de la politique de distribution des packages de tâches aux agents de test. La taille du package a été augmentée et, par conséquent, la consommation de ressources sur les opérations réseau a été considérablement réduite.
  37. Testeur : modification du comportement des options permettant l'utilisation d'agents locaux, réseau et cloud. Désormais, lorsque vous désactivez les options, les agents terminent le traitement des tâches reçues, alors qu'aucune nouvelle tâche ne leur est confiée. Dans les versions antérieures, le comportement était similaire à la commande "Désactiver", qui arrêtait immédiatement le fonctionnement de l'agent.




  38. MetaEditor : ajout de la prise en charge des caractères non ANSI dans le débogueur. Désormais, les expressions s'affichent correctement même si le nom de la variable est spécifié en cyrillique.
  39. MetaEditor : Correction de l'affichage des résultats de recherche sur les écrans High DPI.
  40. Ajout de la traduction de l'interface utilisateur en croate.
  41. La documentation a été mise à jour.
La mise à jour sera disponible via le système LiveUpdate.

 

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Paquet R de MetaTrader - le résumé

Sergey Golubev, 2019.02.22 06:47

L'étude principale

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

Les articles

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

Le Forum

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

plus à suivre ...


 

Forum sur le trading, les systèmes de trading automatisés et le test des stratégies de trading

Liens/threads/outils utiles.

Sergey Golubev, 2017.10.05 12:33

Expert Advisors multi-devises dans MT5 - backtesting et optimisation


Les fils/posts

  • Acheter ou vendre les 7 paires -le fil de discussion avec l'explication.
  • Multi-Currency Expert Advisorsle post avec les exemples de backtesting/optimisation.

Les articles

Documentation

  • Aide de MetaTrader 5 → Trading algorithmique, robots de trading →Types d'optimisation- Tous les symboles sélectionnés dans Market Watch.
  • Aide MetaTrader 5 → Trading algorithmique, robots de trading →Test de stratégie- Conseillers experts multi-devises
  • Aide MetaTrader 5 - Plate-forme de trading -Manuel d'utilisation

...et voici l'exemple du code de CodeBase -

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

Multidevise iMA Trend- expert pour 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.

Ce conseiller est sous la forme d'une classe la première version, donc, pour l'instant, les symboles ("EURUSD", "USDCAD", "USDJPY") sont spécifiés dans le code dur. Aussi, tous les paramètres d'entrée sont les mêmes pour chacun des trois symboles (Stop Loss, Take Profit, etc...).

 

Un bon article a été publié -

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

Application pratique des corrélations dans le trading

Application pratique des corrélations dans le trading

La corrélation est une relation statistique entre deux ou plusieurs variables aléatoires (ou des quantités qui peuvent être considérées comme aléatoires avec un certain degré de précision acceptable). Les changements d'une ou plusieurs variables entraînent des changements systématiques d'autres variables liées. La mesure mathématique de la corrélation de deux variables aléatoires est le coefficient de corrélation. Si le changement d'une variable aléatoire n'entraîne pas un changement régulier de l'autre variable aléatoire mais entraîne un changement d'une autre caractéristique statistique de cette variable aléatoire, une telle relation n'est pas considérée comme une corrélation, bien qu'elle soit statistique.

Application pratique des corrélations dans le trading

 

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Par où dois-je commencer ?

Sergey Golubev, 2018.09.20 15:43

Utilisez des conseils - l'instruction sur le HowTo

=========

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

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

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


 

Il y a un fil de discussion sur le forum -
Possibilités de la toile.
C'est un fil très utile.
Et voici un outil très intéressant qui est entièrement lié à ce fil de discussion.

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

Système d'équations algébriques linéaires sur chaque barre- indicateur pour MetaTrader 5

This work has 3 goals: 

  • Démontrez le fonctionnement de l'indicateur dans deux fenêtres à la fois : dans la fenêtre principale et dans la fenêtre secondaire. Ceci est réalisé en utilisant la classeiCanvas.
  • Solution compacte d'un système d'équations algébriques linéaires en utilisant la récursion.
  • Démontrer et prouver à quelques chercheurs le fait que l'utilisation de SLAE dans le trading algorithmique contient le potentiel de prédiction des prix.
Raison: