新版MetaTrader 5平台build 3520:使用Google Authenticator进行2FA/TOTP身份验证 新评论 MetaQuotes 2022.11.24 19:44 MetaTrader 5平台更新将于2022年11月25日星期五进行发布。 在此次更新中,我们实现在MetaTrader 5交易端通过Google Authenticator进行2FA/TOTP身份验证,并增加OpenCL错误报告。 其他修复和更新的功能提高了整个平台的运行稳定性。所有新功能都在下文中详细描述。 程序端:添加使用Google Authenticator和类似应用程序进行2FA/TOTP身份验证。 2FA/TOTP身份验证可以保护交易账户即使在泄露登录名和密码的情况下也可以免受未经授权的访问。可以使用多种移动应用程序来实现使用基于时间的动态密码算法(TOTP) 的身份验证。其中最受欢迎的是Google Authenticator、Microsoft Authenticator、LastPass Authenticator和Authy。现在您可以通过这种Authenticator应用程序生成的动态密码在MetaTrader 5客户端连接您的账户。 要启用双重身份验证选项,请连接到您的账户并执行账户快捷菜单中的“启用2FA/TOPT”命令。在您的移动设备上安装并运行Authenticator应用程序,点击"+"添加您的交易账户,并用客户端扫描二维码。在“动态密码”字段中输入生成的代码,并点击“启用2FA”。然后,在交易商的交易服务器上,将为您的账户注册一个密钥。 保存的密钥将用于Authenticator应用程序中,以便生成您每次连接账户时所需的OTP代码(动态密码)。每个动态密码在30秒内有效。失效后会再生成一个新动态密码。 如果您决定从Authenticator应用程序中删除存储的密钥,您应首先通过对应账户的快捷菜单命令禁用2FA/TOTP身份验证。如果您的账户没有新2FA/TOTP身份验证方法,请联系您的交易商。 MQL5:修正对自定义交易品种的CopyTicks函数的操作。当使用自定义交易品种时,在某些条件下,可能会返回前一个时段的初始报价,而不是所要求的数据。 MQL5:添加新枚举值,以获得最后OpenCL错误代码和文本描述。 CL_LAST_ERROR (код 4094)值已被添加到ENUM_OPENCL_PROPERTY_INTEGER枚举中 当通过CLGetInfoInteger获取最后一个OpenCL错误时,忽略句柄参数。错误描述:https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS。 对于未知错误代码,会返回字符串"unknown OpenCL error N(未知OpenCL错误N)",其中N是错误代码。 示例: //--- 在获得最后一个错误代码时,将忽略第一个句柄参数 int code = (int)CLGetInfoInteger(0,CL_LAST_ERROR); CL_ERROR_DESCRIPTION (4093)值已添加到ENUM_OPENCL_PROPERTY_STRING枚举中。 可以使用CLGetInfoString获得文本错误描述。错误描述:https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS。 当使用CL_ERROR_DESCRIPTION时,应将错误代码传递为CLGetInfoString中的句柄参数。如果传递的是CL_LAST_ERROR而不是错误代码,该函数将返回最后的错误描述。 示例: //--- 获得最后一个OpenCL错误的代码 int code = (int)CLGetInfoInteger(0,CL_LAST_ERROR); string desc; // 要获得错误的文本描述 //--- 使用错误代码来获得错误的文本描述 if(!CLGetInfoString(code,CL_ERROR_DESCRIPTION,desc)) desc = "cannot get OpenCL error description, " + (string)GetLastError(); Print(desc); //--- 要在没有接收代码的情况下获取最后一个OpenCL错误的描述,请传递CL_LAST_ERROR if(!CLGetInfoString(CL_LAST_ERROR,CL_ERROR_DESCRIPTION, desc)) desc = "cannot get OpenCL error description, " + (string)GetLastError(); Print(desc);内部枚举名称作为错误描述传递。其解释可显示在https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS。例如,CL_INVALID_KERNEL_ARGS值意味着“在某些内核参数未设置或无效时,在对内核进行排队时返回。” MQL5:修正matrix::MatMul方法的操作。在处理大型矩阵时,程序端可能在某些尺寸上出现崩溃的情况。 修正崩溃日志中的错误报告。 更新将通过实时更新系统提供。 新版MetaTrader 5平台build 3540:2FA/TOTP身份验证和改善网页端的市场报价 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
MetaTrader 5平台更新将于2022年11月25日星期五进行发布。
在此次更新中,我们实现在MetaTrader 5交易端通过Google Authenticator进行2FA/TOTP身份验证,并增加OpenCL错误报告。
其他修复和更新的功能提高了整个平台的运行稳定性。所有新功能都在下文中详细描述。
2FA/TOTP身份验证可以保护交易账户即使在泄露登录名和密码的情况下也可以免受未经授权的访问。可以使用多种移动应用程序来实现使用基于时间的动态密码算法(TOTP) 的身份验证。其中最受欢迎的是Google Authenticator、Microsoft Authenticator、LastPass Authenticator和Authy。现在您可以通过这种Authenticator应用程序生成的动态密码在MetaTrader 5客户端连接您的账户。
要启用双重身份验证选项,请连接到您的账户并执行账户快捷菜单中的“启用2FA/TOPT”命令。在您的移动设备上安装并运行Authenticator应用程序,点击"+"添加您的交易账户,并用客户端扫描二维码。在“动态密码”字段中输入生成的代码,并点击“启用2FA”。然后,在交易商的交易服务器上,将为您的账户注册一个密钥。
![添加对使用Google Authenticator和类似应用的2FA/TOTP身份验证的支持。 添加对使用Google Authenticator和类似应用的2FA/TOTP身份验证的支持。](https://c.mql5.com/3/397/enable_2FA.png)
保存的密钥将用于Authenticator应用程序中,以便生成您每次连接账户时所需的OTP代码(动态密码)。每个动态密码在30秒内有效。失效后会再生成一个新动态密码。
![连接到账户时,需要从Authenticator应用程序中获得的附加动态密码 连接到账户时,需要从Authenticator应用程序中获得的附加动态密码](https://c.mql5.com/3/397/OTP_Phone.png)
如果您决定从Authenticator应用程序中删除存储的密钥,您应首先通过对应账户的快捷菜单命令禁用2FA/TOTP身份验证。如果您的账户没有新2FA/TOTP身份验证方法,请联系您的交易商。当通过CLGetInfoInteger获取最后一个OpenCL错误时,忽略句柄参数。错误描述:https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS。
对于未知错误代码,会返回字符串"unknown OpenCL error N(未知OpenCL错误N)",其中N是错误代码。
示例:
//--- 在获得最后一个错误代码时,将忽略第一个句柄参数 int code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);
可以使用CLGetInfoString获得文本错误描述。错误描述:https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS。
当使用CL_ERROR_DESCRIPTION时,应将错误代码传递为CLGetInfoString中的句柄参数。如果传递的是CL_LAST_ERROR而不是错误代码,该函数将返回最后的错误描述。
示例:
//--- 获得最后一个OpenCL错误的代码 int code = (int)CLGetInfoInteger(0,CL_LAST_ERROR); string desc; // 要获得错误的文本描述 //--- 使用错误代码来获得错误的文本描述 if(!CLGetInfoString(code,CL_ERROR_DESCRIPTION,desc)) desc = "cannot get OpenCL error description, " + (string)GetLastError(); Print(desc); //--- 要在没有接收代码的情况下获取最后一个OpenCL错误的描述,请传递CL_LAST_ERROR if(!CLGetInfoString(CL_LAST_ERROR,CL_ERROR_DESCRIPTION, desc)) desc = "cannot get OpenCL error description, " + (string)GetLastError(); Print(desc);
内部枚举名称作为错误描述传递。其解释可显示在https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS。例如,CL_INVALID_KERNEL_ARGS值意味着“在某些内核参数未设置或无效时,在对内核进行排队时返回。”更新将通过实时更新系统提供。