Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Frage DLL

Geschrieben

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

Featured Replies

Geschrieben

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...

Geschrieben
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 :pfue: , 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

Geschrieben
  • Autor
Ein Jahr hat das jetzt gedauert bis zum ersten Posting ^^

 

War noch schnell Blumen holen :pfue: , 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

Hallo

Danke 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

Geschrieben

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.

Geschrieben
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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.