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,
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?
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