[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
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-18 02:32只看该作者
20楼
不错的指标,找了很久呢,很方便
韬客社区www.talkfx.co