Erstellen Sie Ihre eigene MetaTrader-Erweiterung (dll) - Seite 5

 

Wie ich sehe, sind Sie ein großer Geschäftsmann?

Dies ist nicht das Forum, wo Sie solche Scheiße verkaufen können Sie haben.

Was genau haben Sie in DGC OZFX EA geändert?

firedoji:
Easy!!! Laden Sie einfach alle Forex-E-Books herunter und schauen Sie sich die Anleitungen darin an. Ich habe über 200++ E-Book von dort und einige EA zu... Alle EA dort sind bearbeitet und modifiziert...

-----------------------------------------

Alle EA herunterladen Alle Indikatoren herunterladen E-Book herunterladen
 
prasxz:
Ist es möglich, die mt4 dll mit einem Webservice zu verbinden und ein php-Skript zu erstellen, das die offenen MT4-Positionen auf einer Website anzeigt, so dass Leute, die keinen MT4 haben, diese auf der Website in Echtzeit sehen können?

Jemand hat vor einiger Zeit ein MQL/MySQL-Beispiel gepostet, das gut funktioniert hat. Das einzige Problem dabei ist, dass die meisten Hosting-Unternehmen keinen Fernzugriff auf ihre Datenbankserver erlauben. Wenn Sie jedoch vollen Zugang und Kontrolle über Ihren Server hätten, könnten Sie einen EA schreiben, der sich mit Ihrer Datenbank verbindet und die Daten für jede neue Bestellung einfügt. Von Ihrer Website aus können Sie sich dann einfach mit der Datenbank verbinden und die Daten auslesen ... Meiner Meinung nach wäre dies der beste Ansatz.

Nun kann eine MT4 DLL eine Verbindung zu einem php-Skript herstellen, aber ich habe nie versucht, die Informationen vom EA an die Website weiterzugeben, ich konnte es aber erfolgreich andersherum machen ... Sie müssten sich mit Windows Sockets und Funktionen wie HTTP_GET / HTTP_POST beschäftigen.

Patrick

 
Mistigri:
Ich bin mir nicht sicher, aber diese Bibliothek kommt mir bekannt vor, verwenden Sie sie, um eine Verbindung zu einer Website herzustellen? Haben Sie versucht, stattdessen wininet.lib zu verwenden?

Ich glaube nicht, dass das Problem hier ist die def-Datei oder Ihre dll würde nicht einmal laden und richtig funktionieren ... Wenn Sie mehr Informationen zur Verfügung stellen können (z. B. ein Stück des Codes, den Sie in der DLL verwenden), dann kann ich vielleicht versuchen zu helfen.

Patrick

Hallo Patrick!

Ich habe die Bibliothek und den Quellcode hier gefunden:

https://www.mql5.com/en/forum/178272

Ich habe meinen Beitrag dort platziert, aber der Admin hat ihn in diesen Thread verschoben...

Danke!

 

Lesen von Dateien aus dem Internet

Hallo!

ich möchte, dass ein EA eine Datei liest, die sich nicht auf dem lokalen Rechner, sondern im Internet befindet.

FileOpen funktioniert nur, wenn sich die Datei im Metatrader-Verzeichnis befindet.

Ich habe es mit einer c#-dll versucht, bekomme aber die Fehlermeldung "cannot call function".

Hat s.o. eine einfache Lösung für dieses Problem??

Danke

 

Lösung für Fehler 127 - Funktion kann nicht aufgerufen werden

Lösung für den Fehler 127 - Funktion kann nicht aufgerufen werden

Okay!

Ich habe mir das Problem gestern Abend endlich angesehen. Das Problem hat mit der Verknüpfung der falschen def-Datei oder nodef-Datei mit der dll zu tun.

Dies ist, wie Sie es in Visual Studio 2008 Express beheben -

1) Gehen Sie zu Projekt, Eigenschaften - oder Alt-F7

2) Gehen Sie zu Linker - doppelklicken Sie darauf und Sie erhalten eine Dropdown-Liste

3) Wählen Sie Input

4) Ändern Sie die Moduldefinitionsdatei in den Namen, den Sie Ihrer Def-Datei gegeben haben.

Vergewissern Sie sich, dass der Pfad und der vollständige Name der Datei angegeben sind - z. B. .\MyDef.def

In der Express-Version 2008 wird diese Datei nicht automatisch generiert wie in den Professional-Versionen.

Dies ist die Hauptursache. Es kann andere Linker/Compiler-Probleme geben, die immer noch ein Problem verursachen können. Was Sie tun müssen, ist das ExportFunction-Beispielprojekt zu laden, das mit Metatrader4 geliefert wird. Dieses befindet sich im Ordner experts/DllSample. Schauen Sie sich nun die Eigenschaften Seite für Seite und Element für Element an, und ändern Sie überall dort, wo ExportSample oder ExpertSample (oder was auch immer in Bezug auf die Namenskonventionen verwendet wird) steht, die Eigenschaften so, dass sie Ihren eigenen Namenskonventionen entsprechen. Ich ging durch und tat dies Element für Element, und überprüfte dann, ob ich den 127-Fehler erhielt. Dieser Fehler trat so lange auf, bis die richtige Moduldefinitionsdatei ausdrücklich als Abhängigkeit angegeben wurde. Ich will damit nicht sagen, dass es nicht auch noch andere Dinge geben könnte, denn ich habe alles so geändert, dass es mit dem Beispiel übereinstimmt, aber sobald die Definitionsdatei explizit angegeben war, war der Fehler behoben.

Denken Sie daran, dass sich die dll im lib-Ordner befinden muss. Sie müssen eine mqh-Datei im Include-Verzeichnis haben, die die dll explizit importiert und die Funktionsnamen mit Parametern, Rückgabetypen usw. auflistet. Und dann müssen Sie in Ihrem Indikator oder Experten die Header-Datei einbinden. Das sollte genügen.

CodersGuru und Mistigri haben beide gute Beispiele dafür, wie man das macht, aber die nicht-professionellen Express-Versionen fügen die def-Datei nicht explizit als Abhängigkeit hinzu, und das ist die Wurzel des Problems, das wir alle haben, die die Express-Versionen benutzen. (Zumindest wird sie nicht explizit hinzugefügt, wenn man ein bestimmtes Projekt auswählt, damit wir, die wir das Problem haben, es auswählen können).

Siehe beigefügtes Bild. Denken Sie daran, dass Sie wahrscheinlich immer noch sicherstellen wollen, dass Ihre Compiler- und Linker-Werte mit denen des Exportfunktionsbeispiels übereinstimmen, das mit Metatrader geliefert wird.

Mit freundlichen Grüßen,

MG

Dateien:
properties.jpg  75 kb
 
fedecosta:
Hallo Patrick!

Ich habe die Bibliothek und den Quellcode hier gefunden:

https://www.mql5.com/en/forum/178272

Ich habe meinen Beitrag dort platziert, aber der Admin hat ihn in diesen Thread verschoben...

Vielen Dank!

Sorry, ich hatte noch keine Gelegenheit, mir das anzusehen, ich war sehr beschäftigt, aber ich habe es nicht vergessen und werde versuchen, darauf zurück zu kommen.

Peco07:

Ich möchte, dass ein EA eine Datei liest, die sich nicht auf dem lokalen Rechner, sondern im Internet befindet.

Sie haben 2 Möglichkeiten: Sie können eine C#-Anwendung schreiben, die sich mit der Website verbindet, eine Datendatei auf Ihren Computer schreibt und sie von MT4 liest, oder Sie können eine C++-DLL schreiben, die sich mit der Website verbindet und die Daten liest .....

Wenn Sie die C#-Route gehen, so weit es scheint viel schneller als die DLL-Route ... Wenn Sie eine C++ DLL schreiben wollen, finden Sie hier etwas Code, der Ihnen den Einstieg erleichtert.

MT4 DLL Web-Verbindung | Mistigri

MG_1:

Das Problem hat damit zu tun, dass der DLL die falsche oder keine Def-Datei zugeordnet wurde.

So beheben Sie es in Visual Studio 2008 Express -

Vielen Dank für die Info! Wenn es dir nichts ausmacht, werde ich einige Teile deiner Beiträge auf meiner Seite reproduzieren...

 
Mistigri:
Vielen Dank für die Informationen! Wenn es Ihnen nichts ausmacht, werde ich einige Teile Ihrer Beiträge auf meiner Seite wiedergeben...

Kein Problem, ich weiß, dass viele Leute dorthin gehen, um etwas zu lernen, und ich hoffe, dass es den Benutzern von Express und Gnu usw. helfen wird.

-MG

 
fedecosta:
Hallo Leute!

Ich habe ein Problem bei dem Versuch, diese Bibliothek zu verwenden.

Ich habe sie in metatrader\experts\library

Ich habe den Pfad für die .def-Datei korrekt definiert

... aber mein EA druckt auf dem Register diesen Fehler: -65495

Was kann das Problem sein?

Und, vor allem, wie kann man es lösen?

Ist es möglich, dass die .def-Datei beschädigt sein kann?

Vielen Dank im Voraus...

Hallo Fedecosta,

versuche, die def-Datei direkt unter dein c:\-Laufwerk zu kopieren ... Das scheint bei mir zu funktionieren.

Beachten Sie, dass dies nichts mit der DLL-Programmierung zu tun hat, es ist spezifisch für diesen EA...

Patrick

 
Mistigri:
Hallo Tim,

Wenn Sie dev-c++ verwenden, wird die Def-Datei automatisch für Sie generiert. Das Problem ist, dass Sie am Ende Funktionsnamen haben, die wie diese aussehen:

EXPORTS

_Z11GetSMAArrayP8RateInfoiiPd@16 @ 1

_Z12GetHighValueP8RateInfoii = _Z12GetHighValueP8RateInfoii@12 @ 2

_Z12GetHighValueP8RateInfoii@12 @ 3

_Z13GetCloseValueP8RateInfoii = _Z13GetCloseValueP8RateInfoii@12 @ 4

_Z13GetCloseValueP8RateInfoii@12 @ 5

_Z11GetSMAArrayP8RateInfoiiPd = _Z11GetSMAArrayP8RateInfoiiPd@16 @ 6[/PHP]

Now you need to make sure you add the following check around your code

[PHP]

#ifdef __cplusplus

extern "C" {

#endif

#ifdef __cplusplus

}

#endif

Angehängt sind die Beispieldateien, die ich für VS2008 gemacht habe, aber dieses Mal mit dev-c++ ...

ich hoffe, das hilft

Meinen Sie, dass beim Schreiben der DLL-Datei,

die Funktion in der def-Datei sollte _z12 am Anfang hinzufügen?

Das bedeutet in der .mq4 Datei

Funktion aufrufen: get_max_deviation

dann in der .def-Datei

die übertragene Funktion: _z12get_max_deviation???

Was bedeutet die @-Nummer nach dem Funktionsnamen?

danke

 
Mistigri:

Angehängt sind die Beispieldateien, die ich für VS2008 gemacht habe, aber dieses Mal mit dev-c++ ...

Ich hoffe das hilft

Angehängte Dateien

MistigriFX Sample Debug.mq4 (2.1 KB, 15 Ansichten)

MSFXDEV.zip (8.6 KB, 17 Ansichten )

Ich habe dl Ihre Dateien, und kompilieren Sie die .cpp durch das Bild zeigen

aber es tritt ein Fehler auf

Ist meine Kompiliermethode falsch, wie kompiliere ich es zu einer DLL? (ich bin ein c++ Anfänger ^^)

Dateien:
dev_dll.jpg  298 kb
Grund der Beschwerde: