如何从metatrader出口货币兑换?

时间:2013-06-14 12:01:57

标签: xml json export metatrader4 metatrader5

我正在寻找一个解决方案,如何从metatrader(4或5)出口货币兑换 到web(json,csv,xml ...)

我看到可以导出到excel文件。

2 个答案:

答案 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()

处理它自己的近RT循环的引用到达

时间分辨率

MT4的TimeDOMAIN分辨率相当差,可以通过int GetTickCount()

工作到 1毫秒

Do-s&amp;唐&#39; T-S

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弹性阈值。

这听起来像是在MetaTrader中构建RealTime软件吗?

正确。

Verba讲解。 Exempla trahunt。

尝试使用这种方法在MT4中使用瘦 - 软RT客户端,并将缓存写入MQL4 RT-scanners TAMARA & SONAR do,您会看到,它很快就需要几个分钟( MINUTES )的sustained-fileIO-write - s只存储localhost磁盘上的几个主要内容...或更好 - 将本地收集的数据块分发到远程loggerPROCESS syslog 相似)或任何其他{在线|离线}后期处理