我正在寻找一个解决方案,如何从metatrader(4或5)出口货币兑换 到web(json,csv,xml ...)
我看到可以导出到excel文件。
答案 0 :(得分:0)
您可以创建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);
}
}
答案 1 :(得分:0)
MT4可以作为anEventFACTORY
进程发送实时报价,即#34; Tick(s)"进一步处理,无论是内部(通过函数调用)还是外部(通过ZeroMQ或nanomsg通信框架)
MT4有一个默认的内部EventLOOP,在每次报价到达 EA交易和自定义指标时触发int start(){ <_code-block_> }
。除此之外,脚本可以使用bool RefreshRates()
MT4的TimeDOMAIN分辨率相当差,可以通过int GetTickCount()
MT4无法运行超过一个 专家顾问 +一个 脚本 +一些自定义指标每MT4.Graph
MT4线程是构建任何高工作负载软件的脆弱结构
MQL4中的MT4代码可以阻止整个&#34;接收引擎&#34; MT4(不是关于MT4.TradingCONTEXT
...,所以要小心并将合理的void Sleep( int msecs2sleep )
放在任何代码的RT敏感部分中。
MT4 fileIO
阻止,尽可能避免,如果按下,则缓存和延迟磁盘写入情况,你肯定有15-40毫秒&#34;空闲时间&# 34;停留在fileIO-blocked
&lt; 代码块&gt;执行&lt; 州&gt;。虽然这看起来很有趣,但如果您碰巧安排了这样的&#34; 导出&#34;这可能会导致MT4
平台挂起。处理不当,MT4
线程模型超出了MUTEX / LOCKs弹性阈值。
是
正确。
尝试使用这种方法在MT4中使用瘦 - 软RT客户端,并将缓存写入MQL4 RT-scanners TAMARA & SONAR do,您会看到,它很快就需要几个分钟( MINUTES )的sustained-fileIO-write
- s只存储localhost
磁盘上的几个主要内容...或更好 - 将本地收集的数据块分发到远程loggerPROCESS
( syslog 相似)或任何其他{在线|离线}后期处理