PDA

View Full Version : DailyFx新闻指标



indigt82
04-30-2010 17:57, 05:57 PM
1附件大家好,
我有一个指标,读取该消息的每日csv文件。

我没有能够得到它的工作,因为我不真正理解它分析文件的方式。

它似乎在读取网站的html代码,这就是我在图表上显示的内容。我只能假设他们(dailyfx)已经改变了链接,但我不知道如何修改链接以使其在指标上下文中工作。

任何帮助在这里将非常感激。

谢谢

https://www.forex-pedia.com/attachments/1518475199835301057.mq4

ilne34
12-03-2021 01:07, 01:07 AM
我有一个从DailyFX读取新闻的自己的图书馆。由于他们关闭了csv的下载(我认为2年前),这种方法不再适用。您必须自己解析基础的html响应(并且请注意,当dailyfx更改其css或其他内容时,您必须每6个月更改一次te代码。

indigt82
12-03-2021 02:28, 02:28 AM
Bump..Anyone?

Evapelestasta
12-03-2021 03:49, 03:49 AM
据我所知,正确的链接(用于从2010年4月25日开始的一周内获取新闻事件)是:http://www.dailyfx.com/calendar/cal.csv?week=2010/0425sort=dateDesctimezone= GMTcurrency = |重要性= |产生的CSV文件的格式如下:日期,时间,时区,货币,说明,重要性,实际值,预测,上一个太阳4月25日12:00 AM,GMT,USD,USD IMF;世界银行; G-20;格林威治标准时间4月25日凌晨1点,格林威治标准时间,澳元,澳元季度工资协议(第四季度),低,,, 3.5%星期日4月25,11:01 PM,格林威治标准时间, GBP,GBP Hometrack住房调查(月率)(APR),低位,0.2%,0.3%4月25,11:01 PM,GMT,GBP,GBP Hometrack房屋调查(同比) ,1.3%Sun 4月25,11:50 PM,GMT,JPY,JPY公司服务价格(同比)(MAR),低,-1.1%, - 1.4%, - 1.2%(R )4月26,2:30 PM,GMT,USD,美元达拉斯联储制造业活动(APR)低位21.1%,9.8%,7.2%周二4月27,1:30 AM,格林尼治标准时间,澳元,澳元生产者价格指数(环比) ,1.0%,0.6%, - 0.4%MQL4语句字符串news = ReadWebPage(http://www.dailyfx.com/calendar/cal.csv?week= start_date sort = dateDesctimezone = GMTcurrency = | importance = |) ;应该将整个cal.csv文件的内容读入一个名为news的字符串变量。你如何解析和处理这个字符串取决于你想要在MT4图表上显示的内容。鉴于我目前的知识以及您提供的信息,我尽可能提供帮助。

indigt82
12-03-2021 05:10, 05:10 AM
你如何解析和处理这个字符串取决于你想要在MT4图表上显示的内容。鉴于我目前的知识以及您提供的信息,我尽可能提供帮助。
非常感谢。总是可以依靠你!我会多做点事,看看我会如何。如果我无法实现,我会回复并尝试更详细。干杯

indigt82
12-03-2021 06:30, 06:30 AM
好的,这里有一些更具体的问题,希望你能回答。不是我已经完成了这些问题为什么MT4需要DLL包含行(#import wininet.dll)以及与之相关的代码(如果我有直接访问网络的情况)比拨号?我怎样才能让MT4看到(4月30日星期五)作为日期而不是字符串?并且,如果时间格式与MT4的时间格式不同,我怎么能够将它看作(1:55 PM)? 对于那些知道的人来说,这听起来像是愚蠢的问题,如果他们提前表示道歉的话。在我试图获取日期格式以匹配文件读取操作时,我发现了一些东西,因为dailyfx日历默认为7天日历,所以我不需要输入日期以获取信息,这在我的因为我还没有解决问题,所以对我来说这件事很幸运
https://www.forex-pedia.com/attachments/1518475200393235944.png

Evapelestasta
12-03-2021 07:51, 07:51 AM
好的,这里有一些更具体的问题.....
您的问题的答案在MQL4在线帮助中(例如,在MetaEditor中,将光标放在单词#import并按F1键)。为了节省时间,我在下面粘贴了相同的帮助文字。 1.为什么MT4需要DLL包含行(#import wininet.dll)和与之配套的代码,如果我可以直接访问网络(在这种情况下是互联网)而不是拨号?必须明确描述在程序的另一个组件中定义的外部函数的类型。没有这样的定义可能会导致程序在编译,链接或执行过程中出现错误。在描述外部对象时,#import关键字必须与对模块的引用一起使用。 #import user32.dll int MessageBoxA(int hWnd,string szText,string szCaption,int nType); int SendMessageA(int hWnd,int Msg,int wParam,int lParam); #import lib.ex4 double round(double value); #import导入可用于轻松描述从外部DLL或编译的EX4库调用的函数。指向变量的指针可以传递给导入的dll函数。字符串类型的数据作为指针传递给相应的内存块(应该记住,字符串数据的内部表示由两部分组成:内存块长度和内存块指针)。如果需要传递int或double类型的数据,则相应类型的一维数组应该通过引用作为参数传递。 2.我怎样才能让MT4看到(4月30日星期五)作为日期而不是字符串?并且,如果时间格式与MT4的时间格式不同,我怎么能够将它看作(1:55 PM)? datetime StrToTime(字符串值)将格式为yyyy.mm.dd的hh:mi转换为datetime类型(自1970年1月1日以来经过的秒数)。参数:value - 日期/时间格式的字符串值,格式为yyyy.mm.dd hh:mi。示例:datetime var1; var1 = StrToTime(2003.8.12 17:35); VAR1 =的strtotime(17点35分);/返回给定时间的当前日期var1 = StrToTime(2003.8.12);/返回午夜时间为00:00的日期

Evapelestasta
12-03-2021 09:12, 09:12 AM
我会在短时间内向您发送一封邮件,提供更多信息。

indigt82
12-03-2021 10:33, 10:33 AM
您的问题的答案在MQL4在线帮助中(例如,在MetaEditor中,将光标放在单词#import并按F1键)。为了节省时间,我在下面粘贴了相同的帮助文字。 1.为什么MT4需要DLL包含行(#import wininet.dll)和与之配套的代码,如果我可以直接访问网络(在这种情况下是互联网)而不是拨号?必须明确描述在程序的另一个组件中定义的外部函数的类型。没有这样的定义可能......
好的...但我在PM部分时间出现错误,虽然我可以修正PM,但它不能解决12至24小时时钟转换问题。我确实阅读了帮助手册,但似乎没有解决这些具体问题,或者超出了我的头脑。日期时间StrToTime(字符串值)似乎只转换预定义的格式,因为它是用手动编写的,而不是用4月30日星期五的CSV编写的变体。这是一个值,不是用逗号分开的,否则我可以将它分开来读取它。我必须错过重要的事情。我会追踪一些代码,看看我能否找到可能有效的例子。

indigt82
12-03-2021 11:54, 11:54 AM
我会在短时间内向您发送一封邮件,提供更多信息。
对不起,我们似乎同时发帖,帖子重叠。

佐尔坦阿马多尔
12-03-2021 13:14, 01:14 PM
你有没有得到你的指标工作