文章 "Connexus入门(第一部分):如何使用WebRequest函数?"

 

新文章 Connexus入门(第一部分):如何使用WebRequest函数?已发布:

本文是‘Connexus’库开发系列的开篇之作,旨在为MQL5环境下的HTTP请求提供便利支持。该项目的目的是为终端用户提供这个机会,并展示如何使用这个辅助库。我打算尽可能地简化,以便于学习,从而为进一步开发提供可能性。

WebRequest函数为与外部服务的集成开辟了广泛的可能性。从收集对自动化交易决策至关重要的金融数据,到完全自动化流程,该函数允许EA直接与网络交互。例如,这使得您的EA能够从外部来源(如经济新闻或其他平台的市场数据)获取实时信息。这些数据能够被处理并用于自动调整您的交易策略,从而提高操作的准确性和效率。

然而,正如将在实例中展示的那样,使用WebRequest函数可能并不简单。发送HTTP请求看似简单,但您很快会遇到技术挑战,例如发送正确的头部信息、格式化JSON数据、正确处理服务器响应,甚至处理通信过程中可能出现的错误和异常。这些挑战表明,尽管功能强大,但该函数需要对协议和系统间通信有扎实的理解,这可能会成为刚开始探索这一领域的开发人员的重大障碍。


作者:joaopedrodev

 

joaopedrodev 工程师,您好!

无论如何,非常感谢您提供这篇非常有趣的文章。

但我有一个小问题。那就是,当我尝试在实际条件下测试您提供的代码(即使用 POST 方法的 "WebRequest "函数)时,请求会顺利到达我的服务器。只是,参数(

"{\"key1\":\"value1\",\"key2\":\"value2\"}" 

) 中传递的数据无法到达服务器。您是否有办法解决这个问题?谢谢。

由版主自动翻译。在英文论坛上,请用英文写作。要么使用自动翻译工具,要么在其他语言论坛发帖。
 
J M #:

joaopedrodev 工程师,您好!

无论如何,非常感谢您提供这篇非常有趣的文章。

但我有一个小问题。那就是,当我尝试在实际条件下测试您提供的代码(即使用 POST 方法的 "WebRequest "函数)时,请求会顺利到达我的服务器。只是,参数中传递的数据

) 中传递的数据无法到达服务器。您是否有办法解决这个问题?谢谢。

版主进行了自动翻译。在英文论坛上,请用英文写作。要么使用自动翻译工具,要么在其他语言论坛发帖。

Hellow@J M

请确保您在请求正文中发送这些数据,这样服务器才能正确接收您要发送的数据。我还要求您使用最新版本的库,该库附在上一篇文章Connexus Observer(第 8 部分):添加请求观察者

J M
J M
  • 2024.06.19
  • www.mql5.com
Trader's profile
 
我对使用 MT5 进行 DeFi 的问题也很感兴趣。一般来说,我认为 MT5 虽然很吸引人(即可以使用内置工具编写工具),但其设计并不适合在没有经纪人的情况下使用。现有的商业项目 允许自由连接外部资源,但使用成本相当高。交易员的面包通常是不固定的,因此持续的费用对我们来说并不合适。WebRequest() 最初并不方便通过 API 加载报价,因为不同交易所的 API 各不相同,而且没有针对 WebRequest() 进行优化。事实上,WebRequest() 是一种狭义的 GET 方法,但其响应是一组不同类型的数据,这些数据应(更好地)改编为 MT5 结构的 .csv。Python 列表比 MQL 数组更适合于此。但这不是问题的关键,我们需要在市场概述中添加一个符号,该符号可以从外部来源(例如 SQL)加载报价。通过 EA 来实现这一功能非常麻烦,而且需要连接到左侧经纪商。因此,MT5 的免费使用仍然值得怀疑,而 WebRequest() 则是乌托邦。
 
Good Beer #:
但这不是问题的关键,我们需要在市场概览中使用一个符号,它可以从外部来源(例如 SQL)加载报价。

为此,我创建了一个自定义符号和一个服务,在后台通过 CustomRatesUpdate(通过 WebRequest)和 CustomTicksAdd(通过 websocket)函数更新历史记录。

Good Beer#:
通过 EA 很麻烦,需要连接到左侧经纪商。

通过 EA 真的很麻烦。使用服务。您不需要连接到 "左 "经纪人,直接从您计划交易的供应商处获取报价即可。

Good Beer#:
因此,免费使用 MT5 仍然是个问题,而 WebRequest() 则是乌托邦。

我自由使用 MT5,没有任何问题。WebRequest 适用于不频繁的历史更新和发送交易请求。如需实时更新,请使用 websockets。

 
这就对了!服务我没学过,都忘了。谢谢