거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Facebook에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
39
평가:
(32)
게시됨:
\MQL5\Include\XML\
xmlbase.mqh (0.58 KB) 조회
xmldocument.mqh (11.88 KB) 조회
xmlelement.mqh (18.96 KB) 조회
\MQL5\Scripts\
xml_test.mq5 (1.39 KB) 조회
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

XML 문서 구문 분석용 라이브러리. 타사 라이브러리를 사용하지 않고 MQL5에서 구현.

라이브러리를 프로젝트에 연결하려면 전처리기 명령을 추가하기만 하면 됩니다.

#include <Xml\XmlBase.mqh>

사용 예시:

#include <Xml\XmlBase.mqh>

CXmlDocument doc;

void OnStart() 
{
  string file = "File.xml";
  string err;
  if (doc.CreateFromFile(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")
        {
           /* .... */
        }
      }
    }
  }
}

참고:

  • 이 라이브러리는 클래스 생성자가 매개 변수를 사용할 수 없던 먼 옛날에 만들어졌습니다;
  • Xml 표준의 기본 기능만 구현되어 있습니다;
  • 의견, 수정, 추가, 확장을 환영합니다.

주요 구성 요소

CXmlDocument 클래스 - 파일/스트링에서 문서를 로드하고 파일에 변경 사항을 저장하는 기능을 제공합니다.

CreateX 함수는 문서를 구문 분석하고 계층적 DOM 모델을 생성하며, 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 클래스는 모든 XML 문서의 기본 인터페이스입니다. 이 클래스는 요소, 해당 속성 및 콘텐츠에 대한 액세스를 제공합니다.

class CXmlElement 
{
  private:
    string         FName;
    CXmlAttribute* FAttributes[];
    CXmlElement   *FElements[];
    string         FText;
    CXmlElement*   FParent;
  public:  
    //--- 생성자 메서드
    void  CXmlElement ();
    void ~CXmlElement ();
    void Init (const string aName, const CXmlElement* aParent=NULL, const string aText="");
    void CopyTo (CXmlElement &aDst);
    virtual void Clear ();
    
    //--- 주요 서비스 방법
    string GetName () const;
    void SetName (const string aName);
    string GetText () const;
    void SetText (const string aText);
    CXmlElement* GetParent () const;
    void SetParent (CXmlElement* aParent);
    
    //--- 속성 서비스 메서드
    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 ();
  
    //--- 하위 서비스 메서드
    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 클래스 - 어트리뷰트 작업을 위한 간단한 클래스입니다.

class CXmlAttribute 
{
  private:
    string FName;
    string FValue;
 public:
    //--- 생성자 메서드
    void CXmlAttribute ();
    void ~CXmlAttribute ();

    void Init (const string aName, const string aValue);
    virtual void Clear ();
    virtual CXmlAttribute* Clone ();
    
    //--- 서비스 메서드
    string GetName () const;
    void SetName (const string aName);
    string GetValue () const;
    void SetValue (const string aValue);    
};

MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/712

가격/거래량 표시기 가격/거래량 표시기

머신 러닝을 위한 더 간단한 칩 중 하나

RSI Alert - Multi Timeframe Overbought/Oversold Detector RSI Alert - Multi Timeframe Overbought/Oversold Detector

모든 심볼과 차트주기에 대해 과매수 및 과매도 상태를 모니터링하는 간단하면서도 효과적인 RSI 지표입니다. RSI가 설정한 임계값을 넘으면 팝업 및 모바일 알림을 통해 즉시 알림을 보냅니다.

RSI_AC_스토캐스틱_신호 RSI_AC_스토캐스틱_신호

추세 방향(RSI) 및 거래 신호(스토캐스틱 + 액셀러레이터)를 보여주는 지표입니다.

ZigZag_INT ZigZag_INT

계산 속도 측면에서 지그재그 표시기의 최적화된 버전입니다.