查看: 12328|回复: 59

[MT4指标] 在 MT4 上显示 dailyfx 中文经济数据日程表 [附指标代码]

[复制链接]
发表于 2014-3-23 15:45 | 显示全部楼层 |阅读模式
本帖最后由 boolapi 于 2014-3-23 15:46 编辑

095100zequsc39cqs9kzeu.jpg

指标说明: 因为还是新手权限, 无法发 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.zip

26.68 KB, 下载次数: 78

韬客外汇社区www.talkfx.com
回复

使用道具 举报

 楼主| 发表于 2014-4-6 20:25 | 显示全部楼层
本帖最后由 boolapi 于 2014-4-6 20:30 编辑

修改: 把抓取网页连续 buffer 从 1024 放大到至 10240, 以避免在 GB2312 编码转化至 Unicode 间, 有些行在连续 buffer 间会被转换成乱码的问题.  修改后代码和执行档于附件

补充内容 (2014-4-29 16:27):
新增流览前一日和后一日经济数据功能, 新改指标附件于24楼

DisplayEcoCalendarDailyfx.zip

26.96 KB, 下载次数: 21

韬客外汇社区www.talkfx.com
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
回复 支持 反对

使用道具 举报

发表于 2014-4-10 15:42 | 显示全部楼层
这个比较有意思。
不过,现在显示器越来越大,笔记本也便宜。何不直接多开个网页,或者用笔记本专门显示资讯呢?
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

发表于 2014-4-10 23:20 | 显示全部楼层
楼主能否帮忙修改下面的指标,使之能在610以上版本mt4上编译成功。另外能否加入某某货币Bank Holiday的提示。
你可以忽略dailyfx网站的部分,我喜欢FF网站的数据。
先谢谢了。

FFCal_mini_DailyFX.rar

11.08 KB, 下载次数: 12

韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-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 是个历经许多年改版许多次的指标, 如果你有兴趣可以理顺里面繁长的代码, 试着照上面的点 自行修改和测试.
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-11 03:16 | 显示全部楼层
iredfox 发表于 2014-4-10 15:42
这个比较有意思。
不过,现在显示器越来越大,笔记本也便宜。何不直接多开个网页,或者用笔记本专门显示资 ...

任何指标都有其满足的特定看盘需求或便利性, 这类的图表显示信息的指标主要是方便单一屏幕并快速切换到某一图表即可简单看看信息的需求, 而不用再开 browser, 最便利且合适的就是晚上在客厅用小型电脑接电视使用无线鼠标远距控制 MT4 边看网络电视的轻松看盘环境.  类似指标最有名的就是上面朋友留言提到的几年前国外设计读取 forexfactory 经济数据日程表的 ffcal 指标, 显示的自然是英文的日程表.
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

发表于 2014-4-11 10:40 | 显示全部楼层
boolapi 发表于 2014-4-11 00:36
里面可能有两个地方转到 build 600 会有问题的, 一个是同名到 build 600 后的一个新增的函数 TimeGMT, 把 ...

谢谢boolapi 兄,
你的博客很精彩,我继续学习琢磨看看能否搞定。
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-11 13:18 | 显示全部楼层
jxq168 发表于 2014-4-11 10:40
谢谢boolapi 兄,
你的博客很精彩,我继续学习琢磨看看能否搞定。

eurusdh1.jpg

因为 FFCal 经过不同国外论坛的人在过去几年反复修改过, 代码变的有些冗长杂乱 我昨晚利用看盘的闲暇时刻, 在没有完全读通其代码的状况, 修改上面讲的两个地方, 另外直接把那个指标利用 wininet 上网的 GrabWeb(...)  内容直接换成我调用 wininet 的上网方式, 这样就能在最短的时间编译过去并上网成功, 产生的图如上, 修改后的指标于附件, 如果你日后发现有那些地方没有改好, 请自行修改.  






FFCal.zip

68.55 KB, 下载次数: 13

韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-11 13:23 | 显示全部楼层
jxq168 发表于 2014-4-11 10:40
谢谢boolapi 兄,
你的博客很精彩,我继续学习琢磨看看能否搞定。

你要的新增功能, 我就不碰了, 要快速编译和让一个旧指标在 build 600 下能马上工作是一个还算简单的活, 如果要再新增一个功能那就要完全读懂原来的指标, 那需要花更多时间, 你需要自己完成了.
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

发表于 2014-4-11 13:49 | 显示全部楼层
boolapi 发表于 2014-4-11 13:18
因为 FFCal 经过不同国外论坛的人在过去几年反复修改过, 代码变的有些冗长杂乱 我昨晚利用看盘的闲暇 ...

哇,太好了,刚好我刚刚只弄出Holiday提示,下来看看能用否。谢谢。
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

发表于 2014-4-11 14:20 | 显示全部楼层
可以编译使用,修改一点点有关Holiday提示的,不知道行不,要等到假日来了才能验证。
不知兄的这个上网方式如何,以前的那个连不上提示“News Indicator is disabled because NO CONNECTION to Broker!”的时候,mt4整个卡住,不能动没响应了。
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-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 通知等功能都与是否接上交易商无关.

韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-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
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

发表于 2014-4-11 21:49 | 显示全部楼层
谢谢 兄的耐心和时间。
修改试试。
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-11 21:52 | 显示全部楼层
jxq168 发表于 2014-4-11 14:20
可以编译使用,修改一点点有关Holiday提示的,不知道行不,要等到假日来了才能验证。
不知兄的这个上网方式 ...

我想起一件事, FFCal 是几年前的国外论坛朋友们设计的指标, 旧的 MT4 指标要工作都需要靠图表上有新的价格进来来"驱动", 如果没有连上交易商的服务器就图表没有办法有新的价格, 也就是无法"触发"这个指标工作, 虽然 wininet.dll 上网方式是与交易商是否连接没有关系.

我写的 dailyfx 中文版的经济日程表(或另一篇抓取几个即时国际财经新闻网站), 是用 MT4 build 600 后新增的 OnTimer() 功能来驱动, 也就是可以在指标内自行定义一个定时器, 设定一个时间间隔如一分钟或五分钟, 来定时驱动指标, 就算没有连接到交易商服务器 (如当不幸交易商断线), 没有新价格进来, 用 OnTimer() 一样是可以工作的.  你如果要改 FFCal 成 OnTimer() 驱动形式, 可以参考我写那个 dailyfx 的方式, 或是根本就不要改, 因为毕竟交易商断线应该不是很常发生(我是如此假设).
韬客外汇社区www.talkfx.com
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
回复 支持 反对

使用道具 举报

发表于 2014-4-11 22:06 | 显示全部楼层
长见识,学习啦
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

发表于 2014-4-17 07:58 | 显示全部楼层
经过这几天的使用,今天已经看到holiday的提示,而且再没出现mt不能动没响应的情况。
只是偶尔在周末的时候会提示“FFCal Error - Web page download was not complete!”估计应该是FF网页的问题吧。
我这儿打开FF论坛有时候也很吃力。
总之,这指标已经达到要求,再次感谢兄的指导。
韬客外汇社区www.talkfx.com
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-17 09:04 | 显示全部楼层
jxq168 发表于 2014-4-17 07:58
经过这几天的使用,今天已经看到holiday的提示,而且再没出现mt不能动没响应的情况。
只是偶尔在周末的时候 ...

不客气.  我再看了 FFCal 的源码, 会出现你说的那段警告语, 你可以用你的 browser 开 http://cdn.forexfactory.com/ffcal_week_this.xml, 这个 xml 网页也就是 FFCal 读取解析的网页, 在网页上按右键选查看网页源代码, 你可以看到这个警告语检查的是当网页抓下来, 有没有抓到网页最后一段字"</weeklyevents>", 也就是检查网页是否抓取完全的判断.   


韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

发表于 2014-4-17 11:47 | 显示全部楼层
恩,这应该不影响使用了,
估计周末,没跳动驱动,该网页无法抓取完整,或者FF的该网页没更新吧。
平常好像没看到这个提示。
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

发表于 2014-4-18 10:32 | 显示全部楼层
不错的指标,找了很久呢,很方便
韬客外汇社区www.talkfx.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

【论坛栏目】   外汇论坛    交易社区    汇市讨论    汇商动态    外汇行情    分析大咖    外汇中长线     交易大神      【友情链接】 
返回顶部快速回复上一主题下一主题返回列表手机访问

论坛导航|手机版|小黑屋|反馈|

GMT+8, 2019-10-14 22:24 , Processed in 0.085997 second(s), 23 queries , Gzip On.

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;
2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;
3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;
4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;
5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。
投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:YH INTERNATIONAL LIMITED . Auckland, New Zealand