Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

XmlParser - библиотека для MetaTrader 5

Просмотров:
2441
Рейтинг:
(36)
Опубликован:
2010.04.12 13:18
Обновлен:
2011.09.30 11:42
xmlparser-doc.zip (36.87 KB)
xmlparserdll.zip (235.42 KB)
\MQL5\Include\ \MQL5\Scripts\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Класс CXmlElement предоставляет следующие возможности для работы с XML:

  • создавать DOM-модель (дерево объектов) из XML-документа (или отдельного элемента);
  • читать, изменять, создавать, удалять атрибуты, вложенные элементы и текст;
  • сохранять объектную модель в 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:

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, нежели для полноценной работы с такими документами.

Расположение файлов:

  • Каталог_данных_терминала\MQL5\Libraries\xmlparser.dll
  • Каталог_данных_терминала\MQL5\Include\xmlparser.mqh
  • Каталог_данных_терминала\MQL5\Scripts\xmlparserscript.mq5
iBBFill iBBFill

Закрашенные (залитые) полосы Боллинджера.

iMovment iMovment

Индикатор Movment выводит бары разного цвета и оттенка в зависимости от направления и величины движения.

ZeroLag MACD ZeroLag MACD

ZeroLag MACD с раскраской баров гистограммы относительно предыдущего бара.

Математические линии Мюррея (поддержка и сопротивление) Математические линии Мюррея (поддержка и сопротивление)

Индикатор строит математические линии Мюррея (Murrey Math Lines) на всей доступной истории без использования объектов.