Alle Inhalte von Mythos
-
Rear View Girls - Los Angeles
Seltsam, die erwähnen gar nicht die Frauen die wie blöd hingestarrt haben. Die meisten Männer versuchen nicht 100% auffällig zu glotzen, aber es gibt ja ein paar Frauen im Video die richtig paralysiert sind... Ein Hoch auf die unvoreingenommenen Medien...
-
Rear View Girls - Los Angeles
Die haben sicher alle die Kamera entdeckt und sich die ganze Zeit gefragt was die für ein Loch in der Hose hat ;) Mal ehrlich, wer würde da von hinten nicht hinschauen?
-
Wie entstehen Backtestdaten?
Thx für die Erklärung. Auch seltsam das es unterschiedlich behandelt wird ob beim High eröffnet und beim Low geschlossen oder beim Low eröffnet und beim High geschlossen wird. Mit Zufallsgenerator meinte ich auch eher das eben "Hausnummern" genommen werden, was ja der Fall ist. Denn in Realität können die Ticks (vor allem das "zuerst Low oder zuerst High" etc) komplett anders hereinkommen. Korrigier mich wenn ich falsch liege, aber ich glaub als Fazit für M1 kann man sagen: Auf M1 ist der Backtest nur annähernd sinnvoll, wenn der EA ausschließlich vergangene Bars beachtet und am besten nur beim OpenTick arbeitet.
-
Wie entstehen Backtestdaten?
Vielen Dank für den tollen Test. Sehr aufschlussreich. Die Werte der Ticks dürften aus dem Zufallsgenerator kommen oder? Bei höheren Timeframes ist es ja verständlich das die kleinen TFs für die Tickgenerierung genommen werden, aber in M1 bleibt nur der Zufallsgenerator. Möglicherweise bedeutet dein Ergebnis das in H1 weniger ticks erzeugt werden, das dort weniger Zufallszahlen zwischendrin entstehen sondern mehr auf die M1 Daten zurückgegriffen wird (ticks bei open, close etc.)
-
Einstieg zu MT4 Programmierung
Hi, vorweg ne kurze allgemeine Erklärung: Die Zusatzdeklaration static bedeutet das diese Variable den Wert bis zum nächsten Aufruf der Funktion behält. Im Gegensatz zu "normalen" lokalen Variablen die bei jedem Funktionsaufruf neu initialisiert werden. Das return(...) legt das Ende der Funktion fest. Es geht also "retour" zu dem Punkt wo die Funktion aufgerufen wurde und der Wert in Klammern wird als Rückgabewert der Funktion verwendet. Ein return(0) bedeutet also nicht "Abbruch" im Sinn von "etwas ist schief gegangen" sondern kann eine ganz reguläre Beendigung (seltsames Wort, ist das deutsch?) der Funktion sein. In dem Fall zB. "kein Kreuzen passiert". @ = vs. == genau = ist eine Zuweisung von rechts nach links , == ist der Vergleich zwischen zwei Werten. Zur Funktion selber: Du hast es teils richtig verstanden ;) Da man am meisten lernt wenn mans selber versucht hier ein paar Hinweise die dir vielleicht helfen (keine Angst, wenns nix hilft einfach sagen, dann helf ich weiter ;): Die Funktion gibt dir die Chance zu prüfen ob 2 Linien sich gekreuzt haben. Zwei Linien haben sich gekreuzt wenn zuvor die eine Linie unter der anderen war, und es jetzt umgekehrt ist. Du musst dir also "merken" wie sie vorher waren und das mit dem aktuellen Stand vergleichen. Gleich auch für alle anderen hier ne Frage: Was ist das "Problem" bei der Verwendung dieser Funktion? (kleiner Tipp: was passiert wenn ich sie nach einem kreuzer öfter aufrufe?)
-
Trading mit T&S, Dom und Orderbuch
Lies den Thread einfach nochmal, genau um diese Frage ging es (u.a.).
-
MT4 Backtest - Historische Daten
Also wenn du die M1Daten importierst sollte er noch nichts umrechnen. Wenn du dann versuchst die M5 Daten zu sehen, geht er her und läd die vom Broker runter die wiederum nicht mit deinen M1 Daten zusammenpassen müssen. Das einzige wo das Historycenter bei mir bis jetzt umgerechnet hat, war wenn man M1 Daten hat, Historische M5 Daten downloaden will, es am Server aber nicht mehr gibt, dann fragt er ob er die History der kleineren umrechnen soll. (War zumindest bisher bei mir so, aber MT ist ja teils leider nit so deterministisch...) Was sehr wohl möglich ist, ist das der Tester selber sich bei Bedarf (also wenn Test auf M15 aber nur M1 Daten da) die Timeframes konvertiert, nur die Frage ob er das in der History speichert, weil sonst wärs sinnlos das jedesmal neu rechnen zu lassen. Schön das du dich freiwillig meldest das gleich ausgiebig zu testen, ein ganz großes Danke im Namen der Community
-
MT4 Backtest - Historische Daten
Darum gehts doch oder? Du nimmst die M1 History und erzeugst dir daraus alle höheren Timeframes wodurch die Timeframes "sicher" zusammenpassen und der Tester nit ständig schreit. Wenn man nur M1 Daten verwendet ist natürlich alles wurscht. Da kann er sowieso nit tiefer rein also bleibt nur der Zufallsgenerator ;) btw. weils grad so schön passt: Warnung vor der "Kontrollpunkte-variante" beim Backtest. Ich hab gerade einen EA getestet der nur am Open was macht, wodurch eigentlich die Open-Preis Variante völlig reichen sollte beim Backtest oder? Auf jeden Fall hab ichs mal mit Kontrollpunkte gerechnet und war über den Unterschied verwirrt. Bei genauerem Hinsehen fällt auf, das die Kontrollpunkte nicht immer am Open liegen. Sprich es passiert, das der erste Kontrollpunkt an dem das Start des EAs ausgeführt wird, schon ein paar Ticks im inneren des Bars liegt. Was irgendwie nit so toll ist, vor allem wenn der EA nur am ersten Tick (also eigentlich Open) was tum sollte. Oder täusch ich mich? Aber es sollte doch "garantiert" sein, das am Open des Bars mindestens 1 Tick gekommen ist.
-
Exchange Guide
Die Exchange besteht aus 3 wichtigen Teilen: Das "Hauptfenster" (das Applet selber) Von hier aus kann man alle anderen Fenster öffnen/schließen, und es enthält die aktuelle Kontoinformation und den Ticker Die Orderliste Enthält alle deine Orders. Standardmäßig werden nur die noch offenen angezeigt. Pro Symbol: Chart, Level2 und Ordermaske 3 eigene Fenster pro Symbol Das Hauptfenster Im Menü kann man für jedes Symbol Chart, Level2 und Ordermaske öffnen. Ein Klick auf den Button "Orders" öffnet die Orderliste. Mit "Refresh" kann man ein aktualisieren erzwingen. Dies ist normalerweise aber nicht notwendig da alle nötigen Daten in Echtzeit per Pushverfahren vom Server gesendet werden. Mit "Logout" beendet man die Verbindung zum Server. Die Kontoinformation enthält alle wichtigen Informationen: den aktuellen Kontostand (Balance) Kontostand plus offene Gewinne/Verluste (Equity) die freie Margin (Margin), sinkt diese unter 0 besteht das Risiko eines MarginCalls! Sinkt der Kontostand stark "genug" ab so erscheint hier ein Reset-Button mit dem man selbstständig sein Kontostand auf den Anfangswert zurücksetzen kann. Achtung: Ein Zurücksetzen des Kontostandes ändert nichts an den offenen Positionen! Tickerliste Hier wird eine Liste aller vorhandenen Symbole, deren letzter Kurs inkl. Zeitpunkt und Information über die eigene Position in diesem Symbol angezeigt. Ein Klick auf "Close" schließt die gesamte offene Position in diesem Symbol per MarketOrder. Achtung: Bestehende offene Orders in diesem Symbol bleiben unverändert. Die Orderliste Standardmäßig werden hier alle noch offenen Orders angezeigt. Bei Bedarf kann man durch aktivieren der Checkboxen auch die ausgeführten, gelöschten und stornierten Orders anzeigen lassen. Pending Orders lassen sich durch einen Klick auf den Eintrag "Löschen" löschen (es erfolgt noch eine Sicherheitsabfrage). Sobald die Order zumindest teilausgeführt ist, kann man sich durch klick auf "Zeige Ausführungen" anzeigen lassen wann und zu welchem Preis man gefillt wurde. Chart, Level2 und Ordermaske Chart Zur Auswahl stehen Linechart und Candlestickchart in den TimeFrames M1,M5,M15,M30,H1,H4,D1 und W1. Im Candlestickchart wird zusätzlich im unteren Drittel das jeweilige Volumen angezeigt. Mit dem Schieberegler ist es möglich die Anzahl der angezeigten Balken/Einheiten zu verändern. (Eine Veränderung der angezeigten Balken ändert nichts an der Zoomeinstellung!) Beachte die Infos zum neuen Chartmodul im nächsten Post! Level2 (Details zur Bedeutung von Level2 Daten findest du hier) Die Tabelle ist geordnet nach Preis und gibt zu jedem Preis im Bereich an wieviele Limits dort stehen. Zusätzlich gibt es die Spalten "Own Stop" in der die eigenen Stops angezeigt werden und "Own Limit" in der die eigenen Limits stehen. Ein Klick auf einen 0-Eintrag in der "Own Limit" Spalte (funktioniert auch in der "Price" und "Limit" Spalte) öffnet sofort die Ordermaske mit Ordertyp auf Limit und dem entsprechenden Preis voreingestellt. In der Spalte "Own Stop" passiert das gleiche mit voreingestelltem Ordertyp Stop. Klickt man in "Own Limit" oder "Own Stop" auf einen Eintrag ungleich 0, so werden alle eigenen Limit bzw. Stop Orders zu diesem Preis gelöscht (natürlich mit vorheriger Sicherheitsabfrage). In dem Textfeld über der Tabelle kann man den Bereich (Abstand vom aktuellen Kurs) angeben der angezeigt werden soll. Sind Einträge in der Level2 Tabelle veraltet (weil man zu viele Daten anzeigen will und der Server mit dem Senden nicht nachkommt zB) so werden sie grau hinterlegt. Ordermaske Hier kann man neue Orders erstellen. Details zu den Orderarten gibt es hier. Ist als Ordertyp "Market" ausgewählt so ist das Eingabefeld für den Preis deaktiviert da MarketOrders keinen Preis haben. Durch Klick auf "BUY" oder "SELL" wird die Order gesendet. Durch aktivieren von "One Click Execution" wird die Sicherheitsabfrage übersprungen und die Order direkt gesendet. Ein Infofenster bestätigt das Senden der Order. Ob sie beim Server angekommen und durch den Clearingalgorithmus gelaufen ist, erkennt wenn sie in der Orderliste auftaucht. Achtung: Möglicherweise wird die Order sofort ausgeführt oder storniert (aufgrund fehlender Margin). Happy Trading und viel Spaß.
-
Beruf Traden - Akzeptanz in der Gesellschaft
wieso Ohrstäbchen? Wenn wer nachfragt was du Powersellst sagst "Pornos"... bin mir sicher das Thema is noch schneller gewechselt als wenn du von Trading anfangst. Und sie machen dich nicht für die Finanzkrise verantwortlich ;)
-
Betatest startet...
...mit Wartungsarbeiten am Server Bisher (eine ganze Woche) bin ich verschont geblieben, aber prompt zum Start vom Betatest führen die natürlich welche durch. Zuerst hab ich schon gedacht die paar Betatester hätten gleich meinen Server gekillt. Aber dafür hab ich jetzt die Emailbenachrichtigung aktiviert, und für alle die noch bei hosteurope anfangen: Achtung, die Benachrichtigung über Störungen ist scheinbar nicht standardmäßig aktiviert. Wozu auch, wer will schon wissen wenn sein Server nicht erreichbar sein wird?! Egal, jetzt gehts wieder. Und ich sollte endlich die Startskripte in den "Autostart" legen. no worries mythos
-
Einstieg zu MT4 Programmierung
Was es im EA tun soll kann man schwer sagen wenn man nicht weiss wie die Variablen verwendet werden. Aber man kanns rein syntaktisch durchgehen: Die if ist erfüllt wenn MacdCurrent<0 der Wert der Variable MacdCurrent kleiner als 0 ist UND MacdCurrent>SignalCurrent der Wert von MacdCurrent größer als SignalCurrent UND MacdPrevious<SignalPrevious der Wert von MacdPrevious kleiner als SignalPrevious UND MathAbs(MacdCurrent)>(MACDOpenLevel*Point) der Absolutwert von MacdCurrent größer ist als (MACDOpenLevel*Point) UND MaCurrent>MaPrevious MaCurrent größer ist als MaPrevious. Rein von den Variablennamen könnte man vermuten das es so gemeint ist: Wenn der Macd negativ ist und zwar weiter weg von 0 als MACDOpenLevel*Point und der MA aufwärts geht und der Macd durchbricht die Signallinie von unten, dann tu ...
-
Beruf Traden - Akzeptanz in der Gesellschaft
- Hintergrundwissen
Die Orderausführung (aka Clearing) Das Kernstück einer jeden Börsensoftware ist natürlich die Orderausführung. Hier nun eine Beschreibung welcher Ausführungsalgo bei der Exchange implementiert ist: Grundsätzlich wird nach Preis-Zeit priorisiert. Als erstes werden also immer die Orders zum besten Preis ausgeführt und wenn es davon mehrere gibt, zuerst jene die schon am längsten im Orderbuch stehen. Neue Orders werden nach Ordertyp unterschieden: Neue Market(BUY/SELL)Order Gibt es unausgeführte Market(SELL/BUY)Orders werden diese sofort gegeneinander ausgeführt. Preis ist das Minimum/Maximum zwischen zuletzt gehandeltem Preis und kleinstem/größtem Limit(SELL/BUY) (falls vorhanden). Nach den unausgeführten Markets werden die Limit(SELL/BUY)Orders nach Preis-Zeit sortiert abgearbeitet. Preis ist immer das Limit der LimitOrder da dies den besten Preis für die neue Order darstellt. Neue Limit(BUY/SELL)Order mit Limit X Gibt es unausgeführte Market(SELL/BUY)Orders werden diese sofort gegeneinander ausgeführt. Preis ist das Minimum/Maximum zwischen zuletzt gehandeltem Preis und X (Limit der Order), wiederum der bestmögliche Preis für die neue Order. Nach den unausgeführten Markets werden die Limit(SELL/BUY)Orders nach Preis-Zeit sortiert abgearbeitet. Wenn X größer/kleiner ist als das Limit der anderen Order so ist eine Ausführung möglich. Preis ist immer das Limit der Order aus dem Orderbuch da dies den besten Preis für die neue Order darstellt. Gibt es keine Überschneidung der Preisbereiche, so ist keine weitere Ausführung möglich (aufgrund der Sortierung nach dem Preis) und die Order wird ins Orderbuch eingehängt. Neue Stop(BUY/SELL)Order mit Stop Y Ist Y kleiner/größer als der zuletzt gehandelte Preis, so wird die Order sofort getriggert und als Market(BUY/SELL)Order ausgeführt. Ansonsten wird sie direkt ins Orderbuch gehängt.- Coding 15.2.
Is wiedermal Zeit für einen "Tagebucheintrag". Hallo zusammen, Es ist einiges weitergegangen. Es gab ein paar böse Bugs im Clearing (hat mir Short positionen nicht geschlossen sondern vergrößert... nit gut ;) und ein paar Designtechnische Verbesserungen (hoffentlich). So sieht man jetzt wenn der Chart gerade neue Daten ladet, wieviele Daten vorhanden sind und er ladet die Daten jetzt auch wirklich *G* Zum besseren Feeling hab ich auch einen Logout Button eingebaut und die faden Standardlogos der Fenster durch provisorische eigene ersetzt. (Wenn jemand künstlerisch begabt ist und eine gute Idee hat: immer her damit ;) Achja, der Chart hat endlich auch ein Volumen (also der Server schickts endlich mit ;) und inzwischen gibts eine Trafficbegrenzung pro User. Wenn zuviele Daten innerhalb von 5 Sekunden gesendet werden, wird erstmal zurückgeschalten und nur mehr das nötigste an den User gesendet (damit nicht einer mit Unmengen an Chart und LEvel2 Anfragen das ganze blockiert). Jo, php hab ich auch ein bissl was weitergewerkelt. Der Login wird jetzt geprüft BEVOR das Applet startet und ohne korrekten Login kommt man gar nicht zum Applet. Und es gibt endlich eine Möglichkeit das Passwort zu ändern. Alles in allem ist das web-teil aber sehr einfach gehalten, ich kenn mich ja auch nit wirklich aus damit. In Summe kann man sagen: Server stabil, Code nicht schön aber ok, Client besser aber noch nicht perfekt. Spass am damit rumspielen testen: garantiert ;) no worries mythos- Stoploss Message
Vorsicht: ich hab schon von Brokern gehört die um Mitternacht die OrderTickets irgendwie neu verteilen. Also wenn man sich das Ticket speichert kann das auch zu Problemen führen. Nur als Warnung. Edit: Man kann natürlich auch jedesmal die gesamte History durchgehen und schaun was als letztes geschlossen wurde, merkt sich die OrderCloseTime() der zuletzt geschlossenen Order, und das nächste mal sind alle Orders deren CloseTime darüber liegt "neu". Dann noch checken ob ausgestoppt oder TP oder einfach so geclosed.- Hintergrundwissen
Das Orderbuch und Level2 Wird eine neue Order bei der Exchange hinzugefügt/gesendet, so wird zuerst versucht diese sofort auszuführen. Ist dies nicht möglich so wird die Order im Orderbuch gespeichert. Zur Vereinfachung werden sie gleichmal nach Limit/Triggerpreis sortiert. Die MarketOrders die nicht ausgeführt werden können (was normal nicht vorkommen sollte, kann aber passieren) kommen in einen Topf (hier gibt es ja keinen Limit oder Triggerpreis). Zum Glück kann es nie vorkommen das Kauf- UND Verkaufsorders gleichzeitig im Topf liegen. Für die Limitorders gilt: Das höchste Limit bei den unausgeführten LimitBuys ist immer kleiner als das kleinste Limit bei den unausgeführten LimitSells. Denn würden sie sich überlappen könnten diese Orders ausgeführt werden. Dadurch kann man das Orderbuch immer in den Käuferbereich und den Verkäuferbereich trennen. Bei den Stops sind die Bereiche genauso getrennt aber vertauscht: über dem Preis sind die StopBuys darunter die StopSells. Was aber sehr wohl sein kann, ist das sich zB StopSells und LimitSells überschneiden (obwohl sie eigentlich auf unterschiedlichen Seiten liegen). Das passiert zB wenn es wenig LimitBuys gibt (vor allem keine knapp unter dem letzten Preis) aber die LimitSells immer tiefer wandern (also immer neue mit tieferen Limits dazukommen). In dem Fall liegt dann auch der letzte Preis nicht mehr zwischen LimitBuys und LimitSells. Deswegen spricht man auch vom letzten Preis (bzw. letzten gehandelten Preis). Denn er ist genau das und nicht mehr. Es gibt keine Garantie das man zu diesem Preis wieder handeln kann, noch das man überhaupt in der Nähe davon wieder handeln kann, es ist nur ein Hinweis wo gerade was passiert ist. Level2 Information Diese Information aus dem Orderbuch will der Trader jetzt natürlich sehen und das kann er in eingeschränktem Maße in der Level2 Information, teils auch als DOM bezeichnet. Aus Datenschutzrechtlichen Gründen zeigt man natürlich nicht wer genau was kaufen will, dafür fasst die Level2 Info alle Limits bei einem Preis zusammen. Zu jedem Preis gibt es also die Anzahl (genauer gesagt die Summer der Positionsgrößen) der noch offenen Limitorders bei diesem Preis. Achtung: In der Level2 werden nur die Limits angezeigt, nicht die Stops und auch keine Markets (die es normal eh nicht unausgeführt gibt). Man muss natürlich unterscheiden können ob die angezeigte Zahl zu LimitBuys oder LimitSells gehört (beides kann es ja nicht sein). Das passiert meist (auch bei der Exchange) durch eine Farbmarkierung. Grün bedeutet LimitBuy, Rot LimitSell. Level2 Info gibt damit einen sehr guten Überblick über die aktuelle Marktlage bzw. die Verteilung von Angebot und Nachfrage. Vor allem sieht man sehr schön gewisse Widerstände wo sich der Kurs erst durch einen größeren Block an Orders "durchfressen" müsste um weiter zu steigen oder zu sinken. Aber nicht vergessen: Orders können auch wieder gelöscht werden und es kann sein, das ein Großer nur den Anschein erwecken will das hier ein Widerstand herrscht, aber sobald der Kurs in die Nähe kommt seine große Order einfach rauslöscht. In der Exchange gibt es noch 2 zusätzliche Spalten in denen die eigenen Limits und Stops als zusätzliche Hilfe mitangezeigt werden. Dadurch sieht man schnell wo man noch welche Orders im Markt hat.- Hintergrundwissen
Die Orderarten (die es bei der Exchange derzeit gibt) Lt. meines Wissen gibts im wesentlichen 3 Orderarten, die jedoch teils dann noch kombiniert werden. Derzeit sind genau die 3 "Grundarten" eingebaut die da wären: MarketOrder Vermutlich die Order die die meisten "kleinen" Trader verwenden. Jedesmal wenn man einfach nur auf KAUFEN oder VERKAUFEN drückt sendet man eine Marketorder. Der Name an sich ist hier auch Programm, man geht auf den "Markt" und sagt (zB) "Ich will 3 Stück kaufen, für den besten Preis den ich bekomme!". Man merkt hier schon das "besten Preis" nicht sehr spezifisch ist. Es kann ja passieren das gerade sehr wenige Leute etwas anbieten (wenn überhaupt). Dadurch kann es bei dieser Orderart auch zu sehr hoher Slipage führen. Wenn zB der letzte Preis bei 1000 stand, man will 3 kaufen, aber es werden nur 1 für 1050 und 2 erst bei 1100 angeboten. Dann kriegt man mit der MarketBuy genau diese "besten" 3 Stück, obwohl man die Order bei 1000 abgesetzt hat. Ich hab schon öfter erlebt das sich die Leute bei Kiwee geärgert haben das sie nicht verkaufen konnten bevor der Kurs gefallen ist, ohne zu merken das ihre Marketorder selbst den Kurs nach unten gerissen hat. LimitOrder Vermutlich die meistverwendete von den Pros, zumindest wie ich das verstanden hab. Hier geht man auf den Markt und sagt "Ich will 3 Stück kaufen für maximal 1000 Euro" bzw. im Verkaufsfall eben "mindestens x Euro". Also ein sehr natürliches Verhalten, man hat einen Bedarf und ein Limit wieviel man zahlen will. Wenn man jetzt eine solche Order in den Markt stellt, kann es passieren das es passende Angebote gibt die den eigenen Wünschen entsprechen (also im Fall einer LimitBuy entsprechende Verkaufsangebote unter meinem Limit) oder auch nicht. Wenn es bereits Angebote gibt, kann es sein das man einen besseren Preis bekommt als sein Limit war. Kann die Order aber nicht sofort ausgeführt werden, so wird sie ins Orderbuch gehängt und wird Teil der Level2 Info. Ab dem Zeitpunkt wird man sicher nur zum Limitpreis ausgeführt, denn jede neue Verkaufsorder, bekommt den eigenen Limitpreis als bestmöglichen Preis. StopOrder beim Stop geht es darum zu sagen "Wenn der Preis über 1000 Euro steigt, will ich kaufen". Das geht natürlich weder mit einer Limit (die würde sofort ausgeführt solange der Preis unter dem Limit ist) noch mit der Market, weil die wird sofort ausgeführt. Bei der Exchange sind Stoporders eigentlich Market-if-touched Orders. Sprich wenn der Stoppreis (trigger) erreicht wird (also bei Stopbuy Preis >= trigger, bei Stopsell Preis- Idee und Motivation
Die Grundidee der Exchange: Das "Experiment" einen Börsenplatz zu Erzeugen wo fiktive Assets ohne jeden Bezug zur Realität aber nach den realen Regeln der Börse gehandelt werden können. Sprich es ist kein Börsenspiel im klassischen Sinn wo jeder Teilnehmer reale Aktien kaufen kann und dann das theoretische Portfolio aufgrund der realen Kurse läuft. Sondern der Kurs bewegt sich, wenn es Kauf und Verkauforders gibt die ein matching erlauben. Der Kurs wird also von den aktiven Usern produziert und nur von den Usern. Die Motivation für die Exchange: Im wesentlichen gibt es 3 wichtige Motivationen für die Entwicklung: Das Thema Börse ist derzeit viel in den Medien und im Blickpunkt der Öffentlichkeit. Die einen verteufeln sie, die anderen wollen Millionen verdienen aber die meisten wissen nicht wie sie funktioniert. Selbst "Börsenteilnehmer" wissen teils nicht wie der Kurs wirklich entsteht. Die Exchange soll hier zur Aufklärung mithelfen. Denn hier kann man als User völlig frei die Mechanismen selbstständig erforschen, direkt erfahren welchen Einfluss die eigenen Orders haben, was die Ordertypen wirklich bedeuten und damit wie der Kurs eigentlich entsteht. Als "Anhänger" der technischen Analyse finde ich die Frage spannend "Was passiert mit einem Kurs der frei von realen Einflüssen ist?". Welche Faktoren spielen eine Rolle? Gibt es ähnliches Verhalten wie an der realen Börse oder komplett neue Muster? Bewegt sich der Kurs überhaupt? Es ist ein spannendes Spiel und für Börsensüchtige ein top Ersatz fürs Wochenende, denn die Exchange wird 24/7 laufen. Das waren zumindest die Hauptmotivationen als das Projekt gestartet ist, inzwischen ist es zusätzlich noch ein gutes Programmierübungsprojekt. Was ist die Exchange? rein technisch gesehen ein Java Applet das sich zum Server verbindet auf dem ein Clearingalgorithmus läuft. Also im wesentlichen Börsensoftware, Brokersoftware und Handelsplattform in Einem. Die Exchange ist somit eine voll funktionsfähige Börse (wenn auch mit weniger Möglichkeiten als zB die EUREX ;) auf der man mit virtuellen Credits, virtuelle Assets handeln kann. Es werden nur Endlosfutures gehandelt, man muss sich also keine Gedanken um auslaufende Kontrakte machen und kann völlig frei long und short gehen (also kaufen und auch leerverkaufen). Unterschied zwischen der Exchange und einem Börsenspiel: Bei der Exchange entsteht der Kurs rein aufgrund von Angebot und Nachfrage. Wie an der echten Börse werden Kauf- und Verkaufsaufträge gegeneinander abgeglichen und sofern möglich ausgeführt wodurch sich der Preis bewegt. Der Kurs ist also nur durch das Verhalten der User beeinflusst. Zusätzlich gibt es keinerlei fundamentale Daten über die Assets die das Verhalten der User beeinflussen könnten. Es geht also rein um technische Analyse und Emotionen.- The Story Behind
Wie alles begann Vor etwas längerer Zeit (weiss gar nicht mehr genau wann) ist im Rahmen eines der vielen Gespräche in meiner alten Studenten WG von einem WG Kollegen plötzlich die "blöde Idee" gekommen so eine Börse selber zu schreiben und User im kleinen Kreis gegeneinander traden zu lassen. (Genaugenommen wars als Gegenaktion zu den LAN Parties meines anderen WG Kollegen geplant ;) Die Idee hat uns beide so fasziniert das wir das Projekt gleich angingen. Von Anfang an wars klar das es ein größeres Ding ist und wir noch viel lernen mussten, aber wir hatten ja Zeit. Schnell war klar das mit wenigen Usern das ganze sehr fad werden würde und wir eine Art "simulierte kritische Masse" brauchen die im Hintergrund zufällig mit sich selbst handelt und dadurch einen Kursverlauf erzeugt bis genug User aktiv sind. Wir nannten das Ding MarketMaker und es war ein toller Moment als wir das erste Mal einen zuckenden Kurs unserer eigenen Börse auf dem Schirm hatten. Exchange goes Web? Aber mit ein paar Freunden in der WG kommt man nie auf eine kritische Masse. Also entstand der Wunsch das Ding webbasiert zu machen. Da es sowieso schon fürs Netzwerk ausgelegt und DB-basiert war, war der Schritt an sich nicht weit... Nur das keiner von uns sich mit web-programmierung auskannte. Tjo blöd. Nach ein paar Versuchen und einem sehr primitiven, ersten, Typo3-basierten Interface das nicht wirklich unseren Vorstellungen entsprach, versuchten wir einen neuen WG Kollegen ins Boot zu holen der (angeblich) Ahnung davon hatte. Leider war er von dem Projekt nicht ganz so Feuer und Flamme und dieses Interface kam nie wirklich zustande. Kiwee@TradeScout(Damals gab es nur ein Symbol zu handeln, die Kiwees. Deswegen der ursprüngliche Name "Kiwee Börse") Dann kam die Idee das ganze in TradeScout zu integrieren (die Plattform die ich damals gerade mit ein paar Freunden startete) einerseits weil hier schon die Plattform vorhanden war, es gut ins Konzept passte und unser super Admin tarator über das nötige Know How verfügte! An dieser Stelle nochmals ein großes Danke an ihn für die Mithilfe. Kleine Anmerkung: Die Exchange ist inzwischen MultiCommunity und sowohl von TradeScout als auch von TomNext erreichbar, frei nach dem Motto "Mehr User, mehr Spaß" ;) Hier war die Begeisterung und Motivation größer und bald ging die erste Version (html basiert) online. Nach einigen Weiterentwicklungen wurde aber bald klar das ein HTML basiertes Interface eine solche App nicht aushält da der Apache schon bei "wenigen" Usern in die Knie geht, und das ohne realtime sondern mit bis zu 3 Sek Verzögerung (also 3 Sekunden Intervall der Requests, nicht Wartezeit auf die Replys). Zusätzlich entstand bei mir der Wunsch mehr als ein Symbol handeln zu können um Abwechslung zu schaffen und sowohl erfahrenen Tradern wie auch Neulingen Interessantes zu bieten. Also mussten wieder Alternativen her. Exchange meets Java (nein nicht die Insel) Schließlich entschied ich mich ein bissl Java zu lernen und zu versuchen einmal das ganze HTML Zeug in ein Applet zu packen das dann nur mehr einen Request pro Aktualisierung schickt. Aber natürlich ist auch das nicht ausreichend, denn Realtime bedeutet auch keine 1s Verzögerung, und jeder webadmin wird mit Beipflichten (hoff ich zumindest) das selbst konstante 10 Request pro Sekunde einen normalen Webserver deutlich beanspruchen. (Selbst bei rocketscience Tom Next brauchen die Replys schnell mal 0.3 Sekunden...) Tjo also wieder rein in die Java Bücher und Tutorials, und tata: das Einzige was bleibt ist eine ausgewachsene Client/Server App. Leider nicht die einfachen im Lehrbuch wo der Client einen Request stellt und der Server antwortet (AFAIK nennen sie das synchron) sondern der Client muss Request schicken können die beantwortet werden (zB neue Orders oder Chart/Level2 Abfragen) und unabhängig davon muss der Server jedem Client Updates schicken sobald sich was geändert hat (also asynchron). Also im so genannten Push-Verfahren. Sonst hat man wieder Unmengen Request ohne Sinn. Es ging also immer tiefer in die Materie. Ich hab viel gelernt und der Source ist gewachsen und gewachsen und gewachsen. Inzwischen schrecken mich Begriffe wie Multithreading, Threadpools, DBPools, asynchrone Kommunikation etc. weit weniger als noch vor 2 Jahren ;) Dann kam die erste Version die lokal toll funkte aber über einen realen Server irgendwie nicht so ganz rund lief. Also wieder ran und debuggen. Als es dann endlich "rund" lief, stand Australien vor der Tür und es war erstmal Pause angesagt. "Leider" hatte ich in Oz viel Zeit zum Nachdenken und ich bin mit einer ganzen Liste an Verbesserungsmöglichkeiten nach Hause gekommen, die jetzt alle eingebaut werden wollten. Dafür wurde das ganze Projekt jetzt immer "runder" und schöner. Tjo und dann gings online und seither wird mehr geschraubt und verbessert als je zuvor ;)- Mein Virtuelles Trade Panel
Hi Bernd, klingt nach einem tollen Tool. Vor allem super das du es hier frei zur Verfügung stellst d.h. du arbeitest rein über die Dll? Vermutlich einen tick schneller oder? lg- Offizieller Betatester Aufruf
Klingt als würdet ihr denken das der BetaTest nur ein paar Stunden dauert ;) Das ganze läuft so ab: Sobald er offiziell startet sind die Betatester als User angelegt und können je nach eigenem Terminplan mit der Exchange rumspielen. Der einzige Unterschied zum Echtbetrieb ist, das es noch "wahrscheinlicher" ist das etwas nicht 100% funkt, und das solche Fehler dann bitte gemeldet werden. So ein Betatest kann schon mal ein paar Wochen dauern, es gibt Apps die eigentlich nie aus der Betaphase rauskommen, weil ständig was verbessert wird ;)- Einstieg zu MT4 Programmierung
Eigentlich ist schon genug gesagt worden, aber ich hab versprochen das ich antworte ;) Ja, jörg hat sich hier vertan und Finger hats übersehen (und wir anderen auch). An alle Neuen und SilentReader sei dieser Beitrag auch nochmal eine Demonstration, das man vor allem hier (in diesem Thread, aber auch im restlichen Forum) auch in einem angestaubten Thread jederzeit nachfragen darf wenn was unklar ist! Traut euch einfach, wie ihr seht lauern hier manche regelrecht in den Startlöchern und wetteifern wer schneller hilft ;) @WOGO und RAiNWORM:- Aktien werden an der Börse gekauft? Nein!
Wenn schon so bunt und "laut" dann bitte auch korrekt. Aktien werden an der Börse ge- und verkauft. Aber eben nicht nur dort. Wusste ich auch nicht, also danke für die Info. Aber wenns geht bitte das nächste mal die ganze Wahrheit. Seiten mit reißerischen Halbwahrheiten gibts im Netz schon genug.- MemoryLeaks in Java...
Javadoc kenn ich danke ;) Ok dann wars nicht das ResultSet sondern nur das Statement. - Hintergrundwissen