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.

Mythos

Moderatoren
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Mythos

  1. Stimmt, außer die Kommentare im Code werden dann nurmehr als ? angezeigt, oder noch schlimmer die Variablennamen... Aber ich geb dir total recht, vor allem: wenn ich für jeden Mini EA 1000 Euro krieg, code ich das mit der Zeit am Laptop unter der Palme ;) (und da es in Österreich keine Palmen gibt, muss ich dafür ins Ausland ;) (Das nachträgliche Ändern von Regeln und adaptieren des Systems entspricht ja mindestens einem neuen und kostet damit auch jedesmal 1000 Euro *lol*)
  2. *Holy Crap* Weil es ja soooo einfach ist ein Handelssystem zu entwickeln. Abgesehen davon, das MQL die IMO schwerste, derzeit verfügbare "Tradingprogrammiersprache" ist. Selbst wenn man von einem Trader ausgeht, der sich am Markt auskennt: Im Allgemeinen sind sämtliche Ansätze, die ein diskretionärer Trader (also ein Nicht-Programmierer) hat, in dieser Form nicht automatisierbar, weil meist so schöne Begriffe wie "wenn der Markt nach oben geht" oder noch besser "wenn der Markt gerade bullish ist dann..." in den Regeln vorkommen. Und vor allem immer so vollständig... Versteh ich das eigentlich richtig was der Typ da erzählt? "Sie liefern die automatisierbaren Regeln, und "wir" programmieren genau diese Regeln für 1000 Euro in einen EA"? Also ohne gemeinsame Entwicklung, Verbesserung, Realitätskontrolle? An die Coder: Hat irgendjemand von euch schon mal ein Regelset aufgestellt, implementiert und dann den EA so belassen (und als gut befunden ;)? Für einen halbwegs guten EA muss man IMO zumindest einige Tests durchführen und die Regeln teils adaptieren, ergänzen, weglassen... oder war ich bis jetzt beim Regeln aufstellen einfach nur zu dumm? (ich mein klar, wenn man schon 100 Trendfolgesysteme der verschiedensten Art gecodet und getestet hat, wird man beim 101. sehr wahrscheinlich schon beim Regelausdenken was sinnvolles produzieren, aber ich red jetzt von EA Nr. 0 ;) Aber man soll ja nix ausschließen, also wenn sich jemand von diesem Interview motiviert fühlt: Ich implementier gerne einen exakt definierten Regelsatz in einen voll funktionstüchtigen EA. Und weil ich heut so gut geschlafen hab sogar zum Sonderpreis von sage und schreibe 900 Euro. (Ein echtes Schnäppchen im Vergleich zu den horrenden 1000 Euro die Herr Hahn da veranschlagt ;) Anfragen einfach per PM an mich
  3. *lol* Wollen wir das nicht alle? (ok das mit den E*** schaukeln fällt für proudroses aus, aber sonst ;) Im Prinzip schon, hier geht es zwar hauptsächlich drum anderen bei Problemen und Fragen zu helfen, aber wenn sich dabei mal so ein E***-Schaukel-EA ergibt wird keiner beleidigt sein ;) Ich persönlich hab nur noch nie gesehen, das ein solcher EA einfach so zum Download steht... ;)
  4. Dann mach ich gleich mal weiter, was mir als Entwickler noch einfällt: Vorteile -Einbindung beliebiger externer DLLs einfach möglich, dadurch sehr große Möglichkeiten Nachteile - keine Möglichkeit zum Backtest von Portfoliostrategien - ineffizient bei Arrays (scheinbar nicht konstante Zugriffszeiten)
  5. sollte es auch, aber das macht man normalerweise ja nicht mit Dateinamen sondern per SVN etc. die Dateinamen selbst müssen konstant bleiben, oder ständig in allen include-Anweisungen, makefiles etc geändert werden. vergisst man dann einen Eintrag zu ändern ist das Chaos perfekt weil gemischte Versionen verwendet werden etc. Also ich hab noch nie gesehen das die Dateinamen geändert werden. (zumindest nicht in der Entwicklung)
  6. gute Frage, vor allem im Entwicklungsbereich (nicht nur hier) ist die Frauenquote noch recht gering... Versteh aber nicht warum, Frauen können mindestens genausogut programmieren oder? ;)
  7. das würd ich nicht, weil dann müsste man bei neuer Version alle EAs die die TradeBox verwenden, umschreiben und neu kompilieren. Aber bei einer Lib gehts genau darum, das man sie ändern/debuggen/erweitern kann und damit alle bereits geschriebenen EAs sofort weiter funzen. Die Versionsnummer in den Dateinamen zu schreiben UND diesen Vorteil der Lib nicht zu verlieren, würde bedeuten, jeder der sie runterläd, muss die Datei händisch umbenennen. Ich find die Versionsnummer im Header reicht, vor allem weil die Versionsnummer eh im laufenden Betrieb auch angezeigt wird. Ich schreib auch immer die aktuelle Versionsnummer im Downloadbereich dazu... Ist für meine Begriffe genug Redundanz ;)
  8. Genial Formuliert ;) Das ist mal eine praktische Analogie!
  9. jup, wird aber eher keinen Fehler beim Comiler liefern. Ich hab nur gefragt, weil ich ja auch einen Codeteil gepostet hab ;)
  10. Auch von mir ein herzliches Willkommen! *g* dann bist du in guter Gesellschaft ;)
  11. aktuellste Version 1.02, der Bug in der Preis normalisierung sollte jetzt endgültig behoben sein (Es stand noch ein MathMax wo ein MathMin stehen sollte ;) Ich hab die Datei in "TradeBox" umbenannt, weil wir es eh die ganze zeit so nennen ;) Im Header ist jetzt eine Art Public License inkl. Disclaimer, der bei uns auf der Uni meist verwendet wird. Es steht mal mein Name im Copyright. Wie gesagt, ich schreib gern weitere Namen dazu, ich will nur nix ohne Einverständiss machen.
  12. Welcher Codeteil jetzt genau? Stimmt, "automatisch" ist vielleicht ein bissl übertrieben, aber wenn man das Grundprinzip vom programmieren wirklich verstanden hat, ist der Rest (also syntax, Schleifen etc) rein technisch.
  13. Ja, der hat mir letztens wieder ein paar Felle und Antilopen vorbeigebracht SCNR
  14. Mythos antwortete auf Mythos's Thema in Think Tank
    Vektor im Sinne von einer Sequenz fixer Länge, die alle Werte enthält um den aktuellen Zustand zu beschreiben. Man kann den Zustand natürlich auch anders beschreiben, aber für die automatisierte Umsetzung ist ein Vektor IMO die beste Variante. Im einfachen Beispiel von oben wäre zb (X-Koord vom Agent , Y-Koord vom Agent) eine mögliche Form. Der Zustandsvektor (0,0) würde dann bedeuten der Agent steht am Start, Der Zustandsvektor (10,1) das der Agent am 11. Feld in der 2. Zeile steht. Für den Markt könnte man zB sagen der Zustandsvektor besteht aus den Closekursen der letzten 10 Bars. Ein bisschen klarer?
  15. Machbar auf alle Fälle, man sollte sich da nur zuerst die "Grundlagen vom Programmieren" aneignen. Also so Sachen wie "Was ist eigentlich ein Programm?", "Was ist eine Variable?", "Was bedeutet Programmablauf?" etc. Ich weiß, sobald man mit Programmieren was zu tun hat sind die Fragen kindisch, aber sie sind grundlegend, um eine Chance zu haben ein Programm zu verstehen. (Find ich halt) Liest du gern? ;) Falls ja, kann ich dir unser "Skriptum" für die allererste Programmiervorlesung von der Uni empfehlen, es ist nur inzwischen als Buch erschienen. "Softwareentwicklung in C" von Klaus Schmaranz Ich weiß, C ist nicht MQL, aber wenn du die Grundzüge von C verstanden hast, ist MQL ein Kinderspiel ;)
  16. Um die Verwirrung zu erhöhen: Ich würds wieder nicht Fehler nennen (falls wir das gleiche meinen), eher unerwünschtes Verhalten. In eclipse würde hier sogar der Compiler warnen mit einer Meldung ala "Bist du dir sicher was du da tust?" Ich hab nix gesagt
  17. Mythos antwortete auf Mythos's Thema in Think Tank
    Natürlich, voll ok Interessent wofür? Den Million Dollar Trading Agent? ;) Das dürfte noch ein bissl dauern. Aber ich bin auf alle Fälle froh das es nicht nur mich interessiert! Ich formulier die Frage nach dem Zustandsvektor mal etwas "allgemeiner": Was denkt ihr? Ist alle Information die man braucht bereits im Kurs/Kursverlauf eingepreist (sprich das dazunehmen anderer Quotes ist sinnlos) oder ist es unbedingt notwendig, will man zB den FDAX handeln, sich auch Öl, EURUSD, DOW etc. anzuschauen? Ich weiß, das ist fast eine Glaubensfrage, aber das machts nur spannender ;)
  18. Die Frage klingt jetzt vielleicht blöd, aber: ist die "schwere" Lesbarkeit (was den Programmablauf angeht) von dem Codestück Absicht oder hat das die Code-Umgebung produziert? Aufgrund der Klammerung ist es nur schwer ersichtlich zu welchem if dieses else gehört. (Order ist das Teil der Challenge? ;) Zu "Bars" vielleicht auch noch eine Anmerkung: Bars ist auch eine Variable, jedoch eine bereits von MQL intern verwendete Variable, die immer als Wert die Anzahl der vorhandenen Bars hat, Vordefinierte Variablen dürfen nicht verändert werden (man kann nur den Wert auslesen, aber keinen neuen Wert zuweisen), das wird vom Compiler verhindert. (weitere vordefinierte Variablen: Close, Open, High, Low, Time, Volume, Bid, Ask...)
  19. kleines Beispiel warum man IMMER (vor allem als Anfänger) diese Klammern verwenden sollte: Beispiel wir schreiben eine kleine if Anweisung: if(fehler == true) return(0); Sprich wenn die boolsche Variable (eine Variable die true oder false sein kann) "fehler" wahr ist, brechen wir das Programm ab. Nach ein paar Tagen testen denken wir uns "Wir sollten nicht nur abbrechen, sondern dem User auch sagen das ein Problem vorliegt". Also ändern wir den Code auf: if(fehler == true) alert("Irgendwas ist schief gelaufen"); return(0); Und jetzt die Preisfrage: Was ist bei dieser Änderung wirklich schief gelaufen, und warum sitzt der Entwickler jetzt weitere 3 Stunden und wundert sich warum der EA plötzlich seltsam reagiert? (zugegeben, ist schon eher eine fortgeschrittene Frage, aber es macht auch für Anfänger Sinn sich darüber gedanken zu machen, bevor man die Lösung erfährt ;)
  20. Um was geht es beim RL (reinforcement learning)? (Hier eine informelle Erklärung, mehr Details auf Es gibt 2 wichtige Punkte: Die Environment und den Agenten. Die Environment ist (wie der Name schon sagt) alles rundherum und wird zu jedem Zeitpunkt mit einem gewissen Zustand repräsentiert. Dieser Zustand kommt aus einem Zustandsraum S, der endlich oder unendlich groß sein kann. Der Agent interagiert jetzt in jedem Zeitpunkt mit der Environment. Nach jeder Aktion des Agenten, ändert sich der Zustand in dem sich die Environment befindet und der Agent erhält einen Reward. Eine "Änderung" passiert eigentlich implizit, indem der Agent erfährt in welchem neuen Zustand die Environment ist. Dieser Zustand kann natürlich gleich bleiben, falls sich nichts geändert hat, bzw. kann natürlich der Agent auch mit der Fähigkeit des "Nichtstun" ausgestattet sein ;). Eine Strategie des Agenten ist nichts anderes als eine Vorschrift, welche Aktion er in welchem Zustand ausführt. Der Agent versucht nun eine Strategie zu lernen, die die erwarteten Rewards auf lange Sicht maximiert. Dieser "Lernvorgang" ist vom Entwickler aber nur insoweit beeinflussbar, als das er die möglichen Aktionen des Agenten bestimmt, das Environment und die Rewardstruktur modelliert. Für endliche Zustandsräume und endliche Aktionsräume kann man die Konvergenz zu einer optimalen Strategie beweisen. Bei unendlichen Zustandsräumen wird das schwerer bis unmöglich. Die Zustandsänderungen und Rewards können natürlich auch stochastisch sein. Kleines "praktisches" Beispiel: Eine simples Schachbrett. rechts oben ist das Ziel, links unten der Start. Der aktuelle "Zustand" ist die Position an der sich der Agent befindet. Der Agent steht zu Beginn am Start und kann nun die Aktionen links, rechts, vor und zurück ausführen. Für jede Bewegung erhält er einen Reward von -1, Erreicht er das Ziel, so erhält er einen Reward von 100 und die Episode ist vorbei. Fällt er vom Brett erhält er -100 und die Episode ist ebenfalls aus. Nach mehreren (hunderten ;) Trainingsläufen, lernt der Agent in diesem Beispiel den schnellsten Weg vom Start zum Ziel zu finden. Und was hat das jetzt mit Trading zu tun? Wähle Zustandsraum: Der Markt. Mögliche Aktionen: Kaufen (zB zwischen 0.1 und 5 Lots), Verkaufen (auch 0.1 bis 5 Lots) und nichts tun. Jeder Bar ist ein Zeitschritt, Der Reward ist die Balance Änderung von heute open (also wo die aktion passiert) bis nächster Bar open. Soweit die Theorie Warum ich das hier poste: Ich bin derzeit dabei mich stark in das Thema einzuarbeiten, und seh da einiges an forschungspotential und möglicherweise Anwendungsmöglichkeiten im Markt. Die Frage die sich mir stellt: Wie modelliert man den Markt sinnvoll? also wie sieht ein Zustandsvektor aus?
  21. In MQL ist es eigentlich egal, da jede nichtinitialisierte Variable den Wert 0 erhält. Bei Erweiterungen von Code wirds nur witzig, wenn man dann denkt, das die Variable hier noch keinen Wert haben muss (weil auf keinen initialisiert), dann was damit macht, und dann draufkommt das sie später plötzlich nicht mehr 0 ist oder so ;) In C ist halt erst recht lustig, weil die Variable dann wirklich den Wert hat, der gerade zufällig dort im Speicher war. immer wieder lustiges debuggen, weil meist ist es 0, aber eben nit immer ;)
  22. Wenn man EAs schreibt, die man vielleicht mal debuggen, erweitern muss/will. Oder die auch andere verstehen sollen. Und zum Ausschließen von Fehlern, ist es IMO besser wenn man zwischen "ohne Wert deklarieren" und "Mit Wert 0 initialisieren" unterscheidet. Sprich: Wenn ich die Variable pommes haben will, diese aber noch keinen Wert haben muss, weil er sowieso kurz später initialisiert wird dann: int pommes; Ist es aber Programmtechnisch wichtig, das pommes auf 0 initialisiert wird. Dann ist es schöner, wenn man dies explizit macht: int pommes= 0; anstatt die automatische Initialisierung zu verwenden. (Bei zB C wird nicht immer auf 0 initialisiert, da handelt man sich dann nur ärger ein ;)
  23. Ich finds super lesbar und (vor allem für Anfänger) super verständlich! Ich würds vermutlich nicht so schön hinkriegen

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.