文章 "从网络中获取债券收益率数据"

 

新文章 从网络中获取债券收益率数据已发布:

自动收集利率数据以提高EA交易的效率。

自动交易几乎完全基于技术指标,这些指标使用过去的价格行为来预测未来的价格行为。然而,忽略市场运动的基本力量的交易者对将基本数据纳入其交易决策的交易者不利。基于自动收集的基础数据的指标可以提高专家顾问的效率。对汇率影响最大的基础数据是利率,它影响货币的感知价值,虽然央行的利率没有波动,但美国等政府债券的收益率、0年期国债,在全球债券市场的所有时间框架内波动。这些收益率反映了市场对未来央行利率走向的预期。债券收益率通常是利率和汇率的主要指标。在外汇市场中,适用于货币对的度量标准是不同时间段的利率差,特别是delta或利率差变化。图1显示了一种情况,即利率差的变动(以基点表示)在正方向上是欧元/美元货币对在同一方向上变动的领先指标。本文介绍了如何从网络中收集债券收益率数据,并从利率差和增量的数据表达式中推导出债券收益率数据。

利率差异领先指标

图1每小时 EUR/USD 图表上的利率差异指标。

作者:Steven Brown

 

这是我在附加 script05 时得到的结果

图表或指标区域上没有打印任何内容...

我错过了什么?


2019.04.14 17:11:18.623 脚本 脚本债券(欧元兑美元,每日)加载成功

2019.04.14 17:11:18.984 脚本 脚本债券 (EURUSD,Daily)已删除



 
jimjack:

这是我附加脚本 05 时得到的结果

在图表或指标区域上没有打印任何内容...

我错过了什么?


2019.04.14 17:11:18.623 脚本 脚本债券(EURUSD,Daily)加载成功

2019.04.14 17:11:18.984 脚本 脚本债券 (EURUSD,Daily) 已删除



ScraperBot06.mq4 可在 MT5 中正常运行,其功能与 ScraperBot05.mq5 相同。不同之处在于 ScraperBot05使用 WebRequest(),而 ScraperBot06 使用 WinINet.dll 中的函数,后者似乎比 WebRequest() 更可靠。我会研究一下这个问题,看看能否让使用 WebRequest() 的 ScraperBot05.mq5 正常工作。我在 2018 年 10 月提交文章时,它工作正常。

编辑:ScraperBot05.mql 和其他脚本中对 WebRequest() 的调用只有在 Metatrader 选项允许Web 请求中指定的服务器时才能工作 这在文章中有解释。

 
本邮件所附的 ScraperBot06.mq5 与 ScraperBot05.mq5 相同,但使用了 WinINet.dll 中的函数而非 WebRequest()。我上传 ScraperBot06.mq5 是因为 ScraperBot05.mq5 中的 WebRequest() 现在返回错误代码-1,之后 GetLastError() 返回代码 4014、

err_function_not_allowed

4014

不允许调用函数

自 2018 年 10 月我提交文章以来,Metatrader 5 可能已经更改了 WebRequest() 的实现,但 WebRequest() 的文档并未更改。

编辑:在 Metatrader 选项中 允许向 Web 服务器"https://api.wsj.net " 请求后,问题在我的计算机上得到了解决。显然,Metatrader 的一次更新删除了该权限

附加的文件:
 
Steven Brown:
本邮件所附的 ScraperBot06.mq5 与 ScraperBot05.mq5 相同,但使用了 WinINet.dll 中的函数而非 WebRequest()。我上传 ScraperBot06.mq5 是因为 ScraperBot05.mq5 中的 WebRequest() 现在返回错误代码-1,之后 GetLastError() 返回代码 4014、

err_function_not_allowed

4014

不允许调用函数

自 2018 年 10 月我提交文章以来,Metatrader 5 可能已经更改了 WebRequest() 的实现,但 WebRequest() 的文档并未更改。




感谢您的回复。

我又编译了一次,结果出现了 "类型转换可能导致数据丢失 "的警告。

在终端上仍然看不到任何东西。

我是否还需要其他来自微软、.net 等公司的软件包?


谢谢



 
重要!ScraperBot04.mq5 和 ScraperBot05.mq5 中对 WebRequest() 的调用只有在 Metatrader 选项允许Web 请求中指定的服务器时才会起作用。要启用网络服务器,请单击 Tools\Options 并在出现的对话框中单击 Expert Advisors 选项卡。选中 "允许列出 URL 的网络请求",点击 "添加新 URL",然后输入网络服务器的基本 URL。就 ScraperBot05 而言,该 URL 是"https://api.wsj.net"。 如果不这样做,对 WebRequest() 的调用就会失败,报告错误代码-1 和 4014。文章在 "ScraperBot04 "标题下提到了特别允许 Web 服务器的必要性。我写道:"为了使 WebRequest 正常工作,服务器的基本 URL(本例中为'https://api.wsj.net')需要包含在 MetaTrader 平台中 "Tools\Options\Expert Advisors "下的允许服务器列表中。

我的 Metatrader 5 版本允许使用网络服务器"https://api.wsj.net",但 Metatrader 5 的新版本升级将其从列表中删除。这种情况是不应该发生的,而且这似乎是一个错误,Metaquotes 应该加以修复。网络服务器一旦被允许,就应通过更新保持允许状态。
 
jimjack:




谢谢您的答复。

我又编译了一次,结果出现了一堆警告,说 "由于类型转换,可能会丢失数据"。

在终端上还是看不到任何东西。

我是否还需要其他来自微软、.net 等公司的软件包?


谢谢



编译器关于数据丢失的警告可以忽略,因为它们是使用 float 而不是 double 类型的结果。我选择使用 float 类型,因为在此应用程序中不需要 double 类型的精度。出现警告后,编译成功,错误为零。您下载、编译并尝试过我附在回复中的脚本(名为 ScraperBot06.mq5)吗?它使用 WinINet.dll 而不是 WebRequest()。至于 ScraperBot05 中调用 WebRequest() 失败的问题,您是否在 Metatrader 选项中启用了网络服务器?请参阅我上一篇文章,开头是"重要!"。我在文章中写道,除非选项中明确允许 Web 服务器,否则 WebRequest() 将会失败。
 

嗯、

让我重新安装 metatrader,因为从一开始就允许使用该网址。是的,我允许使用 wininet.dll,并检查了 我的 win (10) 目录......它就在那里。

 
感谢您的文章,非常有趣!请报告在实际交易中使用该系统的结果。
 
感谢您的文章,非常有趣!请报告在实际交易中使用该系统的结果。
 
创建真正盈利的自动交易系统的真正方法。