Descargar MetaTrader 5

Mira cómo descargar robots gratis

¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!

¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5

Librerías

XML parser - librería para MetaTrader 5

| Spanish English Русский 中文 Deutsch 日本語 Português

Visualizaciones:
555
Ranking:
votos: 22
Publicado:
2014.01.14 13:58
Actualizado:
2016.11.22 07:33
\MQL5\Include\XML\
xmlbase.mqh (0.56 KB)ver
xmldocument.mqh (11.89 KB)ver
xmlelement.mqh (18.89 KB)ver
\MQL5\Scripts\
xml_test.mq5 (1.39 KB)ver

Una librería para analizar documentos XML. Escrita totalmente en MQL5, no utiliza ninguna librería externa.

Para utilizar la librería, simplemente inclúyala:

#include <Xml\XmlBase.mqh>

Ejemplo:

#include <Xml\XmlBase.mqh>

CXmlDocument doc;

void OnStart() 
{
  string file = "File.xml";
  string err;
  if (doc.CreateFromText(file,err))
  {
    CXmlElement * xmlItem = doc.FDocumentElement.GetChild(0);
    for (int i=0; i<xmlItem.GetChildCount(); i++) 
    if (xmlItem.GetChild(i).GetName() == "LAYER")
    {
      CXmlElement* layer = xmlItem.GetChild(i);
      for (int j=0; j<layer.GetChildCount(); ++j) 
      {        
        if (layer.GetChild(j).GetName() == "NEURON")
        {
           /* .... */
        }
      }
    }
  }
}

Notas:

  • La librería fue escrita cuando los contructores en MQL5 no necesitaban parámetros;
  • Solamente están soportadas las funciones básicas del estándar Xml;
  • Por favor, avísenme sobre errores, sugerencias y correcciones.

Componentes principales:

CXmlDocument esta clase contiene los métodos principales para descargar los documentos XML desde un archivo o variable de cadena y guardarlos en un archivo.

Las funciones CreateX analizan los documentos XML y crean la jerarquía de modelo del DOM, el trabajo sobre las mismas puede ser realizado mediante FDocumentElement 

class CXmlDocument 
{
  private:

    void DoElementTrimText(CXmlElement &aXmlItem) ;
  
  public:
    CXmlElement FDocumentElement;

    void CXmlDocument ();
    void ~CXmlDocument ();
    void Clear();
    void CopyTo (CXmlDocument &xmlDoc);
  
    bool  CreateFromText (const string& xml, string& err);
    bool  CreateFromFile (const string filename, string& err);
    bool  SaveToFile (const string filename);

    string GetXml();
}

 

CXmlElement clase que ofrece una interfaz básica para cualquier documento XML. Ofrece acceso a elementos, atributos y contenido

class CXmlElement 
{
  private:
    string         FName;
    CXmlAttribute* FAttributes[];
    CXmlElement   *FElements[];
    string         FText;
    CXmlElement*   FParent;
  public:  
    //--- métodos constructores
    void  CXmlElement ();
    void ~CXmlElement ();
    void Init (const string aName, const CXmlElement* aParent=NULL, const string aText="");
    void CopyTo (CXmlElement &aDst);
    virtual void Clear ();
    
    //--- métodos principales de servicio
    string GetName () const;
    void SetName (const string aName);
    string GetText () const;
    void SetText (const string aText);
    CXmlElement* GetParent () const;
    void SetParent (CXmlElement* aParent);
    
    //--- métodos de servicio para atibutos
    int GetAttributeCount () const;
    int GetAttributeIndex (CXmlAttribute* aAttr) const;
    CXmlAttribute* GetAttribute (const string aName) const;
    CXmlAttribute* GetAttribute (int aPos) const;
    string GetAttributeValue (const string aName) const;
    
    CXmlAttribute* AttributeInsertAt (CXmlAttribute* aAttr, int aPos);
    CXmlAttribute* AttributeAdd (CXmlAttribute* aAttr);
    CXmlAttribute* AttributeInsertAfter (CXmlAttribute* aAfter, CXmlAttribute* aAttr);
    CXmlAttribute* AttributeInsertBefore (CXmlAttribute* aBefore, CXmlAttribute* aAttr);
    CXmlAttribute* AttributeRemove (CXmlAttribute* aAttr);
    CXmlAttribute* AttributeRemove (int aPos);
    void AttributeDelete (CXmlAttribute* aAttr);
    void AttributeDelete (int aPos);
    void AttributeDeleteAll ();
  
    //--- métodos de servicio para hijos
    int GetChildCount() const;
    int GetChildIndex (CXmlElement* aElement) const;
    CXmlElement* GetChild (const string aName) const;
    CXmlElement* GetChild (int aPos) const;
    string GetChildText (const string aName) const;

    CXmlElement* ChildInsertAt (CXmlElement* aElement, int aPos);
    CXmlElement* ChildAdd (CXmlElement* aElement);
    CXmlElement* ChildInsertAfter (CXmlElement* aAfter, CXmlElement* aElement);
    CXmlElement* ChildInsertBefore (CXmlElement* aBefore, CXmlElement* aElement);
    CXmlElement* ChildRemove (CXmlElement* aElement);
    CXmlElement* ChildRemove (int aPos);
    void ChildDelete (CXmlElement* aElement);
    void ChildDelete (int aPos);
    void ChildDeleteAll ();
  
    string GetXml(int aLevel);
};

 

CXmlAttribute clase sencilla para trabajar con atributos

class CXmlAttribute 
{
  private:
    string FName;
    string FValue;
 public:
    //--- métodos constructores
    void CXmlAttribute ();
    void ~CXmlAttribute ();

    void Init (const string aName, const string aValue);
    virtual void Clear ();
    virtual CXmlAttribute* Clone ();
    
    //--- métodos de servicio
    string GetName () const;
    void SetName (const string aName);
    string GetValue () const;
    void SetValue (const string aValue);    
};

Traducción del ruso realizada por MetaQuotes Software Corp.
Artículo original: https://www.mql5.com/ru/code/712

Three-Pole Super Smoother Filter Three-Pole Super Smoother Filter

Three-Pole Super Smoother Filter del libro de John Ehlers "Análisis Cibernético para Acciones y Futuros: Tecnología Cutting-Edge DSP para mejorar su Trading" se utiliza en este indicador para el cálculo del MA.

JFatlSpeed HTF JFatlSpeed HTF

Este indicador muestra la dirección de la aceleración del precio JFatlSpeed ​​de un marco temporal más grande en otro más pequeño.

Candles Smoothed HTF Candles Smoothed HTF

Este indicador muestra las velas promediadas de un marco temporal más grande en otro más pequeño.

Magnified Market Price Magnified Market Price

El indicador muestra el precio actual en una de las esquinas del gráfico.