如何使用MQL4
获取经济公告的最新发布值,并将其与另一个名为x
的变量进行比较?
我需要将获取的数据(变量x
)与{strong>手动输入的变量y
值170000
进行比较。
如果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 = 1
和x = 3
(或任何其他数字),则脚本可以正常运行。我只是想知道extern int
是否适合获取值并将其转换为数字,以便我可以通过x > y
或x < y
比较它们?
我从另一个网站找到了一个SLOC,有人想将整个经济日历输入到他们的算法中(尽管事实上我只需要一个单一的,最新的值),我认为这可能对这个问题有所帮助。它从.csv
文件导入数据,所以也许我也可以尝试这种方法。 SLOC:
extern string HtmlAdress = "http://www.dailyfx.com/calendar/Dailyfx_Global_Economic_Calendar.csv";
据我所知,延迟将成为这种方法的一个突出问题,但这有可能实现吗?
答案 0 :(得分:3)
如何吗
1.
找到稳定可靠的已发布数据来源(发布延迟,数据有效性)
2.
检查他们是如何/如果他们使用某种方式进行技术传播或远程访问宏观数据( RSS
-feed对于数据,不仅仅是新闻线,平面/&#34; ondulated&#34;普通html
网络表,静态命名的文件更新等。)
3.
实施代理扫描程序,将 (2)
自动实施到 MetaTrader终端的外部操作以及它的内部代码执行单元。
4.
为 (3)
提供与的协议无关,多平台在线通信的集成就绪方法MT4
流程(ZeroMQ
,nanomsg
等)
5.
实施 MT4
ExpertAdvisor
代码,以便与 {进行快速有效的通信交换和空闲握手{1}} 强>
工具吗
在大规模系统集成中执行此操作多年后,最有效的方法包括快速原型开发 proxy-scanner (3)
a (2+3+4)
是执行此操作的合理选项, python-2.x
或ZeroMQ
为 nanomsg
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">
更多组件意味着更多地方实施错误恢复策略
解决方案最终取决于 102.2
的状态(可能实现1 + 1更新源)
最后, </span></td>
<td align="right"><div class="arrow"></div></td>
</tr>
中的任何微小变化都会导致您的处理线停止并强制执行,以循环回 (2)
并且重新 - 再次启动重新 - 工程,重新 - 实施和重新 - 测试步骤。