Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Facebook ü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

EAX_Mysql - MySQL library - MetaTrader 5 için kütüphane

Yayınlayan:
Michael Schoen
Görüntülemeler:
24
Derecelendirme:
(42)
Yayınlandı:
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

Tesadüfen MQL5 ile karşılaştım ve bir MySQL kütüphanesini bir araya getirmek zorunda kaldım. Her kütüphane için olduğu gibi umarım örnekler kütüphanenin nasıl kullanılabileceğini gösterir. Her kütüphanede olduğu gibi aslında en önemli şeyler nasıl kullanılacağına dair örneklerdir ;)

Örnekler:

Veri Okuma

#include <EAX\EAX_Mysql.mqh>

EAX_Mysql *db = new EAX_Mysql();

db.connect("myhost.mydomain.com", "myusername", "mypassword", "mydatabase", "mytable");

int iResults = db.read_rows("SELECT password, COUNT(*) as Hits FROM users GROUP BY password");
for (int i=0; i < iResults; i++) {
   string password = (string) db.get("password",i);
   int    hits     = (int) db.get("Hits", i);
}


Besleme Verileri

#include <EAX\EAX_Mysql.mqh>

// küresel
EAX_Mysql *db = new EAX_Mysql();

void OnInit() {
    db.connect("myhost.mydomain.com", "myusername", "mypassword", "metatrader", "Ticks";
}

void OnTick() {
    MqlTick tick;
    SymbolInfoTick(_Symbol,tick);
    // Ticks tablosu için yeni bir veri kümesi ekleyin
    db.AddNew("Ticks");
    // değerlerle doldurun..
    db.set("symbol", _Symbol);
    // MySQL dönüştürme yapabiliyorsa rakamları rakam DB alanlarına gönderebilirsiniz
    db.set("ask", tick.ask);
    db.set("bid", tick.bid);
    db.set("last", tick.last);
    db.set("time", TimeToString(tick.time,TIME_DATE) + " " + TimeToString(tick.time,TIME_SECONDS));
    db.set("volume", tick.volume);
    db.write();

}

void OnDeinit() {
   // belleği temizle
   delete db;
}


Verilerle Etkileşim

EAX_Mysql *db = new EAX_Mysql();

db.connect("myhost.mydomain.com", "myusername", "mypassword", "metatrader", "mytable")

// Select Table AgentsOnline (doğru Birincil Anahtarı tanımlamak için gereklidir)
db.select("AgentsOnline");
// Veri Kümesini Birincil Anahtar ile Oku 5
db.read("5");
// herhangi bir sütunu değiştirin,
db.set("lastupdate", (string) TimeLocal());
// geri yaz
db.write();

Yükleme:

  • MQL5 Veri Dizininizi (MQL5) tanımlayın.
  • MetaTrader ortamınız (32 veya 64bit) için Connector/C'yi (libmysql ) indirin ve libymsql.dll dosyasını "MQL5\Libraries" içine yerleştirin.
  • Include altında bir EAX klasörü oluşturun.
  • EAX_Mysql.mqh dosyasını "MQL5\Include\EAX" içine koyun.

Sorunlar:

  • Dahili olarak paylaşılan bir bağlantı işaretçisi kullandığından, kütüphane aynı anda birden fazla DB bağlantısını işleyemez (bir bağlantı havuzu eklemeye / taşımaya ihtiyacım yoktu).
  • Gerçek hata (mysql) işleme yok, db bağlantısı düşüyor.
  • DB'ye hata işleme / yeniden bağlanma yok (=> db havuzlama).
  • çoklu sütun birincil anahtarları için destek yok.
  • hala beta - beta / test etmek istiyorsanız lütfen bana bir e-posta bırakın.
  • DataTypes işlenmez (dahili olarak sadece stringler) kod/veritabanı üzerinde olmalıdır.
  • Veritabanı iletişimi ISO'dur - UTF-8 için işaretçi / dize aritmetiğini ayarlamak için çok tembel.

Krediler:

  • http://mqlmagazine.com/mql-programming/mql5-connecting-to-mysql/
  • https://www.mql5.com/tr/articles/364

MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/855

ExtObjects ExtObjects

Nesne özelliklerini okumak ve yazmak için özel fonksiyonlar.

Candle ZigZag Candle ZigZag

Mum ZigZag, bir mum çubuğunun rengi değiştiğinde bacağını değiştiren bir göstergedir

Geo_ShowOpenDayLevel Geo_ShowOpenDayLevel

Herhangi bir TF'de günün açılış seviyesini gösteren gösterge

iMy iMy

Grafiksel gösterimde, techanalysis, arıza üzerindeki mumların sağındaki trend çizgisini temsil eder (yeşil renkte). Arızadan sonra, kırmızı çizgi boyunca hareket varsayılır.