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

时间:2016-08-25 10:34:43

标签: trading algorithmic-trading mql4 metatrader4 forex

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

我需要将获取的数据(变量x)与{strong>手动输入的变量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比较它们?

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

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

据我所知,延迟将成为这种方法的一个突出问题,但这有可能实现吗?

1 个答案:

答案 0 :(得分:3)

达到的? YES:

如何吗

1. 找到稳定可靠的已发布数据来源(发布延迟,数据有效性)

2. 检查他们是如何/如果他们使用某种方式进行技术传播或远程访问宏观数据( RSS -feed对于数据,不仅仅是新闻线,平面/&#34; ondulated&#34;普通html网络表,静态命名的文件更新等。)

3. 实施代理扫描程序,将 (2) 自动实施到 MetaTrader终端的外部操作以及它的内部代码执行单元。

4. (3) 提供与的协议无关,多平台在线通信的集成就绪方法MT4 流程(ZeroMQnanomsg等)

5. 实施 MT4 ExpertAdvisor代码,以便与 {进行快速有效的通信交换和空闲握手{1}}

工具吗

在大规模系统集成中执行此操作多年后,最有效的方法包括快速原型开发 proxy-scanner (3) a (2+3+4)是执行此操作的合理选项, python-2.xZeroMQ nanomsg

提供合理的移植框架

实施例? YES:

  

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

将具有算法解析能力的(4+5)表格作为所需价值的来源:

html <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) {{1 }} </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">

风险? YES:

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

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

  • 最后, </span></td> <td align="right"><div class="arrow"></div></td> </tr> 中的任何微小变化都会导致您的处理线停止并强制执行,以循环回 (2) 并且重新 - 再次启动重新 - 工程,重新 - 实施和重新 - 测试步骤。