Alle Inhalte von mtbf40
-
Free Pascal
Mann o Mann weder der Teufel noch PH ist der Blöde!! - sondern ICH - schaut euch mal mein letztes Listing genau an!! Jetzt funktioniert es!!
-
Free Pascal
die Messages funktionieren - was ich jetzt festgestellt habe ist, das mt4-Skript ruft die Funktion aus der DLL überhaupt nicht auf - ich //#include <common_functions.mqh> #import "meine.dll" void an_dll(string cc); #import //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { string strSend; strSend = Symbol()+";"+Bid+";"+Ask+";"+TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS); //log("StrSend_"+strSend); return(0); } dazu habe ich die Bestätigung eingeschaltet das ich DLL-Aufrufe betätigen muß - und da kommt nix mit "klick mal ok" entweder steckt da der Teufel dahinter oder PH!!
-
Free Pascal
update: die dll hat es sich anders überlegt und produziert nun keinen Fehler mehr!! warum auch immer... ABER: es popt kein Message-Dialog auf ... bin weiter am ausprobieren
-
Free Pascal
so!!! habe jetzt alles zum laufen bekommen - dll kompiliert mt4-Skript erstellt und PENG Error in MT4 function 'an_dll' call from dll 'meine.dll' critical error - bekommst Du auch diesen Fehler?? habe im mt4-Skript eine Änderung gemacht: siehe oben - Variable send mit cc ersetzt - muss nicht der gleiche Name für die Variable im mt4-Skript und in der dll existieren?
-
Free Pascal
Danke RAiNWORM für den Code! wenn mal alles auf Anhieb klappen würde - jetzt findet das -Programm (Lazarus) den Identifier <MessageDlg> nicht mache für heute Schluß - morgen ist auch noch ein Tag fürs "blöd" werden
-
Free Pascal
danke für die Hinweise. habe jetzt mal folgendes versucht: Änderungen in DLL: cdecl deklariert und Type PChar Änderungen in MT4: HistoryOrder[0]="Test"; HistoryOrder[1]="Test1"; library orderhist; {$mode objfpc}{$H+} uses Windows,Classes { you can add units after this }; type TOrderHist = array[0..7] of PChar; // function parameters declared as var will accept pointers. //procedure VarsByReference(var oh: TOrderHist) ; stdcall; procedure VarsByReference(var oh: TOrderhist) ; cdecl; var Datei : TextFile; begin // now let's make some changes to the variables Assign (Datei, 'C:/Tools/mt4log.log'); ReWrite (Datei); writeln(Datei,oh[1]); close(Datei); end; exports VarsByReference; begin end. Resultat: die DLL schreibt jetzt zumindest Test!! rein - trotzdem alles merkwürdig - vor allem: wieso "funktioniert" es plötzlich mit cdecl?? Fazit: würde gern mal ein paar Code-Schnipsel bekommen mtbf40
-
Free Pascal
ist doch alles mit 32bit kompiliert !! Wenn Metatrader in Delphi programmiert ist, sollte es auf jeden Fall reibungslos funktionieren, denn Freepascal (Lazarus) ist nahezu Delphi kompatibel!
-
Free Pascal
-
Free Pascal
png-File - 299k mt4_dll.png Das hochladen dieser Datei wurde übersprungen. (Fehler IO)
-
Free Pascal
so - habe jetzt Lazarus-Versionen für 32bit und 64bit parallel installiert! DLL 32bit kompilliert und peng Datei >1GB was ich bis jetzt herausgefunden habe ist folgendes: die meisten Konstrukte von DLL<-> MT4 laufen so: MT4 ruft Funktion aus DLL auf-> DLL macht was -> gibt Ergebnis zurück an MT4 ich möchte aber dies machen: MT4 ruft Funktion aus DLL auf-> DLL macht was -> schreibt Ergebnisin eine Datei Ich habe keinen blassen Schimmer warum er nur 0x20 Zeichen reinschießt. Habe das ganze mal mit dem Procmon (Sysinternals) verfolgt - da sieht man wie die Zeichen in nano-Sekunden reinschießen. Ich muß dann MT4 schließen um nicht meinen Server lahm zu legen. Ich habe den Eindruck das der MT4 das Skript "hält", obwohl es ja ein Skript ist und nur einmal aufgerufen wird und das wars dann. Denn das Skript wird erst geschlossen, wenn ich MT4 (terminal.exe) schließe - und zwar als letzte Aktion!!! Würde ja gern mal einen Screenshot zeigen - kann aber nix hochladen Fehler 407
-
Free Pascal
erst einmal Danke für die Antworten - muß jetzt erst einmal alles sondieren - wo ich wahrscheinlich das Problem sehe ist, das die dll eine 64bit-compillierte ist. Muß jetzt mal die 32bit Version von Lazarus installieren, denn auf meinem Laptop und auf dem MT4 Server laufen jeweils Win7 64bit mit Lazarus 64bit FALLS jemand eine Lösung "geschrieben" hat - möge er sie nur für sich behalten!!
-
Free Pascal
die Schleife funktioniert - habe mir das mit dem Logging ausgeben lassen - über <common_functions.mqh> was ich jetzt gesehen habe ist, die DLL schreibt nur Space-Zeichen (Hex 20)
-
Free Pascal
Hallo an alle Free-Pascaler, habe folgendes Problem: ich möchte eine dll etwickeln die mir alle Trades aus der History in eine GUI schreibt. Mit den Daten möchte ich dann weiterarbeiten. zu Testzwecken habe ich bis jetzt folgendes: DLL: library orderhist; {$mode objfpc}{$H+} uses Classes { you can add units after this }; type TOrderHist = array[0..7] of string; // function parameters declared as var will accept pointers. procedure VarsByReference(var oh: TOrderHist) ; stdcall; var Datei : TextFile; begin // now let's make some changes to the variables Assign (Datei, 'C:/Tools/mt4log.log'); ReWrite (Datei); writeln(Datei,oh[7]); close(Datei); end; exports VarsByReference; begin end. MT4: //#include <common_functions.mqh> #import "orderhist.dll" void VarsByReference(string& oh[]); #import int start() { // retrieving info from trade history int k,i,hstTotal=HistoryTotal(); int HistoryOrderType; int HistoryOrderTicket; int HistoryOrderCloseTime; double HistoryOrderClosePrice; int HistoryOrderOpenTime; double HistoryOrderOpenPrice; double HistoryOrderOpenProfit; double HistoryOrderOpenStopLoss; string HistoryOrder[8]; for(i=0;i<hstTotal;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Access to history failed with error (",GetLastError(),")"); break; } HistoryOrder[0]=OrderCloseTime(); HistoryOrder[1]=OrderClosePrice(); HistoryOrder[2]=OrderOpenTime(); HistoryOrder[3]=OrderOpenPrice(); HistoryOrder[4]=OrderProfit(); HistoryOrder[5]=OrderStopLoss(); HistoryOrder[6]=OrderTicket(); HistoryOrder[7]=OrderSymbol(); int count=ArraySize(HistoryOrder); for(k=0; k<count; k++) { //log("OrderHistoryOutput_"+k,HistoryOrder[k]); Print("blabla_"+k); } VarsByReference(HistoryOrder); } } Resultat: die DLL legt zwar die log-Datei an!! schreibt aber nur irgend welche Zeichen rein und blässt die Datei auf 100'erte MB's auf - ich muß dann schleunigst MT4 schließen, sonst legt die mir noch den Server lahm. Das mql-Skript läuft als Script im MT4. Wer weiß was hier schief läuft?? ProgrammIDE ist Lazarus
-
Einstieg zu MT4 Programmierung
Hallo, wie müsste ein Array aussehen, wenn ich die Daten der Trade History in ein Array schreiben will. Da die meisten Daten ja vom Typ Double und Int sind wäre es ja einfach - aber mir Symbol und TradeTyp bekommen ich das nicht hin mtbf40
-
Broker allgemein
reine Neugierde oder vielleicht Wechselabsichten - bin zur Zeit bei Alpari UK
-
Broker allgemein
kennt jemand bzw. tradet über diesen Broker?? JFD Brokers
-
Die Märkte ändern sich niemals
FALSCH!! die Basis jeder/s Candel/Bars ist und bleibt die T/S-Liste. Das ist wie Wurst in Därme abfüllen: wenn ich eine kleine Wurst haben will, lass ich den Schalter nur kurz auf, wenn ich eine größere haben will, muß ich den Schalter länger offen lassen. Oder anders gesagt: wenn der Markt um 9:23 eröffnen würde, sieht ein z.B. 5 min Bar um 10:23 anders aus wie wenn der Markt um 9:00 eröffnet - er könnte aber auch wirklich gleich aussehen, wenn es die Anzahl der Ticks hergeben würde. Es ist absolut simpel: die Zählung beginnt mit der Eröffnung des Marktes - dann jagen die Ticks durch die Pipe und werden nach 1min, ..., 5min, ... , 10min, ... , 1h, ... , 4h u.s.w. abgeschnitten -> daraus entstehen dann Bars oder Candels die wiederum zu einem Chart zusammen gefasst werden. Und diesen Chart "interpretieren" ,"enträtseln", "lesen" dann die Marktteilnehmer. So, wenn diese Informationen nun alle vorliegen, was passiert denn jetzt??? Jetzt beeinflusst dieses "interpretieren" ,"enträtseln", "lesen"plötzlich die Ticks selber, d.h. die Kurse gehen entweder runter oder hoch oder, wenn wenig Volumen im Markt ist, hüpfen die Kurse wie bei einem Gartenzaun hoch/runter und diese sogenannten Seitwärtsphasen entstehen. Man könnte jetzt dieses "So,wenn dies dann das" solange weiter führen bis man an einer "Schnittmuster"-Konstellation angekommen ist. Fazit: für mich hängt der Erfolg oder Misserfolg einzig und allein von der Intuition ab - d.h. der Fähigkeit über jahrelange Beobachtung der Märkte, Marktphasen einschätzen zu können und entsprechende Entscheidungen - long, short, flat - zu treffen. Ob ich für diese Entscheidungen irgend welche Hilfsmitten verwende oder einfach nur rein der Intuition/Erfahrung vertraue ist ein weiteres Kapitel...
-
Merry x-Mas
Ich schließe mich allen Vorschreibern an und wünsche Euch ein "Chartfreies" ruhiges und "besinnliches" Weihnachtsfest...
-
AgenaTrader
hier mal die wahrscheinlich am meisten genutzten Data Feeds und deren API's PatSystems API ZenFire API CQG-Trader API eSignal SDK IB API ist schon interessant was es da noch alles so gibt... Reuters,Bloomberg... dann noch ein sogenanntes FIX Protokoll, als industrielle Standardschnittstelle zwischen Institutionellen
-
AgenaTrader
Hallo WhoIsWho, erst ein mal finde ich den Ansatz super, eine Art Multiplattform zu programmieren, super!! Das die Konkurrenz schon "plaziert" ist finde ich nicht!! - denn es gibt noch keine Applikation wie Deine!!! - zumindest kenne ich keine zu den Datenfeeds: muss/sollte es wirklich Pats sein??? Was ist mit ZenFire oder CQG. Es werden bestimmt Leute die Software verwenden, die diese alternativen Datenfeeds benutzen - so wie ich - und es gibt auch API's dafür. Gruß mtbf40
-
Trading Masters
bei allen Contests wird nur die Performance gewertet - wer die meiste Kohle gemacht hat ist Sieger. Nicht so bei der Trading Masters. Dort wird nach 2 Kategorien gewertet: 1. Performance 2. Auswertung des Tradingtagebuches - das war und ist ein wichtiger Aspekt für die Plazierung ...und 3. mußte man sich alle Webinare ansehen oder live dabei sein. mal sehen wie viele Anbieter das nach machen - ich glaube wenige!! - weil die Aufwand wahrscheinlich ziemlich hoch ist. Die meisten Convents ziehlen ja nur darauf ab, potentielle Kunden anzulocken.
-
Trading Masters
ich!! habe mich mal angemeldet aber aus Zeitmangel konnte ich nicht daran teilnehmen. Das Konzept finde ich aber sehr gut - hebt sich von allen anderen Contests völlig ab.
-
Excel vs. "R"
hier mal ein Link für R in Zusammenhang mit Metatrader - konnte es bisher nicht testen, weil ich es noch nicht auf 64Bit kompilieren konnte 7bit R-Project
-
Broker allgemein
sehe ich nicht ganz so - denn die Struktur "reinklopfen" geht doch schnell oder?????? wo ich den Aufwand sehe ist bei den Fakten - diese auf einer hohen Inhaltsqualität zusammen zu tragen dürfte die meiste Arbeit bedeuten. und bei den Erfahrungen kommt es natürlich auf jeden einzelnen an, welches Niveau die Beiträge haben die Frage bei einem Wiki wäre ja - wer darf in die Rubrik Fakten schreiben?? - Normalerweise ist ja ein Wiki offen für jeden - aber ich würde nicht jeden in die Rubrik Fakten schreiben lassen - es sollte zumindest der Personenkreis eingeschränkt werden.
-
Broker allgemein
wäre natürlich auch eine Variante!!