MQL4:如何获取经济日历的事件值?

MQL4: How to fetch an economic calendar's event value?

如何使用 MQL4 获取经济公告的 最新 发布值,以便与另一个名为 x 的变量进行比较?

我需要将获取的数据(变量 x)与 手动输入的 变量 y170000 进行比较。

如果x > y执行一个函数,如果x < y执行另一个函数。

extern int x = 170000;

extern int y = ...; //Fetch latest value of economic announcement 
                    //to compare to extern int x

void OnStart()
  {

  if(x>y){ 
      //Executes a function
  } 

  else 
  if (x<y){
      //Executes a different function
  }

  }

使用 extern int,如果我手动设置 x = 1x = 3(或任何其他数字),脚本将正常运行。我只是想知道 extern int 是否是获取值并将其转换为数字的合适方法,以便我可以通过 x > yx < y?[=26 比较它们=]

我从另一个网站找到了一个 SLOC,其中有人想将整个经济日历导入他们的算法(尽管事实上我只需要一个最新的值),我认为将其包含在其中可能有点用处这个问题。它从 .csv 文件导入数据,所以也许我也可以尝试这种方法。 SLOC:

extern string HtmlAdress = "http://www.dailyfx.com/calendar/Dailyfx_Global_Economic_Calendar.csv";

我知道延迟将是此方法的一个突出问题,但这是否有可能实现?

可以实现吗?是:

怎么办?

1.找一个table和可靠的发表数据来源(发表延迟,数据有效性)

2. 检查,他们如何/是否使用某种技术传播或远程访问宏观数据的手段(RSS-数据提要,而不仅仅是新闻专线,平面/"ondulated"普通html网络-table(s),静态命名的文件更新等)

3. 实现一个代理扫描器,这将实现 (2) 自主执行外部操作MetaTrader 终端 及其内部代码执行单元。

4.(3) 配备与协议无关的集成就绪方式,多平台,与 MT4 进程的在线通信(ZeroMQnanomsg、等)

5. 实施 MT4 ExpertAdvisor 代码以包含快速高效的通信交换和空闲握手 proxy-scanner (3).

工具?

经过多年的大规模系统集成,最有效的方法包括快速原型开发 (2+3+4) python-2.x 是一个合理的方法执行此操作的选项和 ZeroMQnanomsg(4+5)

提供合理广泛的移植框架

例子?是:

https://www.dailyfx.com/calendar/index_iframe.html?tz=2&sort=date&week=today&eur=true&usd=true&jpy=true&gbp=true&chf=true&aud=true&cad=true&nzd=true&cny=true&high=true&medium=true&low=true

Brings an algorithmically parse-able html-table as a source of the needed value(s):

<tr class ="e-cal-row" id ="eventrow10" onClick ="commentOnOff('...xml',10,'english')"> <td></td> <td>10:00</td> <td><div class="flag-32-eur"></div></td> <td width="100%">EUR German IFO - Expectations (AUG)</td> <td class="evImportance medium"><span></span></td> <td style="color:red" nowrap="nowrap"> <span style="color:red">100.1</span></td> <td nowrap="nowrap">102.4</td> <td style="color:red" nowrap="nowrap"> <span style="color:red">102.2</span></td> <td align="right"><div class="arrow"></div></td> </tr>

有风险吗?是:

  • 更多的组件意味着更多的地方来实施错误恢复策略

  • 解决方案最终取决于 (2) 的状态(可能实施 1+1 更新源)

  • 最后,(2) 中的任何微小变化都会使您的处理线停止并强制您的实施循环回到 (2)re-开始re-工程,re-实施和重新-再次测试步骤。