[MT4指标]在 MT4 上显示 dailyfx 中文经济数据日程表 [附指标代码]
本帖最后由 boolapi 于 2014-3-23 15:46 编辑
补充内容 (2014-3-25 20:57):
有的经济数据比较长, 会有掉字现象, 可以将代码里的 line 390 - StringSubstr(strEvent, 0, 30), 的 30 改为 35.
补充内容 (2014-4-28 20:44):
新增流览前一日和后一日经济数据功能, 新改指标附件于24楼
补充内容 (2015-1-30 17:55):
2015 年更新版于31楼DisplayEcoCalendarDailyfx.zip095100zequsc39cqs9kzeu.jpg
指标说明: 因为还是新手权限, 无法发 url link, 请百度"在 MT4 上显示 dailyfx 中文经济数据日程表"可以得到说明连接. 因为今天为周日, 没有经济数据日程可以显示, 可以先改本机日期为上周五或下周一后再测试此指标 上网是利用微软系统自带 wininet.dll, 所以在载入指标或 EA, 需要允许动态连接库的加载. wininet.dll 不需放入 MT4 的文件夹, 因为是系统 dll, 程序可以自动加载. |
2楼
本帖最后由 boolapi 于 2014-4-6 20:30 编辑
修改: 把抓取网页连续 buffer 从 1024 放大到至 10240, 以避免在 GB2312 编码转化至 Unicode 间, 有些行在连续 buffer 间会被转换成乱码的问题. 修改后代码和执行档于附件
补充内容 (2014-4-29 16:27):
新增流览前一日和后一日经济数据功能, 新改指标附件于24楼DisplayEcoCalendarDailyfx.zip
韬客社区www.talkfx.co
发表于:2014-04-10 15:20只看该作者
4楼
楼主能否帮忙修改下面的指标,使之能在610以上版本mt4上编译成功。另外能否加入某某货币[backcolor=rgb(230, 232, 237)]Bank Holiday[/backcolor]
的提示。 你可以忽略dailyfx网站的部分,我喜欢FF网站的数据。 先谢谢了。 FFCal_mini_DailyFX.rar
的提示。 你可以忽略dailyfx网站的部分,我喜欢FF网站的数据。 先谢谢了。 FFCal_mini_DailyFX.rar
5楼
里面可能有两个地方转到 build 600 会有问题的, 一个是同名到 build 600 后的一个新增的函数 TimeGMT, 把指标里的这个名字统一改到另一个名字不要相冲即可, 一个是 build 600 后已经改为全 unicode 环境, 指标调用外部 dll 需要改用尾字是 W 宽字节的函数, 不能用尾字是 A 的函数.
因为 ffcal 是个历经许多年改版许多次的指标, 如果你有兴趣可以理顺里面繁长的代码, 试着照上面的点 自行修改和测试.
韬客社区www.talkfx.co
6楼
韬客社区www.talkfx.co
发表于:2014-04-11 02:40只看该作者
7楼
8楼
因为 FFCal 经过不同国外论坛的人在过去几年反复修改过, 代码变的有些冗长杂乱 我昨晚利用看盘的闲暇时刻, 在没有完全读通其代码的状况, 修改上面讲的两个地方, 另外直接把那个指标利用 wininet 上网的 GrabWeb(...) 内容直接换成我调用 wininet 的上网方式, 这样就能在最短的时间编译过去并上网成功, 产生的图如上, 修改后的指标于附件, 如果你日后发现有那些地方没有改好, 请自行修改.
FFCal.zipeurusdh1.jpg
韬客社区www.talkfx.co
9楼
韬客社区www.talkfx.co
发表于:2014-04-11 05:49只看该作者
10楼
发表于:2014-04-11 06:20只看该作者
11楼
可以编译使用,修改一点点有关Holiday提示的,不知道行不,要等到假日来了才能验证。
不知兄的这个上网方式如何,以前的那个连不上提示“News Indicator is disabled because NO CONNECTION to Broker!”的时候,mt4整个卡住,不能动没响应了。
12楼
韬客社区www.talkfx.co
13楼
在 FFCal 的 Start() 下面有一段:
if ( !IsConnected() ) {
Print( "News Indicator is disabled because NO CONNECTION to Broker!" );
return( 0 );
}
把这段注释掉或删触, 就不会检查是否有与交易商服务接上, 这个指标在抓 www.forexfactory.com 的日程表是透过 wininet.dll, 与交易商服务器是否连上没有关系.
IsConnect() 的定义在 MQL4 官网的解说在:
http://docs.mql4.com/cn/check/isconnected
韬客社区www.talkfx.co
发表于:2014-04-11 13:49只看该作者
14楼
谢谢 兄的耐心和时间。
修改试试。
15楼
我想起一件事, FFCal 是几年前的国外论坛朋友们设计的指标, 旧的 MT4 指标要工作都需要靠图表上有新的价格进来来"驱动", 如果没有连上交易商的服务器就图表没有办法有新的价格, 也就是无法"触发"这个指标工作, 虽然 wininet.dll 上网方式是与交易商是否连接没有关系.
我写的 dailyfx 中文版的经济日程表(或另一篇抓取几个即时国际财经新闻网站), 是用 MT4 build 600 后新增的 OnTimer() 功能来驱动, 也就是可以在指标内自行定义一个定时器, 设定一个时间间隔如一分钟或五分钟, 来定时驱动指标, 就算没有连接到交易商服务器 (如当不幸交易商断线), 没有新价格进来, 用 OnTimer() 一样是可以工作的. 你如果要改 FFCal 成 OnTimer() 驱动形式, 可以参考我写那个 dailyfx 的方式, 或是根本就不要改, 因为毕竟交易商断线应该不是很常发生(我是如此假设).
韬客社区www.talkfx.co
发表于:2014-04-11 14:06只看该作者
16楼
长见识,学习啦
发表于:2014-04-16 23:58只看该作者
17楼
经过这几天的使用,今天已经看到holiday的提示,而且再没出现mt不能动没响应的情况。
只是偶尔在周末的时候会提示“FFCal Error - Web page download was not complete!”估计应该是FF网页的问题吧。
我这儿打开FF论坛有时候也很吃力。
总之,这指标已经达到要求,再次感谢兄的指导。
18楼
不客气. 我再看了 FFCal 的源码, 会出现你说的那段警告语, 你可以用你的 browser 开 http://cdn.forexfactory.com/ffcal_week_this.xml, 这个 xml 网页也就是 FFCal 读取解析的网页, 在网页上按右键选查看网页源代码, 你可以看到这个警告语检查的是当网页抓下来, 有没有抓到网页最后一段字"", 也就是检查网页是否抓取完全的判断.
韬客社区www.talkfx.co
发表于:2014-04-17 03:47只看该作者
19楼
恩,这应该不影响使用了,
估计周末,没跳动驱动,该网页无法抓取完整,或者FF的该网页没更新吧。
平常好像没看到这个提示。
发表于:2014-04-18 02:32只看该作者
20楼
不错的指标,找了很久呢,很方便
韬客社区www.talkfx.co