Alle Inhalte von RAiNWORM
-
MetaTraderExternalCommunicator (MTEC)- One Click Trader
Stimmt, finde ich wichtig. Kommt auf meine Liste. Ticks werden sofort gesendet, aber z.B. offene Orders (würden) nur auf Anfrage. Und da ist ein vorgehaltener Datenbestand wirklich schneller.
-
MetaTraderExternalCommunicator (MTEC)- One Click Trader
Ja, in einen String, der per CallByReference übergeben wird. Ich hatte erst eine Funktion, die prüft, ob Nachrichten in der Warteschleife sind, aber dann hätte man die Lesefunktion auch nochmal aufrufen müssen. Jetzt habe ich alles zusammengepackt: die Receive-Funktion hat Rückgabewerte 0=keine Nachricht, 1=Nachricht vorhanden. Im letztgenannten Fall wurde die Nachricht in den (by ref) übergeben String gestellt. Gute Idee! Ist eingebaut. Rückgabewert 2. Das DLL-example habe ich mir nur kurz angeschaut. Die Lösung ist: strings in MQL sind structures. Die ersten 4 Byte enthalten (long int) die Länge des Textes, die nächsten 4 Byte den Zeiger auf das erste Zeichen des Textes. Hinzu kam noch, dass meine Programmierumgebung mit Unicode-Strings arbeitet, sodass ein Zeichen größer als 1 Byte war. Und zu allem Übel muss man Strings, wenn sie by ref übergeben werden sollen, als eindimensionales String-Array übergeben. Wenn ich den erwische der sich das ausgedacht hat! Zum Protokoll mache ich mir mal Gedanken und stelle den zur Diskussion... Zum Tool: Der erste Schritt wird sein: schnelles Kaufen/Verkaufen mit automatischem oder fixen SL/TP (anhand max. risk, CRV, was auch immer). Der zweite Schritt wird sein: Absenden von "custom commands" an MT4. Das heißt, der Anwender kann selber Kommandos definieren, welche über die GUI abgesetzt und in seinem EA verarbeitet werden können (z.B. Umkonfigurieren von Parametern) Der dritte Schritt: Erweiterung der GUI um offene Positionen (inkl. Risikobewertung). Der vierte Schritt: Datenbankanbindung an die DLL, sodass ich zu meinen offenen Orders Informationen zusätzlich speichern kann (ab wann soll trailing stop gezogen werden etc.) Der fünfte Schritt: ......... Das Ding wird glaube ich niemals fertig sein, da die Ideen niemals ausgehen werden. Da ich es gerade geschafft habe, mache ich mal schnell ne Version fertig. Bis gleich
-
MetaTraderExternalCommunicator (MTEC)- One Click Trader
Richtig, es wird auf eine While-Schleife (mit Sleep) hinausslaufen. Also die DLL läuft (was zumindest den TCP-Server) anbelangt in einem eigenen Thread. Jede Nachricht wird entgegengenommen und gespeichert. Der MQL-Code kann dann, wenn er Zeit und Lust hat, die Nachrichtenliste sequentiell abarbeiten. Oder an was für Werte hast du sonst noch gedacht? RAiNWORM
-
MetaTraderExternalCommunicator (MTEC)- One Click Trader
Genau so läuft der MTEC auch schon (Spionage?? )! Also, die DLL beinhaltet den TCP/IP-Server, welcher von außen verbunden werden kann. Im Non-Blocking-Zustand nimmt er Nachrichten entgegen und speichert diese in einer Liste. Diese Liste kann aus einem EA via DLL Message für Message ausgelesen und verarbeitet werden. Das ist die Receive-Funktion. Wenn nichts in der Warteschleife steht, dann kommt ein Leerstring. Ich kämpfe momentan nur noch mit dem Problem der Stringrückgabe aus der DLL in den EA. Momentan bringe ich damit MT4 regelmäßig zum Absturz, aber das wird noch gelöst. Welche Datenbank verwendet wird, ist eigentlich egal. Ich würde gerne Access nehmen, da ab Win2000 automatisch die notwendigen Treiber auf Windowssystemen installiert sind (auch wenn kein Access selbst installiert ist!). Bei MySQL oder SQLServer (oder meiner Lieblingsdatenbank Oracle) müsste wirklich ein komplettes Datenbankmanagementsystem installiert werden. Finde ich etwas übertrieben ;-) OK, es gibt für MySQL auch so eine Art Lokalinstallation, aber selbst die will installiert sein. Und ja, richtig: wenn die DLL steht, kann die GUI in jeder belieben Sprache geschrieben sein! Wir müssten uns nur auf ein Protokoll einigen (oder "Telegramme", wie du es nennst). RAiNWORM
-
Discountstrategien
Und, hattest du das eigentlich ausprobiert? Jetzt im Nachhinein betrachtet, waren das die idealen Tage und deine Idee wäre sicherlich aufgegangen...
-
MetaTraderExternalCommunicator (MTEC)- One Click Trader
Wer kann diesem Zeichen schon widerstehen? Ich nicht 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? RAiNWORM
-
Klickbarer Text in MetaTrader
Wer kann diesem Zeichen schon widerstehen? Ich nicht 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? RAiNWORM
-
Maximal 1 Order je 5 Min
Äh, mach mal :) Für den "so nicht"-Fall müsste jedoch noch die Differenz gebildet werden...
-
Maximal 1 Order je 5 Min
Tja, und bei der "Differenzrechnungsmethode" bleibt das Problem, dass (z.B.) nur alle 5 Minuten gehandelt werden kann. Das ist was anderes, als die Prüfung auf eine neue nicht gehandelte 5min-Kerze. Die Frage ist also: möchte ich nur einmal in 5 Minuten handeln oder max. einmal pro 5min-Kerze. Im ersten Fall könnte also der Einsieg gegen Ende der Kerze erfolgen, sodass ein weiterer Einstieg frühstens gegen Ende der nächsten 5min stattfinden kann und ggf. ein weiteres Signal verpasst wird.
-
Maximal 1 Order je 5 Min
Vollkommen korrekt. Der Entwicklungsleiter in meiner Firma (ich arbeite in einer Softwarefirma) würde jedoch ausrasten, weil unnötig Performance geschluckt wird: bei jedem Tick wird durch die OrderListe iteriert. Und wenn wir unsere beiden Ansätze kombinieren? Bei mir wird bei einem Neustart iLastTrade mit -1 initialisiert. In diesem Fall würden dann alle Orders (dein Vorschlag) geprüft werden. Ist iLastTrade >= -1, dann kommt mein Ansatz zum Zuge. Ist zwar mehr Code, aber das in eine eigene Funktion ausgelagert stört auch keinen mehr (und mein Entwicklungsleiter wäre zufrieden). Einziger Nachteil dieser Kombination: der manuelle Handel wird nicht berücksichtigt. Wenn ich jedoch ben nimmdich richtig verstanden habe, geht es ihm darum, dass sein eigener EA nicht Dauerhandel betreibt.
-
Standard Template
Wow, ist mit beiden Tipps doch schon komfortabler, als immer manuell umschalten. Ich wollte einfach ein vorhandenes Template kopieren. Bis ich das dann mal endlich gefunden habe, ist viel Zeit vergangen. Bei mir unter Win7 64bit: C:\Users\RAiNWORM\AppData\Local\VirtualStore\Program Files (x86)\XTB-Trader 4\templates Ist nicht gerade einfach zu finden, dieser VirtualStore...
-
Maximal 1 Order je 5 Min
Wenn dein EA im 5-Minutenchart läuft, dann ginge auch das hier: int Start() { static int iLastTrade = -1; // in aktueller Kerze schon ein Trade durch diesen EA eröffnet? if (iLastTrade == TimeMinute(Time[0])) return(1); // Time[0] gibt die Minute zurück, mit der die akt. Kerze eröffnet wurde int ticket=OrderSend(Symbol(),OP_BUY,Lots,Bid,1,SL,TP,"Test",123,0,Yellow); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) { //das geht nicht!: iLastTrade = TimeMinute(OrderOpenTime()); <-- das wäre die Minute der Tradeeröffnung und die kann auch außerhalb der 5min-Zyklen liegen, daher iLastTrade = Time[0]; // Time[0] gibt die Minute zurück, mit der die akt. Kerze eröffnet wurde } } return(0); } Sowas in der Art nutze ich, damit ich innerhalb der gleichen Kerze (bei mir H1) nicht mehrfach handele. Der Code funktioniert nur, wenn der EA läuft. Nach einem Neustart würde er auch sofort wieder loshandeln!
-
Klickbarer Text in MetaTrader
Das "Anklick-Problem" sehe ich auch. Daher plane ich leicht was anderes. Nachdem ich gesehen habe, wie "hässlich" (ich möchte keinem zu nahe treten) und dennoch beliebt der One-Click-Trader ist, plane ich was anderes. Idee: MT4 kommunziert innerhalb besagter While-Schleife mit einer externen DLL. Darin erfolgt ein Datenaustausch mit einem externen Programm. Dieses externe Programm beinhaltet eine Oberfläche und stellt Informationen aus dem MT4 dar und sendet Aktionen an MT4. Die Kommunikation zwischen DLL und ext. Programm geschieht über Windows-Messages. Dadurch habe ich eine Systemtrennung und MT4 und mein ext. Programm laufen stabiler. Meine Tests ergaben nämlich, dass MT4 es gar nicht so gerne hat, wenn ich als DLL eine komplette Applikation samt Oberfläche einbinde. Und das ext. Programm hat alle Vielfalt zur Verfügung, was Oberflächendesign und ggf. Datenbankanbindung etc. angeht... Tja, mal schauen, wann ich dazu mehr Zeit habe - schließlich verdiene ich mein Geld nicht mit dem Trading sondern mit "anständigen" Sachen und die gehen vor.
-
Klickbarer Text in MetaTrader
Das klingt schon fast zu einfach ;-) Ich werde einfach mal experimentieren. Danke.
-
Klickbarer Text in MetaTrader
Danke! Allerdings meine ich in der MT4-Hilfe gelesen zu haben, dass die Funktion start() nur dann aufgerufen wird, wenn sie bereits zuvor beendet wurde. Das heißt, die Funktion läuft parallel nicht mehrfach. So weit, so gut. Läuft dann aber MT4 noch weiter, während ich in der start()-Funktion durch meine while-Schleife kreise? RAiNWORM
-
Macht Börse überhaupt (noch) Sinn?
Ich finde das Beispiel von ibelieve sehr passend, was den ursprünglichen Gedanken von Märkten anbelangt: sie bringen Angebot und Nachfrage zusammen und sorgen somit für Liquidität. Allerdings gibt es immer mehr das zu beobachten, was Mythos beschreibt: "Daytrading". Hier spielt das Interesse an der Ware/dem Unternehmen keine Rolle mehr - es geht rein darum, kurzfristig Profit zu erwirtschaften. Investition in gute Ideen? Bereitstellen von Geldern zur Realisierung von durchdachten Konzepten? Wagniskapital für Visionen? Kann sein, dass es manchen Investoren darum noch geht. Aber wer mit Zertifikaten, Optionen und Optionsscheinen auf kurze Frist handelt, hat andere Intensionen. Allerdings bieten letztgenannte Instrumente soliden Firmen die Möglichkeit der Absicherung (bspw. Fluggesellschaften gegen steigende Treibstoffpreise...). Verwerflich ist nur, dass die reine Spekulation den übrigen Marktteilnehmern mit "moralisch sinnvollen und vertretbaren Absichten" schnell Steine in den Weg legen kann und sogar Geschäftsmodelle zerstört. Ich habe mal gelernt: "mit Essen spielt man nicht". Und warum investiere ich in Weizen und Zucker? Möchte ich mich mit meinen WTI-Calls gegen steigende Benzinkosten absichern? Die Börse hatte schon immer einen Sinn und dieser wird auch künftig noch gebraucht werden. "Tulpen"-Blasen gab es schon immer mal wieder, daran wird sich nichts ändern... RAiNWORM
-
06.05.2010 - Wie 'schwarz' kann ein Börsentag werden (aka Flash Crash)
Also, irgendwie nervös sind die Markteilnehmer ja schon... nach dem schönen Anstieg heute im DAX ein genau so wunderschöner Fall. Naja, wer in der richtigen Richtung dabei war. Meine Tagesgewinne sind auf jeden Fall wieder verpufft. Schade ;-) Und diesmal war sicherlich kein Computerfehler schuld, waren ja auch keine 1000 Punkte.
- 06.05.2010 - Wie 'schwarz' kann ein Börsentag werden (aka Flash Crash)
-
06.05.2010 - Wie 'schwarz' kann ein Börsentag werden (aka Flash Crash)
Ich glaube auch, dass das eher in Richtung Zockerei geht, denn wer sagt denn, dass ab deiner Grenze, z.B. 300 Punkte nicht wieder ein Rücklauf stattfindet. Ich könnte mir vorstellen, dass die Volatilität vorhin sehr hoch war und es nicht "nur" in einem Schwung nach unten ging... Außerdem bekommt man zu so einem Zeitpunkt bestimmt keine anständigen Kurse gestellt, bzw. bekommt andauernd reqoutes. Ich frage mich noch, warum es von den Währungspaaren ausgerechnet USD/JPY bzw. EUR/JPY erwischt hat. EUR/USD ist zwar eingebrochen, aber nicht so tief (wenn man mal die Zeitspanne außer Acht lässt) und EUR/GBP war auch vollkommen in Ordnung. Also war wohl hauptsächlich der Yen erstarkt. Sind dort alle hin geflüchtet?
- 06.05.2010 - Wie 'schwarz' kann ein Börsentag werden (aka Flash Crash)
- 06.05.2010 - Wie 'schwarz' kann ein Börsentag werden (aka Flash Crash)
- 06.05.2010 - Wie 'schwarz' kann ein Börsentag werden (aka Flash Crash)
-
liquideste Märkte der Welt
Laut meinem Buch hier [irene Aldridge - High Frequency Trading], durchschn. Tages-Volume in Milliarden USD: FX swaps: 1.714 (April 2007) FX spot: 1.004 FX forwards: 361 U.S. Treasury: 570 (Januar 2009) Agency MBS: 320 Federal agency securities: 83 Municipal: 25 Corporate debt: 24 NYSE: 2,6 (April 2009) Options: 1,6 (Mai 2009) RAiNWORM
-
Klickbarer Text in MetaTrader
Ich habe gerade mal mit einer externen DLL experimentiert, weil man dann schönere GUIs machen könnte. Mir stellt sich jedoch gerade folgende Frage: werden die Aktionen vom One-Click-Trader sofort ausgeführt oder erst beim nächsten Tick? Weil ich kann in MT4 ja nur in der Start()-Funktion agieren und die wird nur mit jedem Tick aufgerufen. So stellt sich zumindest das Problem bei meiner DLL... RAiNWORM
-
Discountstrategien
Das Problem wird sein, dass je nach Volatiliät vor dem Fälligkeitsdatum die beiden Scheine heftige Reaktionen haben können. Das heißt: bei rapidem Punkteverlust im Index wird der Short "sehr viel" Wert werden, da durch die gestiegene Volatilität und der Restlaufzeit ein noch tieferer Daxstand errechnet wird. Allerdings wird dem entgegen das Discountpapier an Wert einbüßen. Die Frage ist: wer ist stärker? (EDIT: vielleicht hilft der OS-Rechner von Scoach) Wenn du short gehen möchtest, dann mach das mit einem KnockOut-Zertifikat oder bei anvisierten heftigen Abwärtsbewegungen mit einem Put-Optionsschein, dann beschneidest du dir nicht die Chance. Und den prozentualen Maxverlust, den du bei der Strategie hättest, würde ich als Stopp ansetzen. Noch was: je nach eingesetztem Kapital sind die Verkaufsnebenkosten beim vorzeitigem Verkauf unverhältnismäßig hoch. Bei der Kombistrategie würde ich verkaufen, sobald die Kombi > 62 EUR (nach Nebenkostenabzug) hat. Vielleicht. Aber nur, wenn alle möglichen Fälle eintreten (stark steigender/fallender DAX, moderat steigender/fallender DAX, Enge Seitwärtsbewegung und dann noch verschiedene Zeitpunkte vor Fälligkeit) - also bleiben leider eher nur begrenzte Erfahrungsmöglichkeiten. EDIT: Noch eine Ergänzug zur geplanten Kombination der Kombinationsstrategien Wenn der DAX nach oben durchschießt, dann ist vor Fälligkeit die LONG-Variante mehr wert, aber die SHORT-Variante um so weniger. Verkaufst du dann die Longpositionen und hoffst auf ein Zurückkommen des DAX wird deine Strategie vielleicht aufgehen. Aber: 1. warum nicht gleich bei 6200 DAX-Punkten ein Short (Basis 6200) und ein Long-OS (Basis 6200) holen? 2. warum nicht ein Long-OS mit Basis 5600 holen und einen Short mit Basis 6200? 3. warum nicht "nur" long gehen und irgendwann im Plus verkaufen und dann short gehen, weil ja ein Rücksetzer kommen sollte? Ich glaube, letztlich ist die Kombination der beiden Strategien einfach nur teuer und anders einfacher und günstiger umzusetzen.