MetaTrader 4 - Beispiele Integration von MetaTrader 4 Client Terminal mit MS SQL Server Einführung Die Verwendung von Integrationen mit anderen Produkten bietet zusätzliche Herausforderungen im Handel. Es kann viele Verwendungen davon geben, so werde ich einige von ihnen unten geben. Sie können Zecken sammeln und an MS SQL SERVER zur weiteren Analyse weitergeben. Mit einem großen Tick History, können Sie jeden Zeitraum ab dem Minimum Zeitscheibe und bis zu allen Nicht-Standard-Perioden zu sammeln. Mit echten Tick-Anführungszeichen können Sie Tick-Daten abhängige Strategien als Scalpers bekannt zu debuggen. Sie können einen Speicher für die schnelle Analyse von Daten aus anderen Anwendungen, zum Beispiel von MS Excel oder anderen Drittanbietersoftware oder von Ihren eigenen Produkten verwenden. Sie können beispielsweise den gesamten Verlauf aus dem History Center des Terminals in MS SQL entladen. Dann müssen Sie nicht die Geschichte in MT4 zu speichern. Dies wird helfen, den Terminalspeicher zu entlasten. Sie können neuronale Netze berechnen, indem Sie in MS SQL SERVER gespeicherte Anführungszeichen verwenden: STATISTICA - 7.8 zum Herunterladen von Anführungszeichen aus SQL kann im Echtzeitmodus durch Übertragen der Netzwerksignale in MT4 gelöst werden. Sie können Ihr eigenes Programm in einer anderen Sprache und für ein anderes Symbol entwickeln und Signale über MS SQL SERVER weitergeben, nachdem Sie nur Funktionen für das Client-Terminal ausgeführt und es von ernsthaften Berechnungen entlastet haben. Die folgenden Softwareprodukte wurden für dieses Projekt verwendet MS SQL SERVER 2000 Developer - BASE VISUAL C 6.0 SP5 - zum Erstellen von DLL YZMSSQLExpertSample. dll MDAC 7 Die minimale Menge installiert werden: 1 MS SQL SERVER 2000 Developer 2 MDAC 7 Ich debugging das Programm mit MDAC 7. Es ist jedoch möglich, dass bei einigen älteren Versionen alles einwandfrei funktioniert. Wenn Sie arent gehen, um die DLL zu kompilieren, müssen Sie nicht installieren oder Visual C 6.0 installiert haben. Sie können eine fertige DLL verwenden. Allerdings habe ich fest verdrahtet den Benutzernamen in ihm, den Namen der DSN, und Verbindungen. So müssen Sie alle oben genannten in Ihrer Version des Programms zu wiederholen. Ich werde hier nicht beschreiben, wie man MS SQL SERVER oder Visual C 6.0 installieren, sind diese Dinge außerhalb des Geltungsbereichs dieses bestimmten Artikels. Nachdem die notwendigen Softwareprodukte installiert wurden, sollten wir ein DSN erstellen: Beispiel für Tick Receiving in MS SQL Alle Experimente wurden mit MS SQL SERVER 2000 Developer durchgeführt. In Visual C 6.0 wurde YZMSSQLExpertSample. DLL mit der Methode des Zugriffs auf MS SQL über ADO erstellt. MDAC 7 oder MDAC 8 muss installiert sein. Ich beschreibe nur die Beispiele, wie man Prozeduren und Tabellen erstellt. Die minimale Menge von dem, was wir in MS SQL erstellen müssen, sind die Basis, Tabellen und Prozeduren. Lets betrachten die Tabelle und Prozeduren der Arbeit mit Tick-Anführungszeichen. Sie können einige andere Funktionen hinzufügen, wenn Sie möchten. Es ist notwendig, eine Basis und Tabellen in MS SQL zu erstellen. Ich habe eine neue Basis namens MT4TRADE erstellt. Dann sollten wir Tabellen in ihm erstellen: MT4TICK - Tabelle der Ticks Unten ist, wie die Tick empfangende und tabellierende Prozedur erscheint: Wir können aus der obigen Beschreibung sehen, welche Verfahren und für welche Zwecke verwendet werden. RetCode - es erträgt keine Funktionalität, wenn es von DLL übergeben wird, es dient nur zum Empfangen des Terminierungscodes. Das MS SQL SERVER-Setup ist abgeschlossen. Ein Skript zum Erstellen einer Standardkonfiguration ist diesem Artikel beigefügt. Lets Fantasize: Mögliche Lösungen und Plusen Wir können eine Datenspeicherung und punktgenaue Informationen daraus erstellen. Auf diese Weise können wir das MT 4 Client Terminal von der Notwendigkeit befreien, Anführungsgeschichte zu speichern. Nun ist die Anführungsstriche Geschichte auf MS SQL Server gespeichert und wir können mit diesen Informationen arbeiten, extrahieren sie früher und exportieren sie in andere Anwendungen. Wir können die zu analysierenden Daten in NEURAL-Paketen verwenden, von denen die meisten mit SQL-Speichern arbeiten können. In der Realzeit kann das Endgerät weiterhin Signale von den Indikatoren bilden, die sie zu dem Speicher führen und sie auf diese Weise fixieren. Eine externe Anwendung kann das Signal und die Geschichte in Echtzeit extrahieren, sie analysieren und Signale bilden, die die Ausführung und die Speicherung des Protokolls auf MS SQL Server reparieren und an das Terminal senden, um es auszuführen. So erhalten wir Integration und funktionale Verteilung der Anwendungen in einem automatisierten Handelskomplex beteiligt. Nun, wenn es keine Notwendigkeit mehr, historische Zitate zu speichern, können wir es auf die folgende Weise. Legen Sie die minimalen Balken in ToolsgtOptionsgtCharts, zum Beispiel für 5000. Das Terminal beginnt schneller zu arbeiten, da es nicht müssen Speicher für große Geschichte zuzuordnen. Quelltexte Beispiel für den Aufruf von MQL4 - Script-Ladehistorie auf MS SQL Server: Achtung: Leider wird die gesamte Historie mit dem Skript ziemlich langsam geladen, aber die Bar-Nummer klar und mit hoher Qualität fixiert. Die beste Lösung wäre das Entladen Zitate in eine Textdatei und laden sie in MS SQL über IMPRT EXPORT DTS. Loading M1 Geschichte von 1999-2008 für jedes Symbol wird ein paar Minuten dauern. Der Barindex wird beim Entladen in eine Textdatei nicht entladen. Wenn Sie entscheiden, dass der Balkenindex nur die Zeilennummer ist, haben Sie das Problem der verpassten Balken, und wenn Sie ändern oder neu laden, können die Anzahl der unbelasteten Balken in MS SQL und in MT 4 unterschiedlich sein. Ich habe dieses Problem gelöst Dennoch, aber ich nehme an, es kann durch Wiederaufladen der Geschichte nach einer qualitativ hochwertigen Geschichte Aktualisierung in MT 4 selbst gelöst werden. Beschreibung der Dateien Attached CreateSQLallDate. txt (9.0 Kb) - Skript im SQL-Format als Beispiel für das Erstellen von Basen, Tabellen, Prozeduren auf MS SQL Server. SQLGETHISTORY. mq4 (1.4 Kb) - Script zum Laden des Verlaufs in MS SQL YZMSSQLExpertSample. rar (89.9 Kb) YZMSSQLSample. mq4 (13.1 Kb) - Als EA in das Symbol-Diagramm eingebunden, dessen Zecken gesammelt werden sollen Schließen Sie es an jeden Zeitrahmen an. Fazit Die Integration mit anderen Softwareprodukten erweitert die Funktionalität von MetaTrader 4 und ermöglicht es, Aufgaben und Funktionen eines automatisierten Handelssystems effizienter zu verteilen. Ich muss auf SQLServer 2008 R2 Wechselkursdaten speichern. Die Anwendung, die von diesen Daten Gebrauch macht, wird in C entwickelt. Die Spalte, die den Devisenkurs hält, wird benötigt, um Konvertierungen auf beide Weisen zu speichern, dh Id haben eine feste Präzision, aber eine variable Skala. Was Datentyp sollte ich wählen, auf SQL Server, die auf C zugeordnet werden kann, die Vermeidung von Datenverlust Im Blick auf MSDN geliefert Mappings Matrix und Im cant scheinen, alles, was ich kann sicher zu behandeln. Float (53) könnte eine Möglichkeit sein, aber Floats sind Näherungswerte. Geld ist nur genau auf die zehn Tausendstel der Einheit Im links mit Dezimal. Diese bieten jedoch feste Skalen. Und das ist, wo Im stumped: Wenn Im benötigt, um eine Zahl wie 0.0104182, sondern auch 123.673 zu speichern. Ive eine Präzision von 10 als meine Anforderung. Aber wie sollte ich eine Skala festlegen, die diese Präzision vollumfänglich unterbringen kann, ist dies nicht neu, aber wie kann ich eine Skala festlegen, die diese Präzision vollumfänglich unterbringen kann, um diese Präzision in vollem Umfang zu bewältigen Jun 29 11 at 22: 14MetaTrader 5 - Integration Der Zugriff auf die MySQL Datenbank von MQL5 (MQL4) Einführung Das Problem der Interaktion von MQL mit Datenbanken ist nicht neu Noch relevant. Die Verwendung von Datenbanken kann die Möglichkeiten von MetaTrader erheblich steigern: die Speicherung und Analyse der Preisentwicklung, das Kopieren von Trades von einer Handelsplattform zur anderen, die Bereitstellung von Quoteströcken in Echtzeit, umfangreiche analytische Berechnungen auf der Serverseite und einen Zeitplan, Überwachung und Fernsteuerung Von Konten mit Web-Technologien. Jedenfalls gab es viele Versuche, von der Kombination von MQL und MySQL zu profitieren, einige Lösungen sind in der CodeBase verfügbar. Zum Beispiel ist die MySQL-Wrapper-Bibliothek für MetaTrader 4 das Projekt, aus dem viele Programmierer ihre eigenen Entwicklungen mit weiteren Ergänzungen starten. Einer der Nachteile dieser Lösung ist meiner Meinung nach die Zuordnung von speziellen Arrays zum Lesen von Daten aus der Datenbank. Ein weiteres Projekt MySQL logger 1 - EA für MetaTrader 4 ist hoch spezialisiert, es verwendet keinen Wrapper für den Zugriff auf die Standardbibliothek libmysql. dll. Daher funktioniert es nicht in MetaTrader4 Build 600, da die Zeichencharaktertypen durch wchart ersetzt wurden. Und die Verwendung des int-Typs anstelle des TMYSQL-Strukturzeigers verursacht Speicherlecks im Projekt (der zugeordnete Speicher kann nicht frei gesteuert werden). Ein weiteres interessantes Projekt ist EAXMysql - MySQL-Bibliothek - Bibliothek für MetaTrader 5. Seine ziemlich gute Umsetzung. Die Liste der Nachteile, die der Autor angegeben hat, bedingt einige Einschränkungen für seine Verwendung. Jeder, der in seinen MQL-Projekten Datenbanken einsetzen muss, hat zwei Möglichkeiten: Entweder um eine eigene Lösung zu entwickeln und jeden einzelnen Teil davon zu kennen oder eine Drittanbieterlösung einzusetzen, zu lernen, wie man sie einsetzt und all ihre Fehler erkennen kann Ihr Projekt. Ich sah eine solche Notwendigkeit und die beiden Optionen bei der Entwicklung eines ziemlich komplexen Handelsroboter. Nach der Suche durch bestehende Projekte und studierte eine sehr große Anzahl von Lösungen, erkannte ich, dass nicht der gefundenen Implementierungen könnte dazu beitragen, meine Trading Roboter auf die professionelle Ebene. Darüber hinaus gab es auch absurde Lösungen, zum Beispiel: DMLDDL-Operationen (insertupdatedelete data, createrop-Objekte in der Datenbank) wurden mit dem Standard libmysql. dll durchgeführt und die Datenselektion (SELECT) tatsächlich als HTTP-Request implementiert (using inet. dll) Zu einem PHP-Skript, das sich auf dem Webserver auf der MySQL-Serverseite befindet. Die SQL-Abfragen wurden in das PHP-Skript geschrieben. Mit anderen Worten, um das Projekt laufen zu lassen, mussten die folgenden Komponenten verfügbar, konfiguriert und ausgeführt werden: MySQL Server, ApacheIIS Webserver, PHPASP Skripte auf der Serverseite. Eine Kombination vieler Technologien. Natürlich, in einigen Fällen kann dies akzeptabel sein, aber wenn die einzige Aufgabe ist es, Daten aus der Datenbank auswählen - das ist Quatsch. Darüber hinaus ist die Unterstützung einer derartigen umständlichen Lösung zeitaufwändig. Die meisten Lösungen hatten keine Probleme, Daten einzufügen, Objekte zu erzeugen und dergleichen. Das Problem war die Datenauswahl, da die Daten an die rufende Umgebung zurückgegeben werden sollten. Ich dachte, mit Arrays für diesen Zweck war unpraktisch und unpraktisch, nur weil im Laufe der Entwicklungdebuggingsupport des Hauptprojekts, können Abfragen auf die Datenbank geändert werden, während Sie auch die korrekte Speicherzuordnung für die Arrays steuern sollten. Nun, das kann und muss vermieden werden. Das nachstehend diskutierte MQL-lt-gt-MySql-Interfaced basiert auf einem typischen Ansatz, der in Oracle PLSQL, MS SQL T-SQL, AdoDB - Verwendung von Cursoren verwendet wird. Diese Schnittstelle wurde entwickelt, die auf die einfache Programmierung und Wartung sowie auf ein Minimum an Komponenten abzielt. Es ist als DLL-Wrapper für die Standardbibliothek libmysql. dll und eine Reihe von Schnittstellenfunktionen als. mqh-Datei implementiert. 1. MQL lt-gt MySQL-Schnittstelle Die Interaktion zwischen dem MetaTrader-Terminal (über MQL-Programme) kann mit Hilfe der folgenden Komponenten realisiert werden: 1. Die Schnittstellenbibliothek MQLMySQL. mqh. Es wird dem Projekt über das Include-Verzeichnis hinzugefügt und kann nach Ihrem Geschmack geändert werden. Es enthält die Direktiven für den Import von Funktionen der dynamischen Bibliothek MQLMySQL. dll sowie Funktionen zum Aufrufen und Behandeln von Fehlern. 2. Die dynamische Bibliothek MQLMySQL. dll. Es ist ein Wrapper, um auf die Funktionalität der Standardbibliothek libmysql. dll zuzugreifen. Außerdem verarbeitet die MQLMySQL. dll-Bibliothek die Ergebnisse von Operationen und den gemeinsamen Zugriff auf die Datenbankverbindungen und Cursor. Es bedeutet, dass Sie mehrere Verbindungen zu einem Zeitpunkt (von einem oder mehreren MQL-Programmen) erstellen und verwenden können, halten Sie ein paar Cursor offen, mit Abfragen auf eine oder mehrere Datenbanken. Mutexes werden verwendet, um den Zugriff auf freigegebene Ressourcen zu trennen. 3. Die dynamische Standardbibliothek libmysql. dll ist ein nativer Zugriffstreiber. Sie können sie aus jeder MySQL-Datenbankverteilung in C: WindowsSytem32 oder ltTerminalgtMQL5Libraries (für MetaTrader 4 in ltTerminalgtMQL4Libraries) kopieren. In der Tat ist es verantwortlich für das Senden von Abfragen an die Datenbank und das Abrufen der Ergebnisse. Lässt auf den Hauptpunkten verweilen, wie zum Beispiel: Öffnen der Verbindung, Durchführen von DMLDDL-Abfragen und Datenselektion. 1.1. Öffnen und Schließen der Verbindung Die MySqlConnect-Funktion wurde zum Öffnen der Verbindung mit der MySQL-Datenbank implementiert: Diese Funktion implementiert die Verbindung zur Datenbank und gibt eine Verbindungskennung zurück. Diese ID wird benötigt, um die Datenbank abzufragen. Im Falle eines Verbindungsfehlers ist der Rückgabewert -1. Überprüfen Sie für die Fehlerdetails die Variablen MySQLErrorNumber und MySqlErrorDescription. Diese Funktion wird typischerweise aufgerufen, wenn das OnInit () - Ereignis im MQL-Programm behandelt wird. Der DNS-Name oder die IP-Adresse des MySQL-Servers Datenbankbenutzer (z. B. root) Das Kennwort des Datenbankbenutzers Der Name der Datenbank Der TCPIP-Port der Datenbank (in der Regel 3306) Der Unix-Socket (für Unix-basierte Systeme) Kombination von Sonderflags (in der Regel 0) Die MySqlDisconnect-Schnittstellenfunktion wurde zum Schließen der Verbindung implementiert: Diese Funktion schließt die Verbindung zur MySQL-Datenbank. Diese Funktion wird typischerweise aufgerufen, wenn das OnDeinit () - Ereignis im MQL-Programm behandelt wird. Es sollte beachtet werden, dass die MySQL-Datenbank die Verbindung im Falle eines Hardware-Ausfalls, einer Netzwerküberlastung oder eines Timeouts (wenn keine Abfragen für eine lange Zeit an die Datenbank gesendet werden) alleine schließen kann. Häufig verwenden Entwickler das OnTick () - Ereignis zum Schreiben von Daten in die Datenbank. Allerdings, wenn das Wochenende kommt und der Markt geschlossen ist, hängt die Verbindung immer noch. In diesem Fall wird MySQL durch Timeout geschlossen (die Voreinstellung ist 8 Stunden). Und am Montag, wenn der Markt geöffnet ist, werden Fehler im Projekt gefunden. Daher wird dringend empfohlen, nach einer Zeitspanne, die kleiner als die in den Einstellungen des MySQL-Servers angegebene Zeitspanne ist, die Verbindung zu überprüfen und die Verbindung zur Datenbank wieder herzustellen. 1.2. Ausführung von DMLDDL-Abfragen DML-Operationen werden für Datenmanipulationen (D ata M anipulation L anguage) verwendet. Datenmanipulationen umfassen die folgenden Anweisungen: INSERT, UPDATE und DELETE. DDL-Operationen werden für die Datendefinition (D ata D efinition L anguage) verwendet. Dazu gehören die Erstellung (CREATE) von Datenbankobjekten (Tabellen, Sichten, gespeicherte Prozeduren, Trigger usw.) und deren Änderung (ALTER) und Löschung (DROP). Seine nicht alle DMLDDL-Anweisungen, darüber hinaus DCL (D ata C ontrol L anguage) wird verwendet, um Datenzugriff zu trennen, aber wir werden nicht vertiefen in die Funktionen von SQL. Jeder dieser Befehle kann über die MySqlExecute-Schnittstellenfunktion ausgeführt werden: Als SQL-Abfrage können Sie auch den USE-Befehl verwenden, um die Datenbank auszuwählen. Ich möchte erwähnen, die Verwendung von Multi-Anweisung Abfragen. Es ist ein Satz von SQL-Befehlen, die durch das Zeichen getrennt sind. Um den Multi-Statement-Modus zu aktivieren, sollte die Verbindung zur Datenbank mit dem CLIENTMULTISTATEMENTS-Flag geöffnet werden: In diesem Fragment werden in der EURUSD-Tabelle 3 Einträge mit einem einzigen Aufruf zur Datenbank eingefügt. Jede der in der SQL-Variablen gespeicherten Abfragen wird getrennt. Dieser Ansatz kann für häufiges Einfügen verwendet werden, wobei ein Satz notwendiger Befehle zu einem Paket zusammengefasst wird, wodurch der Netzwerkverkehr entlastet und die Datenbankleistung verbessert wird. Die INSERT-Syntax in MySQL ist in der Ausnahmebehandlung sehr gut entwickelt. Wenn beispielsweise die Aufgabe, den Preisverlauf zu verschieben, eine Tabelle für die Währungspaare mit dem Primärschlüssel des Datetime-Typs erstellt werden soll, da das Datum und die Zeit eines Balkens eindeutig sind. Außerdem sollte geprüft werden, ob die Daten in einer bestimmten Bar in der Datenbank vorhanden sind (um die Stabilität der Datenmigration zu verbessern). Bei MySQL ist diese Überprüfung nicht erforderlich, da die INSERT-Anweisung ON DUPLICATE KEY unterstützt. In einfacheren Worten, wenn ein Versuch gemacht wird, Daten einzufügen, und die Tabelle bereits einen Eintrag mit dem gleichen Datum und Uhrzeit hat, kann die INSERT-Anweisung ignoriert oder ersetzt werden durch UPDATE für diese Zeile (siehe dev. mysqldocrefman5.0eninsert - On-duplicate. html). 1.3. Datenauswahl Die SQL SELECT-Anweisung dient zum Abrufen von Daten aus der Datenbank. Die folgende Sequenz von Aktionen wird zum Auswählen von Daten und zum Abrufen des Selektionsergebnisses verwendet: Vorbereiten der SELECT-Anweisung. Öffnen des Cursors. Ermitteln der Anzahl der von der Abfrage zurückgegebenen Zeilen. Schleifen und Abrufen jeder Zeile der Abfrage. Daten zu den MQL-Variablen innerhalb der Schleife abrufen. Schließen des Cursors. Natürlich ist dies ein allgemeines Schema, so dass nicht alle Operationen für jeden Fall erforderlich sind. Wenn Sie beispielsweise sicherstellen möchten, dass eine Zeile in der Tabelle (nach beliebigen Kriterien) vorhanden ist, reicht es aus, eine Abfrage vorzubereiten, einen Cursor zu öffnen, die Anzahl der Zeilen zu erhalten und den Cursor zu schließen. In der Tat sind die obligatorischen Teile - Vorbereitung der SELECT-Anweisung, Öffnen und Schließen des Cursors. Was ist ein Cursor Dies ist ein Verweis auf den Kontext-Speicherbereich, in der Tat - die resultierende Menge von Werten. Wenn Sie die SELECT-Abfrage senden, weist die Datenbank Speicher für das Ergebnis zu und erstellt einen Zeiger auf eine Zeile, die Sie von einer Zeile in eine andere verschieben können. Somit ist es möglich, auf alle in der Abfrage definierten Zeilen in der Reihenfolge einer Warteschlange zuzugreifen (ORDER BY-Klausel der SELECT-Anweisung). Für die Datenselektion werden folgende Schnittstellenfunktionen verwendet: Cursor öffnen: Der von MySqlCursorOpen zurückgegebene Cursorbezeichner Das Schließen eines Cursors ist eine kritische Operation. Vergessen Sie nicht, Cursor zu schließen. Stellen Sie sich vor, Sie öffnen den Cursor und vergessen Sie ihn zu schließen. Angenommen, beim Abarbeiten des OnTick () - Ereignisses werden die Daten mit jedem Häkchen an den Cursor abgerufen, und bei jedem Öffnen eines neuen Cursors wird Speicher (sowohl auf der Client - als auch auf der Serverseite) zugewiesen. Irgendwann wird der Server den Dienst verweigern, da die Grenze der offenen Cursor erreicht ist, und dies könnte zu einem Pufferüberlauf führen. Natürlich, seine übertrieben, so ein Ergebnis ist möglich, wenn mit libmysql. dll direkt. Die dynamische Bibliothek MQLMySQL. DLL verteilt jedoch Speicher für Cursor und wird sich weigern, einen Cursor zu öffnen, der über das zulässige Limit hinausgeht. Bei der Umsetzung realer Aufgaben reicht es aus, 2-3 Cursor offen zu halten. Jeder Cursor kann eine kartesische Messung von Daten unter Verwendung von zwei-drei Cursorn gleichzeitig behandeln (verschachtelt, z. B. wenn ein parametrisch von einem anderen Cursor abhängt) zwei oder drei Dimensionen abdeckt. Das ist für die meisten Aufgaben perfekt. Darüber hinaus können Sie diese Objekte für die Implementierung einer komplexen Datenauswahl immer verwenden, um die Datenbank (VIEW) darzustellen, sie auf der Serverseite zu erstellen und ihnen Abfragen aus dem MQL-Code als Tabellen zu senden. 1.4. Zusätzliche Informationen Als zusätzliche Merkmale können folgende erwähnt werden: 1.4.1. Lesen von Daten aus einer. INI-Datei Oft werden Informationen über Verbindungen zur Datenbank (IP-Adresse des Servers, Port, Benutzername, Passwort usw.) direkt im Code MQL (oder Parameter des Expert Advisors, Indikator des Skripts) nicht gespeichert Rational, weil der Server verschoben werden kann, kann seine Adresse dynamisch ändern, etc. Sie müssen den MQL-Code in diesem Fall zu ändern. Somit sollten alle diese Daten besser in der Standard-INI-Datei gespeichert werden, während nur ihr Name in das MQL-Programm geschrieben werden sollte. Verwenden Sie dann die ReadINI-Funktion, um Verbindungsparameter zu lesen und zu verwenden. Beispielsweise enthält die INI-Datei folgende Informationen: Um die IP-Adresse des Servers abzurufen, führen Sie die folgenden Schritte aus: Die INI-Datei befindet sich unter C: MetaTrader5MQL5Experts und heißt MyConnection. ini, Sie greifen auf den Server-Schlüssel des MYSQL-Bereichs zu. In einer INI-Datei können Sie Einstellungen auf verschiedene Server speichern, die in Ihrem Projekt verwendet werden. 1.4.2. Verfolgen der Problembereiche In der Schnittstellenbibliothek ist der Trace-Modus verfügbar, der für das Debugging von SQL-Abfragen überall in einem MQL-Programm aktiviert werden kann. Geben Sie im Problembereich Folgendes an: Wenn Sie die Ablaufverfolgung am Anfang des MQL-Programms aktivieren und nicht deaktivieren, werden alle Aufrufe der Datenbank protokolliert. Das Protokoll wird in der Terminalkonsole (mit dem Befehl Drucken) gehalten. 2. Beispiele Dieser Abschnitt enthält einige Beispiele für den Anschluss und die Nutzung der entwickelten Bibliotheken. Sehen Sie sie und schätzen Sie die Usability der Software-Lösung. Das Beispiel MySQL-003.mq5 zeigt Folgendes: die Verbindung zu einer Datenbank (die Verbindungsparameter werden in der. ini-Datei gespeichert), das Erstellen einer Tabelle, das Einfügen von Daten (auch über Multi-Anweisungen) und das Trennen von der Datenbank. Beispiel MySQL-004.mq5 zeigt die Auswahl der Daten aus einer Tabelle, die mit dem Skript MySQL-003.mq5 erstellt wurde. Die obigen Beispiele enthalten die typische Fehlerbehandlung bei realen Projekten. Tatsächlich sollte jede Abfrage, die in einem MQL-Programm verwendet wird, in jedem MySQL-Client (PHPMyAdmin, DB Ninja, MySQL-Konsole) debugge werden. Ich persönlich benutze und empfehle professionelle Software für die Datenbankentwicklung Quest TOAD für MySQL. Zusammenfassung Dieser Artikel beschreibt nicht die Details der Implementierung von MQLMySQL. DLL in der Microsoft Visual Studio 2010 (CC) - Umgebung entwickelt. Diese Softwarelösung ist für den praktischen Einsatz konzipiert und verfügt über mehr als 100 erfolgreiche Implementierungen in verschiedenen Bereichen der MQL Softwareentwicklung (von der Erstellung komplexer Handelssysteme bis hin zum Webpublishing). Die Versionen der Bibliotheken für MQL4 und MQL5 sind unten aufgeführt. Die Anhänge enthalten auch eine Zip-Datei mit dem Quellcode von MQLMySQL. DLL Dokumentation ist in den Archiven enthalten Um die Beispiele zu verwenden, vergessen Sie nicht, die Parameter der Verbindung zu Ihrer Datenbank in der Datei ScriptsMyConnection. ini anzugeben.
No comments:
Post a Comment