2

我如何Maintenance从网站获得“”价值

在此处输入图像描述

使用MQL4脚本?

据我了解,我必须设置互联网连接,从站点获取数据,解析它并获取数据。

有没有办法我可以做到这一点?

我将不胜感激任何例子。

4

1 回答 1

3

事实 #1:MQL4 语法限制调用外部子流程:

这意味着(如果不使用 DLL 解决方法)整个任务将需要重新发明轮子并在 MQL4 中构建 HTML 解析器。可行但浪费任何人的资源。

事实 #2:有更好的方法可供选择:

一旦要使用 DLL 导入的功能,可能只是绕过 MQL4 代码执行限制并调用 Windows-API 服务来分叉子进程并使事情向前发展,但在我看来,Windows-API 是功能丰富的接口框架,但是对于基本服务的相当低级的访问,所以您终于可以发现自己再次重新发明轮子,好吧,现在“超出”了 MQL4 沙盒的限制。

如果您不限制我们的想象力,您的项目可能会受益于 Python 中的快速原型设计,并在异构 Python/MQL4 环境中设置对等分布式消息传递/控制。

除了其他好处之外,Python 在智能和强大(不仅)Web 内容处理方面的优势是惊人的,因此这种分布式方法将把您的 MQL4 项目打开到战略性的新的、看不见的维度。


Python 智能抓取(不是一个愚蠢的):

def askAtPublisherWebURL( aControlDICT,
                          aURL             = "https://globalde?.?.?.?y?.com/en/products/.../...-DLON?Class_type=class_symbol=???&Class_exchange=???&ps=999&md=03-2014",
                          anOPT            = "ESX",
                          aMaturityDATE    = "03-2014",
                          anEmailRECIPIENT = "Me.Robot-GWY-2013-PoC@gmail.com",
                          aFileNAME        = "ESX_2014-03_anObservedStateTIMESTAMP[]"
                          ):
    import      time, urllib, re, winsound, urllib2             # late, dirty import

    try:
        aReturnFLAG     = True
        anOutputSTRING  = "|TRYING: " + aURL                    # a crash-proof proxy-value for a case IOError <EXC> would appear
      # --------------------------------------------------------# urllib2 MODE        
        anInputHANDLER  = urllib2.urlopen( aURL, None, 120 )    # urllib2 MODE with a 120 [sec] timeout before urllib2.URLError ... still gets stuck during peak-hours ( on aMaturityDATE )
        aListOfLINEs    = anInputHANDLER.readlines()
        anInputHANDLER.close()
      # --------------------------------------------------------# urllib2 MODE
    except urllib2.URLError as anExcREASON:
        aReturnFLAG     = False
                                                                # no RET here // JMP .FINALLY: to log IOError....

    except exceptions.IOError as ( ErrNO, ErrSTR ):             # an IOError <EXC> hase appeared, handle with care before JMP .FINALLY:
        aReturnFLAG     = False

    else:                                                       # no IOError or any other <EXC>, process the <content> .. JMP .FINALLY:
        # ------------------------------------------------------# HTML-processor
        # smart html-processing goes here
        # ...
        # ------------------------------------------------------# HTML-processor
    finally:                                                    # in any case do all this TIDY-UP-BEFORE-EXIT
        # fileIO + pre-exit ops
        # sendMsg4MQL() --> SIG MT4

    return aReturnFLAG # MISRA-motivated single point of RET

对于鹰派 Pythoneers,该帖子有意使用非 PEP-8 源代码格式,因为作者体验到,在学习阶段,代码可读性提高了对任务解决方案的关注,并有助于习惯底层概念,而不是花费精力关于正式遵守的排版。希望提供帮助的原则得到尊重,以易于阅读的名义原谅非 PEP-8 样式格式。

于 2015-10-05T17:35:33.467 回答