韬客社区 收藏
boolapi 14-03-23 15:45
1楼
[MT4指标] 在 MT4 上显示 dailyfx 中文经济数据日程表 [附指标代码]
本帖最后由 boolapi 于 2014-3-23 15:46 编辑
指标说明: 因为还是新手权限, 无法发 url link, 请百度"在 MT4 上显示 dailyfx 中文经济数据日程表"可以得到说明连接. 因为今天为周日, 没有经济数据日程可以显示, 可以先改本机日期为上周五或下周一后再测试此指标 上网是利用微软系统自带 wininet.dll, 所以在载入指标或 EA, 需要允许动态连接库的加载. wininet.dll 不需放入 MT4 的文件夹, 因为是系统 dll, 程序可以自动加载.
补充内容 (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
boolapi
2楼
14-04-06 20:25 回复
本帖最后由 boolapi 于 2014-4-6 20:30 编辑 修改: 把抓取网页连续 buffer 从 1024 放大到至 10240, 以避免在 GB2312 编码转化至 Unicode 间, 有些行在连续 buffer 间会被转换成乱码的问题. 修改后代码和执行档于附件 补充内容 (2014-4-29 16:27): 新增流览前一日和后一日经济数据功能, 新改指标附件于24楼DisplayEcoCalendarDailyfx.zip
iredfox
3楼
14-04-10 15:42 回复
这个比较有意思。 不过,现在显示器越来越大,笔记本也便宜。何不直接多开个网页,或者用笔记本专门显示资讯呢?
jxq168
4楼
14-04-10 23:20 回复
楼主能否帮忙修改下面的指标,使之能在610以上版本mt4上编译成功。另外能否加入某某货币[backcolor=rgb(230, 232, 237)]Bank Holiday[/backcolor]
的提示。 你可以忽略dailyfx网站的部分,我喜欢FF网站的数据。 先谢谢了。 FFCal_mini_DailyFX.rar
boolapi
5楼
14-04-11 00:36 回复
jxq168 发表于 2014-4-10 23:20
楼主能否帮忙修改下面的指标,使之能在610以上版本mt4上编译成功。另外能否加入某某货币Bank Holiday[/back ...
里面可能有两个地方转到 build 600 会有问题的, 一个是同名到 build 600 后的一个新增的函数 TimeGMT, 把指标里的这个名字统一改到另一个名字不要相冲即可, 一个是 build 600 后已经改为全 unicode 环境, 指标调用外部 dll 需要改用尾字是 W 宽字节的函数, 不能用尾字是 A 的函数. 因为 ffcal 是个历经许多年改版许多次的指标, 如果你有兴趣可以理顺里面繁长的代码, 试着照上面的点 自行修改和测试.
boolapi
6楼
14-04-11 03:16 回复
iredfox 发表于 2014-4-10 15:42
这个比较有意思。 不过,现在显示器越来越大,笔记本也便宜。何不直接多开个网页,或者用笔记本专门显示资 ...
任何指标都有其满足的特定看盘需求或便利性, 这类的图表显示信息的指标主要是方便单一屏幕并快速切换到某一图表即可简单看看信息的需求, 而不用再开 browser, 最便利且合适的就是晚上在客厅用小型电脑接电视使用无线鼠标远距控制 MT4 边看网络电视的轻松看盘环境. 类似指标最有名的就是上面朋友留言提到的几年前国外设计读取 forexfactory 经济数据日程表的 ffcal 指标, 显示的自然是英文的日程表.
jxq168
7楼
14-04-11 10:40 回复
boolapi 发表于 2014-4-11 00:36
里面可能有两个地方转到 build 600 会有问题的, 一个是同名到 build 600 后的一个新增的函数 TimeGMT, 把 ...
谢谢boolapi 兄,
你的博客很精彩,我继续学习琢磨看看能否搞定。
boolapi
8楼
14-04-11 13:18 回复
jxq168 发表于 2014-4-11 10:40
谢谢boolapi 兄, 你的博客很精彩,我继续学习琢磨看看能否搞定。
因为 FFCal 经过不同国外论坛的人在过去几年反复修改过, 代码变的有些冗长杂乱 我昨晚利用看盘的闲暇时刻, 在没有完全读通其代码的状况, 修改上面讲的两个地方, 另外直接把那个指标利用 wininet 上网的 GrabWeb(...) 内容直接换成我调用 wininet 的上网方式, 这样就能在最短的时间编译过去并上网成功, 产生的图如上, 修改后的指标于附件, 如果你日后发现有那些地方没有改好, 请自行修改. FFCal.zipeurusdh1.jpg
boolapi
9楼
14-04-11 13:23 回复
jxq168 发表于 2014-4-11 10:40
谢谢boolapi 兄, 你的博客很精彩,我继续学习琢磨看看能否搞定。
你要的新增功能, 我就不碰了, 要快速编译和让一个旧指标在 build 600 下能马上工作是一个还算简单的活, 如果要再新增一个功能那就要完全读懂原来的指标, 那需要花更多时间, 你需要自己完成了.
jxq168
10楼
14-04-11 13:49 回复
boolapi 发表于 2014-4-11 13:18
因为 FFCal 经过不同国外论坛的人在过去几年反复修改过, 代码变的有些冗长杂乱 我昨晚利用看盘的闲暇 ...
哇,太好了,刚好我刚刚只弄出Holiday提示,下来看看能用否。谢谢。
jxq168
11楼
14-04-11 14:20 回复
可以编译使用,修改一点点有关Holiday提示的,不知道行不,要等到假日来了才能验证。 不知兄的这个上网方式如何,以前的那个连不上提示“News Indicator is disabled because NO CONNECTION to Broker!”的时候,mt4整个卡住,不能动没响应了。
boolapi
12楼
14-04-11 20:39 回复
本帖最后由 boolapi 于 2014-4-11 21:37 编辑
jxq168 发表于 2014-4-11 14:20
可以编译使用,修改一点点有关Holiday提示的,不知道行不,要等到假日来了才能验证。 不知兄的这个上网方式 ...
wininet.dll 是微软系统自带底层的 win32 api, 不管你的 MT4 有没有接上交易商, 利用 wininet.dll 写的上网指标一样是工作的, 只要你的电脑能连上网络. 同样道理 MT4 里的 email 通知等功能都与是否接上交易商无关.
boolapi
13楼
14-04-11 20:47 回复
jxq168 发表于 2014-4-11 14:20
可以编译使用,修改一点点有关Holiday提示的,不知道行不,要等到假日来了才能验证。 不知兄的这个上网方式 ...
在 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
jxq168
14楼
14-04-11 21:49 回复
谢谢 兄的耐心和时间。 修改试试。
boolapi
15楼
14-04-11 21:52 回复
jxq168 发表于 2014-4-11 14:20
可以编译使用,修改一点点有关Holiday提示的,不知道行不,要等到假日来了才能验证。 不知兄的这个上网方式 ...
我想起一件事, FFCal 是几年前的国外论坛朋友们设计的指标, 旧的 MT4 指标要工作都需要靠图表上有新的价格进来来"驱动", 如果没有连上交易商的服务器就图表没有办法有新的价格, 也就是无法"触发"这个指标工作, 虽然 wininet.dll 上网方式是与交易商是否连接没有关系. 我写的 dailyfx 中文版的经济日程表(或另一篇抓取几个即时国际财经新闻网站), 是用 MT4 build 600 后新增的 OnTimer() 功能来驱动, 也就是可以在指标内自行定义一个定时器, 设定一个时间间隔如一分钟或五分钟, 来定时驱动指标, 就算没有连接到交易商服务器 (如当不幸交易商断线), 没有新价格进来, 用 OnTimer() 一样是可以工作的. 你如果要改 FFCal 成 OnTimer() 驱动形式, 可以参考我写那个 dailyfx 的方式, 或是根本就不要改, 因为毕竟交易商断线应该不是很常发生(我是如此假设).
jxq168
16楼
14-04-11 22:06 回复
长见识,学习啦
jxq168
17楼
14-04-17 07:58 回复
经过这几天的使用,今天已经看到holiday的提示,而且再没出现mt不能动没响应的情况。 只是偶尔在周末的时候会提示“FFCal Error - Web page download was not complete!”估计应该是FF网页的问题吧。 我这儿打开FF论坛有时候也很吃力。 总之,这指标已经达到要求,再次感谢兄的指导。
boolapi
18楼
14-04-17 09:04 回复
jxq168 发表于 2014-4-17 07:58
经过这几天的使用,今天已经看到holiday的提示,而且再没出现mt不能动没响应的情况。 只是偶尔在周末的时候 ...
不客气. 我再看了 FFCal 的源码, 会出现你说的那段警告语, 你可以用你的 browser 开 http://cdn.forexfactory.com/ffcal_week_this.xml, 这个 xml 网页也就是 FFCal 读取解析的网页, 在网页上按右键选查看网页源代码, 你可以看到这个警告语检查的是当网页抓下来, 有没有抓到网页最后一段字"", 也就是检查网页是否抓取完全的判断.
jxq168
19楼
14-04-17 11:47 回复
恩,这应该不影响使用了, 估计周末,没跳动驱动,该网页无法抓取完整,或者FF的该网页没更新吧。 平常好像没看到这个提示。
小邪邪
20楼
14-04-18 10:32 回复
不错的指标,找了很久呢,很方便