我正在寻找解决方案,如何将货币兑换从 metatrader(4 或 5)导出到 web(json、csv、xml...)
我看到可以导出到excel文件。
我正在寻找解决方案,如何将货币兑换从 metatrader(4 或 5)导出到 web(json、csv、xml...)
我看到可以导出到excel文件。
MT4 可以作为anEventFACTORY
进程并发送实时报价(即“Tick(s)”)以进行进一步处理,无论是内部(通过函数调用)还是外部(通过 ZeroMQ 或 nanomsg 通信框架)
MT4 有一个默认的内部 EventLOOP,它会在Expert Advisor和自定义指标int start(){ <_code-block_> }
中的每个报价到达时触发。除此之外,脚本可以使用它自己的近 RT 循环处理 Quote 到达bool RefreshRates()
MT4 的 TimeDOMAIN 分辨率相当差,可以通过以下方式工作到大约1 毫秒int GetTickCount()
每个MT4 不能运行超过一个 EA + 一个 脚本 + 几个 自定义指标MT4.Graph
MT4 线程是构建任何高工作负载软件的脆弱结构
MQL4 中的 MT4 代码可能会阻塞 MT4 的整个“接收引擎”(不是说MT4.TradingCONTEXT
...,所以要小心并合理地放置void Sleep( int msecs2sleep )
在任何代码的 RT 敏感部分中不存在的位置。
MT4fileIO
阻塞,尽可能避免,如果按下,缓存和延迟磁盘写入到您肯定有 15-40 毫秒“空闲时间”在fileIO-blocked
< code-block > 执行中休息的情况状态>。虽然乍一看这似乎很有趣,但MT4
如果您碰巧以糟糕的方式安排此类“导出”处理并且MT4
线程模型超出了它们的 MUTEX/LOCKs 弹性阈值,这可能会使您的平台挂起。
是的。
正确的。
尝试使用这种方法在 MT4中使用瘦软 RT 客户端,或者像MQL4 RT 扫描仪 TAMARA 和 SONAR 那样进行缓存写入,您将看到,这很快需要几分钟 ( MINUTES ) sustained-fileIO-write
- s 只在磁盘上存储几个专业localhost
...,或者更好——将本地收集的数据块分发到远程loggerPROCESS
(类似系统日志)或任何其他{在线 | 离线}后处理
您可以创建一个 EA 来做到这一点。我个人收集费率(每个滴答声)并推送到 SQL 服务器。推送到 SQL 服务器更加棘手(我使用自定义 DLL 来执行此操作)。但是您可以轻松地将其附加到 csv 或制表符分隔的文件中。这将为您提供一个制表符分隔的文件,您可以将其导入 Excel。但请注意,这可能会变得非常巨大。此外,虽然其中有时间元素,但TimeCurrent()
仅精确到秒。要将精度降低到毫秒,您将需要一些更棘手的东西。但费率将按顺序附加。
int start() {
logRates();
return(0);
}
void logRates( string pvsSymbol, double pviAsk, double pviBid ) {
string vsFilename = "Rates (" + Symbol() + ") " + Month() + "-" + Day() + ".txt";
int handle = FileOpen(vsFilename + ".txt", FILE_CSV|FILE_READ|FILE_WRITE, '\t');
if(handle>0) {
FileSeek(handle, 0, SEEK_END);
FileWrite(handle, TimeCurrent(), pvsSymbol, pviBid, pviAsk);
FileClose(handle);
}
}