Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

EAX_Mysql - MySQL Bibliothek - Bibliothek für den MetaTrader 5

Veröffentlicht:
Michael Schoen
Ansichten:
1204
Rating:
(40)
Veröffentlicht:
2016.06.13 10:58
Aktualisiert:
2016.11.22 07:34
eax_mysql.mqh (29.79 KB) ansehen
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Ich kam zufällig zu MQL5 und war gezwungen eine MySQL Bibliothek zu erstellen. Ich hoffe, dass die Beispiele zur Verwendung der Bibliothek - wie für jede Bibliothek - zeigen. Wie bei jeder Bibliothek sind das wichtigste die Beispiele für ihre Verwendung ;)

Beispiele:

Lesen von Daten

#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);
}


Daten schreiben

#include <EAX\EAX_Mysql.mqh>

// global
EAX_Mysql *db = new EAX_Mysql();

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

void OnTick() {
    MqlTick tick;
    SymbolInfoTick(_Symbol,tick);
    // Neues Dataset für Tabelle Ticks hinzufügen
    db.AddNew("Ticks");
    // mit Werten füllen..
    db.set("symbol", _Symbol);
    // Sie können Zahlen in Datenbank-Zahlenfelder senden, wenn MySQL sie konvertieren kann
    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() {
   // Speicher aufräumen
   delete db;
}


Interaktion mit Daten

EAX_Mysql *db = new EAX_Mysql();

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

// Tabelle AgentsOnline  auswählen (benötigt, um den richtigen Primary Key zu identifizieren)
db.select("AgentsOnline");
// Dataset mit Primary Key 5 lesen
db.read("5");
// eine Spalte modifizieren,
db.set("lastupdate", (string) TimeLocal());
// zurückschreiben
db.write();

Installation:

  • Stellen Sie das MQL5 Datenverzeichnis (MQL5) fest.
  • Laden Sie Connector/C (libmysql) für Ihre MetaTrader Umgebung (32 oder 64bit) hertunter und speichern Sie libymsql.dll nach "MQL5\Libraries".
  • Erstellen Sie einen Ordner EAX unter Include.
  • Kopieren Sie EAX_Mysql.mqh nach "MQL5\Include\EAX".

Probleme:

  • Das es intern einen Shared Connection Pointer der Bibliothek verwendet kann die Bibliothekt nicht mehr als eine Datenbankverbindung gleichzeiti verwalten (ich hatte keinen Bedarf ein Verbindungspooling hinzuzufügen/migrieren).
  • kein echtes Fehlerhandlung (mysql), Ausfall der DB-Verbindung.
  • keine Fehlerbehandlung/Neuverbindung zur DB (=> db pooling).
  • Keine Unterstützung für mehrspaltige Primary Keys.
  • noch Beta - bitte senden Sie mir eine E-Mail, wenn Sie Betatester sein wollen.
  • DataTypes werden nicht verwaltet (intern nur Strings) - das muss mit Code in der Datenbank gelöst werden.
  • Die Database Kommunikation ist ISO - zu faul Pointer/String Arithmetik für UTF-8 anzupassen.

Impressum:

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/855

Preis auf Bollinger Kanal Preis auf Bollinger Kanal

Der Indikator zeichnet (in einem separaten Fenster) die Bollinger Bänder relativ zum gleitenden Durchschnitt und eine Projektion der Preisbalken.

CFastFile - Klasse für das Arbeiten mit uchar Array als virtuelle Datei CFastFile - Klasse für das Arbeiten mit uchar Array als virtuelle Datei

CFastFile macht das sofortige Schreiben von Daten in physische Plattendateien überflüssig. Das bietet eine signifikante Beschleunigung bei der Arbeit mit Daten.

Statistics.mqh Funktionen Statistics.mqh Funktionen

Die Bibliothek enthält verschiedene statistische Funktionen einschließlich zur Berechnung von durchschnittlichem Wert, Varianz, Asymmetrie, Exzess, Kovariation, Korrelation etc.

Objekt Beschreibung Aktivator Objekt Beschreibung Aktivator

Ermöglicht Nicht-Programmierern die "Chart Objekt Beschreibung" for non-programmers. Für jedes beliebige offene Chart-Fenster.