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.

MetaTraderExternalCommunicator (MTEC)- One Click Trader

Geschrieben
:hmmmm:

 

Wer kann diesem Zeichen schon widerstehen? Ich nicht :blush:

 

Okay, ich habe ein Konzept erstellt und erstelle gerade eine Testversion. Die funktioniert auch schon (unidirektional). Was habe ich vor? Siehe anhängendes Bild.

 

http://img291.imageshack.us/img291/8982/mtec.png

 

Der Name ist da, damit einfach einer vorhanden ist - gibt sicherlich bessere. Aber nun zum Inhalt.

 

MTEC.mq4 ist ein MQL-Sourcecode, welcher eigenständig arbeiten kann, aber auch in eigene EAs eingebunden werden kann. Darin sind DLL-Funktionen als Imports vorhanden. Mit den DLL-Funktionen kann ich mit einem externen Programm Kontakt aufnehmen, z.B. der geplanten GUI. Die Kommunikation erfolgt per TCP/IP, funktioniert somit lokal, aber auch remote z.B. im LAN oder über das Internet! In der GUI kann ich losgelöst vom Terminal Informationen darstellen und Kommandos zurücksenden, die dann in der MTEC.mq4 verarbeitet werden können.

 

Außerdem träume ich davon, dass ich eine Datenbankanbindung (Access reicht ja) habe. Ich möchte nämlich meine Orders mit Eigenschaften versehen, sodass ich bei Absetzen der Order gleich Informationen dranhängen kann. Mit diesen Infos an der Order kann ich im späteren Verlauf Ausstiege verarbeiten. Die Infos blieben dann auch beim Neustart des EAs vorhanden.

 

Ich erstelle gerade erstmal ein "proof of concept", eine Art Machbarkeitsstudie. Wenn die positiv verläuft, werde ich weiterentwickeln. Was geht bisher: Messages vom MT4 an die GUI. Sobald der Rückweg funktioniert, werde ich gerne mal die Version posten. Vorher nicht.

 

Für mich ist die TCP/IP-Verbindung wichtig, da ich beruflich viel unterwegs bin. Zu Hause läuft dann mein Computer mit EA und per Remote-GUI könnte ich meinem EA andere Parameter mitteilen (z.B. geänderte Markteinschätzung...).

 

Bis Ende nächster Woche müsst ihr euch gedulden (falls überhaupt Interesse besteht), vorher komme ich zeitlich nicht dazu.

 

Was könnte die Community leisten?

 

Testen, Ideen, Definition des Kommunikations-Protokolls, Definition der Standard-Funktionen... Wenn das Kommunikationsprotokoll zwischen DLL und GUI offen ist, könnten auch andere Programmierer eigene GUIs schreiben. Was auch immer.

 

Soooo - wie war das mit Thread Hijacking? :rofl:

 

 

RAiNWORM

Featured Replies

Geschrieben
  • Autor

Ich habe mir mal Gedanken zum Protokoll gemacht. Ziel ist es, einen gewissen Standardrahmen zu bieten, der dann noch erweitert werden kann. Die Kommunikation mit der DLL per TCP/IP soll auch anderen Programmierern mit anderen Programmiersprachen ermöglicht werden. Daher möchte ich das Protokoll sehr simpel halten, auch wenn es nicht unbedingt effizient ist.

 

Protokollrahmen:

  • Messages werden per ASCII-Zeichensatz versendet (also keine binäre Form)
  • Abschluss einer Nachricht ist CR/LF ("enter")

 

Nachrichtenaufbau:

  • 5stellig: fortlaufende Messagenummer
  • 3stellig: Kommando
  • x-stellig: Parameter zum Kommando
  • letzte 6 Stellen: Prüfsumme über die gesamte Nachricht

Die Messagenummer dient dazu, Nachrichten nicht doppelt zu verarbeiten. Wenn die GUI 5sec keine Antwort auf eine gesendete Nachricht erhält, soll sie die gleiche Nachricht nochmals senden (gleiche Nummer). Messagenummer 000000 ist mehrfach zu verwenden und bedarf keiner Bestätigung (unwichtige Nachrichten, wie Statusmeldungen etc.). Nach 99999 wird wieder mit 00001 begonnen.

Die 6stellige Prüfsumme ist einfach die Quersumme über die ASCII-Codes der Nachricht. Dadurch kann sichergestellt werden, dass die Nachricht unverfälscht und vollständig ausgetauscht wurde. Nochmal: sicherlich wäre ein binäres Kommunikationsprotokoll und eine CRC-Prüfsumme effizienter, allerdings gibt es je nach Programmiersprache unterschiedliche Implementierungen und es soll einfach simpel sein.

 

Verschlüsselung:

Wird irgendwann später eingebaut. Beim Aufbau der Verbindung werden Server und Client einen Schlüssel vereinbaren (public key), mit diesem werden die Nachrichtenpakete codiert. Damit dennoch ASCII-Codes verarbeitet werden, erfolgt eine Umwandlung in 7bit (MIME/UUENCODE).

 

Standardkommandos:

  • ACK: acknowledge = Anfrage erhalten, bestätigt ohne spezifische Antwort
  • ERR: error = Anfrage erhalten, aber Fehler bei der Ausführung (Fehlernachricht hinten dran)
  • CMD: command = Kommando absetzen (siehe Subkommandos)
  • TIC: tick = sendet Tickdaten (Symbol, Bid, Ask, OHLC...)
  • ASW: answer = spezifische Antwort auf eine Anfrage/ein Kommando (impliziert ein ACK)
  • NOP: no operation = regelmäßige Statusrückmeldung zur Aufrechterhaltung und Testen der Verbindung
  • LGI: login = Anmeldung nach Verbindungsaufbau (mit Benutzer, Passwort etc.)
  • LGO: logout = Abmelden mit anschließender Trennung der Verbindung
  • CON: connect = Connectantwort des Servers (Austausch MTEC-Versionsnummer, Bereitstellen public key...)
  • CHK: checksum = Prüfsumme fehlerhaft --> Nachricht erneut senden
  • CUS: custom = benutzereigenes Kommando (wird durchgereicht)
  • BIN: binary = binäres Senden von Daten (z.B. Chartbilder), auch hier MIME/UUENCODE

 

Subkommandos (zum CMD):

  • BUY: buy = Kauf (symbol, price, slippage...)
  • SEL: sell = Verkauf (symbol, price, slippage...)
  • CLS: close = Trade schließen
  • CAP: close all profit = schließt alle offenen Trades, die im Gewinn liegen
  • CAL: close all loss = schließt alle offenen Trades, die im Verlust liegen
  • CLA: close all = schließt alle offenen Trades (market)
  • CPP: close all at portfolio profit = schließt automatisch alle Trades, sobald das Portfolio der offenen Trades einen Gewinn von X erreicht
  • CPL: close all at portfolio loss = schließt automatisch alle Trades, sobald das Portfolio der offenen Trades einen Verlust von X erreicht
  • SYO: sync open trades = Liste der offenen Trades der GUI bereitstellen
  • SYH: sync history = Liste der abgeschlossen Trades der GUI bereitstellen
  • ACC: account = Austauch von Kontoinformationen (balance, equity, free margin...)
  • CHR: chart = fordert das aktuelle Chartbild an

 

Die (Sub-)Kommandos bekommen noch Parameter mit. Das habe ich jetzt im Detail noch nicht durchdacht. Kommentare sind herzlich willkommen!

 

Und jetzt: ab in die Sonne -- Schöne Pfingsten!

 

RAiNWORM

Geschrieben
  • Autor
Kann der Code später "auf die Schnelle" für MT5 kompatibel gemacht werden?

 

Ich habe mich noch nicht mit MT5 befasst, behaupte aber, dass dies sehr leicht möglich sein wird, da das "komplizierte" vom MTEC nicht in MQL programmiert ist. Wenn MT5 DLLs nach wie vor einbinden kann, dann sollte es nicht all zu aufwändig sein.

  • 2 Wochen später...
Geschrieben
  • Autor

So, endlich konnte ich mal wieder was machen. Hier die Version v0.1.0

 

Vorgehen:

MTEC_testscript.mq4 in das Script-Verzeichnis und kompilieren

MTEC.dll nach C:\temp oder im Script anpassen

MTEC.exe irgendwo ablegen

 

MT4 konfigurieren:

http://img715.imageshack.us/img715/2124/configmt4.jpg

 

Wer dem Programm noch nicht traut, kann zwar lifetrading zulassen, aber um Bestätigung bitten. Ist dann zwar kein OneClicker mehr, aber für die Testphase sicherer.

 

Zum Start:

Script auf Chart ziehen. MTEC.exe starten und unter Config auf CONNECT klicken. Passwort ist "leer" (ohne Anführungszeichen). Kann auf Wunsch im mql4-Code geändert werden.

 

So sieht das dann aus:

http://img12.imageshack.us/img12/9238/screenshotv010.jpg

 

Achtung: in der Trade-Übersicht werden (momentan) nur die über MTEC geöffneten Trades angezeigt. Close per Doppelklick. Derzeit wird auch nur die Ticketnummer angezeigt - Rest kommt noch :shocked:

 

Der Download: --hier--

 

Und bitte nicht über die Farbgestaltung schimpfen. Ich hab erstmal ein wenig probiert. Vorschläge zum Oberflächendesign nehme ich jedoch gerne entgegen. :wink:

 

RAiNWORM

Geschrieben
So, endlich konnte ich mal wieder was machen. Hier die Version v0.1.0

 

:shocked:

 

So sieht das dann aus:

[...]

Und bitte nicht über die Farbgestaltung schimpfen. Ich hab erstmal ein wenig probiert. Vorschläge zum Oberflächendesign nehme ich jedoch gerne entgegen.

 

*g*,

beim Farbschema müssen wir später unbedingt noch mal ran ^^

Aber ansonsten schaut das schon sehr professionell aus. Klasse! Vielen Dank!

  • 3 Wochen später...
Geschrieben
  • Autor

Okay, ich bin mal wieder ein Stück weiter. Eine neue Version gibt es diese Woche.

 

  • Farbschema optimiert (ging ja nur besser)
  • Fenster-Transparenz (ziemlich cool, siehe Screenshot), dadurch bei nur einem Bildschirm kein Platzmangel mehr und "im Chart integriert"
  • Berechnung des Value At Risk pro Position und Account (auch in %)
  • die Tradeliste wird automatisch aktualisiert

 

Bevor ich die neue Version veröffentliche, kommen aber noch mehr Handelsfunktionen hinzu.

 

RAiNWORM

screenshot_v0-1-5.jpg

Geschrieben
  • Autor

Witterungsbedingt habe ich seit der Ankündigung im vorigen Post nicht mehr all zu viel gemacht :wub:

Aber: hier ist die (aus meiner Sicht) erste brauchbare Version! Also mir macht es Spass damit zu traden :nictation:

 

Die DLL ist noch die alte, da sich lediglich im Script und der GUI was geändert hat.

 

Download >>hier

@whipsaw: spricht was gegen den Downloadbereich des Forums bei künftigen Versionen?

 

Zur Installation (wie immer):

  • MTEC.exe irgendwo ablegen
  • MTEC.dll nach C:\temp oder im Script anpassen
  • MTEC_Testscript.mq4 ins Metatrader-Experts-Scripts-Verzeichnis
  • MTEC_Testscript im MT4 auf ein Chart ziehen
  • MTEC.exe starten und connecten
  • Passwort: leer

 

RAiNWORM

Geschrieben

Witterungsbedingt habe ich seit der Ankündigung im vorigen Post nicht mehr all zu viel gemacht :aerator:

Aber: hier ist die (aus meiner Sicht) erste brauchbare Version! Also mir macht es Spass damit zu traden

 

:top:

 

Schön das Du an der Sache dranbleibst.

Ich hoffe indes, dass sich irgendwann mehr Feedback einstellen möge.

 

@whipsaw: spricht was gegen den Downloadbereich des Forums bei künftigen Versionen?

 

Nein. Dafür ist das Modul ja gedacht.

Ich kläre das mit den Zugriffsrechten und melde mich noch einmal zum Thema.

Geschrieben

Witterungsbedingt habe ich seit der Ankündigung im vorigen Post nicht mehr all zu viel gemacht :aerator:

 

 

Sei dir gegönnt, klasse Arbeit hast du da gemacht.

Ich bin bisher noch nicht dazu gekommen dein Programm zu testen, hole das aber auf jeden Fall nach !

Geschrieben
  • Autor

Schön das Du an der Sache dranbleibst.

Och, ich seh das ganz entspannt. Ich habe Spass daran, neue Dinge zu erstellen und dümmer wird man dadurch sicherlich nicht. Und vielleicht zieht der eine oder andere aus dem Programm einen Nutzen - warum nicht.

Geschrieben
  • Autor

Sei dir gegönnt, klasse Arbeit hast du da gemacht.

Ich bin bisher noch nicht dazu gekommen dein Programm zu testen, hole das aber auf jeden Fall nach !

Hehe, danke für das Lob, ohne das Programm gesehen zu haben :aerator: Vielleicht kann ich ja durch das Verkaufen von PowerPoint-Folien und Screenshots reich werden - soll's ja geben :top:

Geschrieben

wow, sehr cool, ich werde es heute abend mal ausprobieren

 

 

Hallo RAiNWORM,Tolles Prog werde es auch Ausprobieren.

Gruß Karlos

 

Eine große Motivation für Entwickler ist Feedback. Denke daran sollte es nicht scheitern :aerator:

 

 

und melde mich noch einmal zum Thema.

 

Link - Hinweis: Download ist für alle registrierten Mitglieder möglich. Falls weitergehende Restriktionen gewünscht sind, bitte melden.

Geschrieben

Hehe, danke für das Lob, ohne das Programm gesehen zu haben :aerator:

Sagen wir mal so, ich gehe bei allen Usern von der Qualität ihrer von mir bisher gelesenen Posts aus.

Dann fällt es mir bei vielen regelmässigen Nutzern des Forums natürlich auch schwer an der Qualität ihrer Beiträge zu zweifeln, grade wenn in der Vergangenheit

gute Posts kamen.

So jetz aber genug der Beweihräucherung.....

 

btw.

Whipsaw könnte mich jetzt "schocken" wenn er Hardcore Videos postet :top:

 

Vielleicht kann ich ja durch daäs Verkaufen von PowerPoint-Folien und Screenshots reich werden - soll's ja geben incredible.gif

Naja, reich vielleicht nicht, aber sicher kann man damit einen guten Nebenverdienst aufbauen...

Aber auch das artet in Arbeit aus, weil du willst ja dann automatisch irgendwann größer werden .........

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.