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.

Code Kursvergleich

Geschrieben

Hallo,

 

ich hatte unter http://www.tom-next.com/community/Kursvergleich-t38344.html ja vorgeschlagen, die gestellten Kurse verschiedener Broker zu vergleichen indem man die Daten jeweils der letzten Minute zu einem Webservice liefert, der sie dann speichert und in einer Übersicht anordnet.

 

Erster Schritt ist also der Aufruf einer externen Webseite aus MT.

Ich dachte zuerst an eine spezielle DLL. Bei der Recherche stellte ich fest, dass in der Wininet.dll entsprechende Funktionen schon drin sind. Der Aufruf ist allerdings etwas unhandlich, ich fand dann aber eine Library für MT4 die den Aufruf kapselt. Diese könnte man auch durch etwas eigenes ersetzen, sie erfüllt den Zweck aber vollauf.

 

Bei Gelegenheit werde ich mal prüfen ob sie nicht 'nach Hause telefoniert'.

 

Die Library LibReadingWebData.ex4 stammt von hier,

 

http://www.forexmq4.blogspot.com/#secc9

 

einfach in das Verzeichnis Experts kopieren.

 

Hier nun der EA-Code (die Code Konventionen muss ich noch inhalieren, so lang ist er aber nicht):

 

 

 

 

//+------------------------------------------------------------------+
//|													Price2Web.mq4 |
//|																  |
//|																  |
//+------------------------------------------------------------------+

#import "LibReadingWebData.ex4"
  string ReadDataWeb(string URLWeb, string MatchedText, int MatchedTextShift, int DataToReadLength);  
#import

extern string id = "12345";
static int lasttime=0;

int start()
 {
if (Time[1]==lasttime){ //nur einmal pro Zeiteinheit
  return(0);
}

lasttime = Time[1];

string URL = StringConcatenate("http://www.bettermessage.de/boerse/testmt4.php?id=",id,
  "&AccountCompany=",AccountCompany(),"&AccountServer=",AccountServer(),"&Symbol=",Symbol(),
  "&Time=",Time[1],"&High=",High[1],"&Low=",Low[1]);

ReadDataWeb(URL,"",0,0);
  
  return(0);
 }

 

Der Code macht als EA auf einem M1 Chart nun nichts weiter als jede Minute einmal das High und Low zum Webserver zu übertragen. Das Prinzip des Aufrufs einer Webseite ist aber auch für anderes nutzbar.

 

Die ID sollte pro User eindeutig sein, die Accountnumber wollte ich hier aber aus Sicherheitsgründen nicht verwenden.

 

Als nächstes ist nun die Speicherung der Daten in einer Datenbank und die Auswertung als HTML-Seite zu erstellen.

 

Hat jemand Lust mitzutun? Die URL im Code lässt sich schnell ändern, das kann also auch woanders laufen.

Ich kann es aber auch bei mir erstellen, ohne Dateneinlieferung bringt es aber niemandem Nutzen.

 

BTW: wie stelle ich es ein dass der Code farbig formatiert ist?

 

Lutz

Bearbeitet von lutzs

Featured Replies

Geschrieben

:hul:

Und das ist der ganze Code?

 

BTW: wie stelle ich es ein dass der Code farbig formatiert ist?

 

Meinst du zufällig diese Funktionalität http://www.tom-next.com/community/Syntax-H...QL4-t38231.html

 

Hat jemand Lust mitzutun?

 

Was muss igetan werden?

Ich schicke es aber gleich vorweg, für Programmierarbeiten bin ich ungeeignet :hul:

Geschrieben
  • Autor
:hul:

Und das ist der ganze Code?

 

Ja, ich war dann selbst überrascht wie einfach das am Ende zu lösen geht.

Man könnte das noch erweitern, so dass mit einem EA z.B. die Preise mehrere Instrumente übertragen werden, aber das Prinzip ist erst mal klar.

 

Meinst du zufällig diese Funktionalität http://www.tom-next.com/community/Syntax-H...QL4-t38231.html

 

Ja. Wie aktiviert man das?

 

Was muss igetan werden?

Ich schicke es aber gleich vorweg, für Programmierarbeiten bin ich ungeeignet :hul:

 

Es geht letztendlich darum, bei wem die Daten ankommen und die Auswertungen laufen. Ich kann das bei mir schrittweise aufbauen, so wie die Zeit dafür ist.

Vielleicht hat auch jemand anderes Interesse das zu übernehmen. Mehr als ein Webserver mit SQL und PHP und die Kenntnisse dazu sind nicht erforderlich.

 

Und dann werden in der Zukunft natürlich Daten gebraucht, sonst hat man ja nichts zum vergleichen.

 

Wenn also Interesse da ist baue ich oder jemand anderes das weiter aus, ansonsten kommt es erst mal in die Kiste.

 

Lutz

Geschrieben
Ja. Wie aktiviert man das?

 

Der BBCode dazu wäre [MQLC]

 

 

Vielleicht hat auch jemand anderes Interesse das zu übernehmen. Mehr als ein Webserver mit SQL und PHP und die Kenntnisse dazu sind nicht erforderlich.

 

Bei unseren Entwicklern sieht es derzeit Ressourcentechnisch ganz mau aus. Leider, sonst hätte ich gerne den Arm inklusive schnippenden DaumenMittelfinger in die Höhe gerissen.

Geschrieben
  • Autor
Der BBCode dazu wäre [MQLC]

 

Bei unseren Entwicklern sieht es derzeit Ressourcentechnisch ganz mau aus. Leider, sonst hätte ich gerne den Arm inklusive schnippenden DaumenMittelfinger in die Höhe gerissen.

 

Kein Problem. Ich setze das dann nach und nach weiter um.

 

Wenn bei jemandem in der Zwischenzeit akuter Bedarf nach Nutzung vorhanden ist bitte melden. Es reicht ja die Daten einzuliefern, den Vergleich kann ich im Notfall dann erst mal auch aus dem Log des Servers ziehen.

 

Lutz

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.