Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

Analisador XML - biblioteca para MetaTrader 5

Visualizações:
1329
Avaliação:
(31)
Publicado:
2014.01.14 13:49
Atualizado:
2016.11.22 07:33
\MQL5\Include\XML\ \MQL5\Scripts\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Uma biblioteca para análise de documentos XML. Somente MQL5, ele não usa qualquer biblioteca externa.

Para usar a biblioteca, basta incluir:

#include <Xml\XmlBase.mqh>

Exemplo:

#include <Xml\XmlBase.mqh>

CXmlDocument doc;

void OnStart() 
{
  string file = "Arquivo.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:

  • A biblioteca foi escrita com construtores MQL5 sem parâmetros;
  • Somente funções básicas do padrão XML são suportados;
  • Por favor me informe sobre os erros, sugestões e correções de bugs.

Principais componentes:

Classe CXmlDocument fornece métodos para download de documentos XML a partir de um arquivo/string e salva em arquivo.

Funções CreateX analisam documentos XML e criam hierarquia de modelo DOM, o trabalho pode ser feito usando 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();
};

 

A classe CXmlElement é uma interface base de qualquer documento XML. Ela fornece o acesso a elementos, atributos e conteúdo.

class CXmlElement 
{
  private:
    string         FName;
    CXmlAttribute* FAttributes[];
    CXmlElement   *FElements[];
    string         FText;
    CXmlElement*   FParent;
  public:  
    //--- métodos de construtores
    void  CXmlElement ();
    void ~CXmlElement ();
    void Init (const string aName, const CXmlElement* aParent=NULL, const string aText="");
    void CopyTo (CXmlElement &aDst);
    virtual void Clear ();
    
    //--- principais métodos de serviços
    string GetName () const;
    void SetName (const string aName);
    string GetText () const;
    void SetText (const string aText);
    CXmlElement* GetParent () const;
    void SetParent (CXmlElement* aParent);
    
    //--- atributos dos métodos de serviços
    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 serviços child
    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 é uma classe simples para trabalhar com atributos.

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

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

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/712

Três Pólos de Filtro Super Suavizado Três Pólos de Filtro Super Suavizado

Três pólos de filtro super suavizado do livro de John Ehlers, "Análise Cibernética para Ações e Futuros: Cortando Arestas da Tecnologia DSP para Melhorar Sua Negociação" foi usado neste indicador para cálculo da média móvel.

JFatlSpeed HTF JFatlSpeed HTF

Este indicador mostra a direção da aceleração do preço de JFatlSpeed ​​de um período de tempo maior para um menor.

Candles Smoothed HTF Candles Smoothed HTF

Indicador que exibe a "média" de velas de um período de tempo grande para um menor.

Magnified Market Price Magnified Market Price

O indicador mostra o preço atual no canto do gráfico a escolha do usuário.