下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2014.01.21 07:43
程序库

XmlParser - MetaTrader 5程序库

| Chinese English Русский Español Deutsch 日本語 Português

显示:
367
等级:
投票: 29
xmlparserdll.zip (235.42 KB)
\MQL5\Include\\MQL5\Scripts\

这个 CXmlElement 类提供以下功能与 XML 文档工作。

  • 它允许您从 XML文档 (或从它的单个元素) 创建 DOM-模型 (对象树);
  • 它允许您读, 修改, 创建和删除嵌套元素和文本;
  • 它允许您保存对象模型至 XML。

类接口:

class CXmlElement
{
public:
  string        Name;
  CXmlElement   *Elements[];
  CXmlAttribute *Attributes[];
  string        Text;
  ...  
  string SetXml (string xml);
  string GetXml ();
};

对于存取类属性,用到一个简单的类 CXmlAttribute:

class CXmlAttribute 
{
public:
  string Name;
  string Value;
};

此处是一个简单的脚本例子, 解析 XML 并打印从 DOM 树得到的信息:

//+------------------------------------------------------------------+
//|                                              XmlParserScript.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//|                                                   yu-sha@ukr.net |
//+------------------------------------------------------------------+
#include <XmlParser.mqh>
//+------------------------------------------------------------------+
//| 脚本开始                                                          |
//+------------------------------------------------------------------+
void OnStart()
  {
   CXmlElement xmldoc;
   string xml="<!--Comment--><ROOT><ITEM  Attr1=\"HELLOW\">Terminal &quot;MT5&quot;</ITEM></ROOT>";
   Print("XML="+xml);
   string res=xmldoc.SetXml(xml);
   if(res=="")
     {
      Print("根元素: "+xmldoc.Name);
      Print("  属性数量: "+string(ArraySize(xmldoc.Attributes)));
      Print("  嵌套元素: "+string(ArraySize(xmldoc.Elements)));
      Print("  第一个嵌套元素:"+xmldoc.Elements[0].Name);
      Print("    它的第一个属性: "+xmldoc.Elements[0].Attributes[0].Name+"="+xmldoc.Elements[0].Attributes[0].Value);
      Print("    它的文本: "+xmldoc.Elements[0].Text);
      Print("XML="+xmldoc.GetXml());
     }
   else
      Print(res);
  }
//+------------------------------------------------------------------+

这是脚本执行结果:


附加信息:

  • 当前版本仅加载 DOM 的元素, 它们的属性和文本。所有其它类型信息 (注释, 描述, ...) 均被忽视。作为结果 - 也许会遗失一些信息,如代码页, 版本, 所以保存 XML 文档也许会不正确。
  • 当保存时,会依据标准转换特殊符号,像 <"&'> 至 &lt:, &gt;, ...。
  • 这个解析器的目的主要是解析 XML 文档,而不是完全使用 XML 文档工作。

文件位置:

  • terminal_data_folder\MQL5\Libraries\xmlparser.dll
  • terminal_data_folder\MQL5\Include\xmlparser.mqh
  • terminal_data_folder\MQL5\Scripts\xmlparserscript.mq5

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/97

加速震荡(AC) 加速震荡(AC)

加速/减速技术指标(AC)用于衡量当前驱动力的加速和减速。

平均趋向指数(ADX) 平均趋向指数(ADX)

平均趋向指数指标(ADX)用来帮助判断市场是否存在趋势。

60 EMA profit 60 EMA profit

直观显示60EMA均线交易系统的赢利和亏损。

Ticks Volume 指标 Ticks Volume 指标

在期货市场上,交易量的数据会有一天的延迟,为了解决这个问题,许多分析员使用 tick volume 指标 (tick volume,订单交易量).