将互联网时间数据导入 metatrader4
Posted
技术标签:
【中文标题】将互联网时间数据导入 metatrader4【英文标题】:Import internet time data into metatrader4 【发布时间】:2018-09-17 13:59:54 【问题描述】:我发现如果服务器时间设置错误,TimeGmt()
函数是不准确的,尤其是获取其他夏令时时区。
有什么方法可以从互联网上抓取时间数据并输入到智能交易系统中?找到了WebRequest函数,但是对参数不是很了解。
我笔记本电脑上的时钟与time.windows.com
同步。是否也可以在 mt4 中执行此操作?还有time.is
等其他网站。
谢谢
【问题讨论】:
【参考方案1】:您可以使用 WebRequest 函数然后解析输出。虽然有很多愚蠢的工作。如果您的笔记本电脑已同步,您可以使用TimeLocal()
功能查询当前当地时间,并获取您笔记本电脑的时间。它在测试器中不起作用(实际上,除了TimeCurrent()
之外的任何东西都可以正常工作,如官方文档中所述)。
如果访问“time.is”网站,您必须找到看起来像“20:42:15”的行并从该行中提取当前时间(在我的情况下为 20:42)。您应该使用 GET 请求,因此请使用第一个 WebRequest
函数。
请记住,WebRequest 是异步的,因此访问网站然后解析数据等需要时间,并且您的 ea 在继续之前等待回复,因此每周左右调用一次该函数可能是有意义的。
【讨论】:
非常感谢。所以那时是可能的。问题是,我不完全了解如何使用 WebRequest 函数。我在 cookie、referer、数据和所有其他参数中放入了什么。超时是我知道的唯一参数。大声笑 Cookie 和referrer 可以替换为NULL
,对于数据-使用空char array
,其大小为0。如果您必须传递引用-首先创建它(char emptydata[], result[]; string result_headers;
)其他 - 输入默认值(NULL
和 0
)。如果WebRequest
返回200
,只需按照示例#1 docs.mql4.com/en/common/webrequest 使用您的网站地址并将结果数组转换为字符串ouput=CharArrayToString(result);
。以上是关于将互联网时间数据导入 metatrader4的主要内容,如果未能解决你的问题,请参考以下文章