Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Twitter üzerinde bulun!
Fan sayfamıza katılın
Komut dosyasını ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Komut dosyasını beğendiniz mi? MetaTrader 5 terminalinde deneyin
Kütüphaneler

XML ayrıştırıcı - MetaTrader 5 için kütüphane

Görüntülemeler:
52
Derecelendirme:
(32)
Yayınlandı:
\MQL5\Include\XML\ \MQL5\Scripts\
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

XML belgelerini ayrıştırmak için kütüphane. Üçüncü taraf kütüphaneleri kullanmadan MQL5'te uygulama.

Kütüphaneyi projelerinize bağlamak için bir önişlemci komutu eklemeniz yeterlidir

#include <Xml\XmlBase.mqh>

Kullanım örneği:

#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")
        {
           /* .... */
        }
      }
    }
  }
}

Notlar:

  • Bu kütüphane, sınıf kurucularının parametre kabul edemediği o uzak zamanlarda oluşturulmuştur;
  • Sadece Xml standardının temel işlevselliği uygulanmıştır;
  • Yorumlar, düzeltmeler, eklemeler, genişletmeler memnuniyetle karşılanır.

Ana bileşenler:

CXmlDocument sınıfı - belgelerin bir dosyadan/dizeden yüklenmesini ve değişikliklerin dosyaya kaydedilmesini sağlar.

CreateX fonksiyonları belgeleri ayrıştırır ve FDocumentElement aracılığıyla erişilen hiyerarşik bir DOM modeli oluşturur

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 sınıfı, herhangi bir Xml belgesinin ana arayüzüdür. Elemanlara, niteliklerine ve içeriklerine erişim sağlar

class CXmlElement 
{
  private:
    string         FName;
    CXmlAttribute* FAttributes[];
    CXmlElement   *FElements[];
    string         FText;
    CXmlElement*   FParent;
  public:  
    //--- kurucu yöntemler
    void  CXmlElement ();
    void ~CXmlElement ();
    void Init (const string aName, const CXmlElement* aParent=NULL, const string aText="");
    void CopyTo (CXmlElement &aDst);
    virtual void Clear ();
    
    //--- ana hizmet yöntemleri
    string GetName () const;
    void SetName (const string aName);
    string GetText () const;
    void SetText (const string aText);
    CXmlElement* GetParent () const;
    void SetParent (CXmlElement* aParent);
    
    //--- öznitelik hizmeti yöntemleri
    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 ();
  
    //--- çocuk servis yöntemleri
    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 sınıfı - özniteliklerle çalışmak için basit bir sınıf

class CXmlAttribute 
{
  private:
    string FName;
    string FValue;
 public:
    //--- kurucu yöntemler
    void CXmlAttribute ();
    void ~CXmlAttribute ();

    void Init (const string aName, const string aValue);
    virtual void Clear ();
    virtual CXmlAttribute* Clone ();
    
    //--- hizmet yöntemleri
    string GetName () const;
    void SetName (const string aName);
    string GetValue () const;
    void SetValue (const string aValue);    
};

MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/712

Fiyat / Hacim göstergesi Fiyat / Hacim göstergesi

Makine öğrenimi için daha basit çiplerden biri

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

Herhangi bir sembol ve zaman diliminde aşırı alım ve aşırı satım koşullarını izleyen basit ama etkili bir RSI göstergesi. RSI tanımladığınız eşikleri geçtiğinde açılır pencere ve mobil bildirimler yoluyla anında uyarılar gönderir.

RSI_AC_Stochastic_Signal RSI_AC_Stochastic_Signal

Trend yönünü (RSI) ve alım satım sinyallerini (Stokastik + Hızlandırıcı) gösteren gösterge.

ZigZag_INT ZigZag_INT

ZigZag göstergesinin hesaplama hızı açısından optimize edilmiş versiyonu.