Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 1440
- Avaliação:
- Publicado:
- 2014.01.14 13:49
- Atualizado:
- 2016.11.22 07:33
-
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 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.

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

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

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