Geschrieben 27. Oktober 200916 Jr. comment_88473 HalloIch bin Anfänger mit Metatrader und MQL,meine Frage ist wofür benötigt MQL den Inhalt von einer externen DLL Datei ?. Ich habe bis jetzt nur hier mitgelesen,aber das wird sich ändern.karlos10 Leben und Leben Lassen Bearbeitet 27. Oktober 200916 Jr. von karlos10 Melden
Geschrieben 27. Oktober 200916 Jr. comment_88477 Meinst du allgemein das einbinden einer DLL?Wenn du eine gewisse Funktion/Funktionalität in MQL nutzen willst, die MQL aber so eigentlich nicht zur Verfügung stellt (zB das lesen und schreiben von Dateien in beliebigen Ordnern) dann kannst du dir eine DLL schreiben die diese Funktion erfüllt, und über die Einbindung der DLL in MQL diese dann nutzen. Beim einbinden selber braucht MQL aber nur den Namen der dll, und die deklaration welche Funktionen du daraus verwenden willst... Melden
Geschrieben 27. Oktober 200916 Jr. comment_88479 Ich habe bis jetzt nur hier mitgelesen,aber das wird sich ändern.karlos10 Ein Jahr hat das jetzt gedauert bis zum ersten Posting ^^ War noch schnell Blumen holen , für die Welcome Party und so!Was hat Dich denn abgehalten, zu posten? Keine Lust auf Interaktion oder waren die Themen nicht spannend genug? Ich freue mich und hoffe die Drohung aus obigem Statement erfüllst Du mit Leben. Herzlichen Willkommen Melden
Geschrieben 28. Oktober 200916 Jr. Autor comment_88532 Ein Jahr hat das jetzt gedauert bis zum ersten Posting ^^ War noch schnell Blumen holen , für die Welcome Party und so!Was hat Dich denn abgehalten, zu posten? Keine Lust auf Interaktion oder waren die Themen nicht spannend genug? Ich freue mich und hoffe die Drohung aus obigem Statement erfüllst Du mit Leben. Herzlichen WillkommenHalloDanke für die Blumen.wenn dich das wirklich Interessiert ich hatte eine Doppelseitige Lungenentzündung mit anschließender Lungen OP,und 20 Kg abgenommen.aber zu meiner Frage,sind das nur Super E/As die die DLL benötigen?oder muß ein Guter E/A die DLL benutzen.Grußkarlos10 Melden
Geschrieben 30. Oktober 200916 Jr. comment_88574 Zu diesem Thema hätte ich auch gleich ein paar Fragen die eigentlich ganz gut in diesen Thread passen. 1. kann mal jemand ein beispiel geben, wie ich eine funktion aus einer dll aufrufe?2. kann ich die dll auch mit metatrader generieren (kompilieren) oder geht das nur mit Visual c++? 3. wo ist der unterschied zwischen einem #include und dem includen einer dll? danke Zur Eingangsfrage des Threads:Wenn man länger oder mehrere EA's oder Indikatoren programmiert hat die auf identische Bausteine zugreifen. z.B. das gleiche Money-Management dann macht es Sinn diese ín eine eigenen Library auszulagern auf dann die unterschiedlichen EAs zugreifen. Oder auch wenn man eigene Statistik- oder mathematische Funktionen programmiert hat, ist es sinnvoller diese als dll dazuzulinken. Es fördert auch den "sauberen" objektorientierten Programmierstil. Melden
Geschrieben 30. Oktober 200916 Jr. comment_88575 sind das nur Super E/As die die DLL benötigen?oder muß ein Guter E/A die DLL benutzen. Also "müssen" sicher nicht. Wie wingman schon sagt ist es teils für die Faulheit (wiederverwendung), oft für die "Schönheit" des Codes aber hauptsächlich wenn es nicht anders geht, das man DLLs verwendet.Es ist natürlich auch zu unterscheiden ob man mql-libraries (also in MQL geschriebene (oft verwendete Funktionen) einbindet (hier geht es eigentlich nur um Wiederverwendbarkeit, Schönheit und einfachere Wartung) oder "wirklich externe" dlls verwendet. zweiteres passiert idR nur wenn man eine Funktionalität benötigt die in MQL nicht oder nur sehr kompliziert lösbar wäre (bsp. aufwändigere Statistikberechnungen, mglw. Optimierungs-solver, Zugriff auf externe Dateien, neuronale Netze etc...) Ob ein "guter" EA jetzt solche Zusatzfeatures braucht, oder ob ein guter EA mit 3 Indikatoren und viel richtiger Logik auskommt, ist eher eine Glaubensfrage ;) 1. kann mal jemand ein beispiel geben, wie ich eine funktion aus einer dll aufrufe? natürlich: #import "DataFiles.dll" int readData(double& data[],string filename); int writeData(int tstamp,double& data[],string filename); (direkt in den Header zu "#property..." etc. Die Funktionen readData und writeData können jetzt ganz normal verwendet werden, als wären sie mql funktionen. 2. kann ich die dll auch mit metatrader generieren (kompilieren) oder geht das nur mit Visual c++?dlls nicht, die verwendest du auch nur wenn du Funktionen verwenden willst die es in MQL nicht gibt ;)es gibt aber libraries in MQL, hier werden einfach häufig verwendete Funktionen in ein mqlfile gepackt und dann "#property library" versehen. eingebunden gleich wie dlls nur das es eine "*.ex4" datei ist. (Bsp für eine MQL-Lib ist die TradeBox) 3. wo ist der unterschied zwischen einem #include und dem includen einer dll?#include ladet den inhalt der mqh Datei direkt beim kompilieren in das File. d.h. es ist das gleiche ob du die datei includierst oder den inhalt an der entsprechenden Stelle reinkopierst.(oft wird eine dll eingebunden indem der #import... -Block in eine mqh geschrieben wird, und dann die mqh includiert... das versteckt aber mMn welche Funktionen jetzt aus der dll verwendbar sind und macht das programmieren umständlich weil man ständig hin und her switchen muss)Willst du jetzt eine Funktion in der mqh ändern, musst alle damit kompilierten EAs neukompilieren.eine Dll/ex4-lib wird zur laufzeit (und da nur bei bedarf) geladen. d.h. wenn du heute einen EA mit einer lib versiehst und kompilierst, und in 3 Wochen entdeckst du einen Bug in der lib, brauchst du nur die lib neu kompilieren, der EA lädt dann die aktuelle Version (sofern die Namen gleich bleiben). HTH Melden
Hallo
Ich bin Anfänger mit Metatrader und MQL,meine Frage ist wofür benötigt MQL den Inhalt von einer externen DLL Datei ?.
Ich habe bis jetzt nur hier mitgelesen,aber das wird sich ändern.
karlos10
Leben und Leben Lassen
Bearbeitet von karlos10