MetaTrader 5 build 3520 : Authentification 2FA/TOTP avec Google Authenticator

L'authentification forte 2FA/TOTP protège un compte de trading contre tout accès non autorisé même si son identifiant et son mot de passe sont divulgués

25 novembre 2022

Terminal

  1. Ajout de l'authentification 2FA/TOTP à l'aide de Google Authenticator et d'applications similaires.

    L'authentification forte 2FA/TOTP protège un compte de trading contre tout accès non autorisé même si son identifiant et son mot de passe sont divulgués. L'authentification à l'aide de l'algorithme de mot de passe à usage unique (TOTP) basé sur le temps peut être mis en œuvre à l'aide de diverses applications mobiles. Les plus populaires d'entre elles sont Google Authenticator, Microsoft Authenticator, LastPass Authenticator et Authy. Vous pouvez maintenant vous connecter à votre compte dans le terminal client MetaTrader 5 en utilisant des mots de passe à usage unique générés par ces applications Authenticator.

    Pour activer l'option d'authentification à 2 facteurs, connectez-vous à votre compte et exécutez la commande "Activer la 2FA/TOTP" dans le menu contextuel du compte. Exécutez l'application Authenticator sur votre appareil mobile, cliquez sur "+" pour ajouter votre compte de trading et scannez le QR code depuis le terminal. Saisissez le code généré dans le champ "Mot de passe à usage unique" et cliquez sur "Activer la 2FA". Un secret sera enregistré pour votre compte sur le serveur de trading du courtier.


    Ajout de la prise en charge de l'authentification 2FA/TOTP à l'aide de Google Authenticator et d'applications similaires.

    Le secret enregistré sera utilisé dans l'application Authenticator pour générer un code OTP chaque fois que vous vous connectez à votre compte. Chaque mot de passe est valide pendant 30 secondes. Après cela, un nouveau mot de passe est généré.



    Un OTP supplémentaire de l'application Authenticator sera nécessaire pour se connecter au compte

    Si vous décidez de supprimer le secret stocké de l'application Authenticator, vous devez d'abord désactiver l'authentification 2FA/TOTP à l'aide de la commande correspondante du menu contextuel du compte. Si la nouvelle méthode d'authentification 2FA/TOTP n'est pas disponible sur votre compte, veuillez contacter votre courtier.

MQL5

  1. Correction du fonctionnement de la fonction CopyTicks pour les instruments de trading personnalisés. Lorsque vous travaillez avec des symboles personnalisés, les ticks initiaux de la session précédente peuvent être renvoyés au lieu des données demandées, sous certaines conditions.

  2. Ajout de nouvelles valeurs d'énumération pour obtenir le dernier code d'erreur OpenCL et la description textuelle.
    1. La valeur CL_LAST_ERROR (code 4094) a été ajoutée à l'énumération ENUM_OPENCL_PROPERTY_INTEGER

      Lors de la récupération de la dernière erreur OpenCL via CLGetInfoInteger, le paramètre handle est ignoré. Descriptions des erreurs : https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API. html#CL_SUCCESS.
      Pour un code d'erreur inconnu, la chaîne "erreur OpenCL inconnue N" est renvoyée, où N est le code d'erreur.

      Exemple :
      //--- the first handle parameter is ignored when obtaining the last error code
      int code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);

    2. La valeur CL_ERROR_DESCRIPTION (4093) a été ajoutée à l'énumération ENUM_OPENCL_PROPERTY_STRING .
      Une description d'erreur textuelle peut être obtenue à l'aide de CLGetInfoString. Descriptions des erreurs : https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API. html#CL_SUCCESS.

      Lors de l'utilisation de CL_ERROR_DESCRIPTION, un code d'erreur doit être transmis pour le paramètre handle dans CLGetInfoString. Si CL_LAST_ERROR est transmis à la place du code d'erreur, la fonction renverra la dernière description d'erreur.

      Exemple :
      //--- get the code of the last OpenCL error
      int    code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);
      string desc; // to get the text description of the error
      
      //--- use the error code to get the text description of the error
      if(!CLGetInfoString(code,CL_ERROR_DESCRIPTION,desc))
         desc = "cannot get OpenCL error description, " + (string)GetLastError();
      Print(desc);
      
      
      //--- to get the description of the last OpenCL error without receiving the code, pass CL_LAST_ERROR  
      if(!CLGetInfoString(CL_LAST_ERROR,CL_ERROR_DESCRIPTION, desc))
         desc = "cannot get OpenCL error description, " + (string)GetLastError();
      Print(desc);
      Le nom de l'énumération interne est transmis comme description de l'erreur. Son explication peut être trouvée sur https://registry.khronos.org/OpenCL/specs/3.0-unified/html /OpenCL_API.html#CL_SUCCESS. Par exemple, la valeur CL_INVALID_KERNEL_ARGS signifie "Renvoyé lors de la mise en file d'attente d'un noyau lorsque certains arguments du noyau n'ont pas été définis ou sont invalides." (" Returned when enqueuing a kernel when some kernel arguments have not been set or are invalid." )

  3. Correction du fonctionnement de la méthode matrix::MatMul. Lorsque vous travaillez avec de grandes matrices, le terminal peut planter sur certaines tailles.

Correction des erreurs rapportées dans les journaux de crash.