und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Veröffentlicht:
- Michael Schoen
- Ansichten:
- 1234
- Rating:
- Veröffentlicht:
- 2016.06.13 10:58
- Aktualisiert:
- 2016.11.22 07:34
-
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](https://c.mql5.com/i/code/indicator.png)
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](https://c.mql5.com/i/code/library.png)
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](https://c.mql5.com/i/code/library.png)
Die Bibliothek enthält verschiedene statistische Funktionen einschließlich zur Berechnung von durchschnittlichem Wert, Varianz, Asymmetrie, Exzess, Kovariation, Korrelation etc.
![Objekt Beschreibung Aktivator](https://c.mql5.com/i/code/script.png)
Ermöglicht Nicht-Programmierern die "Chart Objekt Beschreibung" for non-programmers. Für jedes beliebige offene Chart-Fenster.