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. Also das er selber so riskant handelt ist ja seine Sache. Aber ein Abo verkaufen, von 15 000 investiertem Kapital sprechen und dann so handeln das ein Tagesverlust von 7000 möglich ist (immerhin fast 50% ), ist aus meiner Sicht extrem verantwortungslos! Ich hoffe fast das er sich nicht im klaren ist was er da treibt, weil wenn er soetwas vorsätzlich macht... darüber will ich lieber gar nicht nachdenken. Ich hoffe es fallen nicht zuviele Leute auf sowas herein, bzw. wenn dann nur mit genug Kapital sodass das RM wieder in halbwegsen Dimensionen stattfindet.
  2. zur Reihenfolge: Die Reihenfolge spielt (aus sicht des Source codes) nur eine Rolle, wenn 2 System genau die gleiche Performanceentwicklung haben (also momentan gleichen wert von comp), aber unterschiedliche Positionen. das dürfte aber hier selten der fall sein.
  3. Aus congloms Wunsch von hier: Die GRundidee vom MAster (so wie ich ihn implementiert habe): Alle Subsysteme laufen simuliert, der Master greift bei keinem Subsystem ein sondern beobachtet diese nur. Die Subsysteme sagen dem Master in welche Richtung sie gerade Positioniert sind und welche Steigung die Regression der Equity hat. Der Master entscheided dann je nach eingestellter Logik anhand dieser Werte was er tut. Derzeit ist die Logik so: Wenn das System, welches die Beste "Steigung" (also höchste comp-Wert) hat im Markt ist, positionier dich so wie dieses System positioniert ist, sonst tu nix (also bleib positioniert wie du warst). Per Parameter kann man noch sagen ob das Mastersystem auch flat gehen "darf" wenn der beste gerade flat ist, oder es keinen positiven gibt. also wenn alle negativ sind, und einer plötzlich positiv wird, ergibt sich aus dieser Logik, dass sich das System dann gleich positioniert wie dieser einzelne Gewinner. Die Logik ist nur allgemeiner als dieser Spezialfall. (bzw. wenn Unique= true ist sie fast gleich)
  4. Du musst das so sehen: er ist in guter Gesellschaft der anderen "Vertreter", Mathematiker und eigentlich von fast allen dies versuchen... Einen Randomwalk erfolgreich zu traden ist doch "bit of a challenge"
  5. OrdersTotal gibt dir die Anzahl der "noch nicht geschlossenen und nicht gecancelten" ORders an, also alle offenen Orders (inkl. der Pending Orders). Da jede Order selber noch den OrderType weiß, (und da du mit einem EA sowieso nicht nur auf OrdersTotal zurückgreifen solltest) empfiehlt sich eine Schleife der folgenden Art: for(index=0;index < OrdersTotal(); index++) { if(OrderSelect(index,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=magic_number || OrderSymbol()!=Symbol()) continue; //---- check order type if(OrderType()==OP_BUY) //offene LONG Position [...] if(OrderType()==OP_SELL) //offene SHORT Position [...] etc. } wobei in den if abfragen dann jeweils ein counter stehen kann der die offenen positionen etc. zählt, oder die Order direkt bearbeitet (stop nachzieht etc). Damit greifst du mit dem EA auch nur auf die Orders zu, die du "selber" erzeugt hast (magic_number) und auch zu deinem Symbol passen (vorrausgesetzt der EA arbeitet nur mit einem Symbol, ansonsten musst du den Part halt ändern). hth
  6. Mythos antwortete auf dodo's Thema in Welcome @ tom-next
    Auch von mir ein herzliches Hallo! Mit der "EA-Idee" bist du sicher auf dem besten Weg ;). Und auch "dumme" Fragen können sehr sinnvolle Beiträge sein! dafür ;)
  7. Hier ist wieder zu unterscheiden zwischen "Order ausgeführt" und "order an Broker gesendet". Bei einer MarketOrder ist es das gleiche, sonst nicht. Was Krümel meinte: Das Programm "steht" bis die OrderSend-Funktion fertig ist und einen Rückgabewert liefert (so wie bei jeder anderen Funktion übrigens auch). Die OrderSend ist "fertig" wenn vom Broker das Signal "Order korrekt übermittelt und hat dieses Ticket..." kommt, oder eben ein Error. Falls die Order korrekt übermittelt wurde, hast du dann (wie du richtig gesagt hast) OrdersTotal()== 1 bis die offene Order geschlossen (händisch oder durch SL oder TP) oder gecancelt wird. Zum "order vs. Position": vergiss einfach den Namen Order und denk dir die OrderSend funktion als "eröffne Position", und du kannst Positionen per Market eröffnen, per Stop oder Limit. Eine Position kann einen SL und einen TP haben und händisch wieder geschlossen werden. (Heißt ja auch OrderClose). hth
  8. Was man als MT-Neuling vielleicht auch wissen sollte: In MT gilt "Order == Position". Eine gesendete MarketOrder _ist_ ausgeführt. Kann sie nicht ausgeführt werden, kriegst du beim senden einen Error (Requote, busy etc). D.h. eine "offene" MarketOrder ist einfach eine offene Position. Sendest du eine Stoporder und wird diese getriggert, wird sie einfach zu einer MarketOrder und steht damit für eine offene Position. Will man also die aktuellen offenen Positionen wissen, so muss man sich die aktuellen offenen MarketOrders anschauen. Deswegen wird eine Longposition auch nicht mit einer Shortorder geschlossen, sondern durch schließen der LongOrder "die die Position eröffnet hat" geschlossen. hth
  9. Die erste Frage die sich aufdrängt: mit welchem Master wurde gestestet? ich hab die aktuellste Version "analysiert", die alte Version hat noch einen Bug. Und dann kommt der Debugoutput an die Tagesordnung. Print-Statements in die Vergleichsschleife, die alle nötigen Infos ausgibt, und das ganze im visuellen Modus testen. bzw. liefert eine visuelle überprüfung welche trades unterschiedlich sind vielleicht schon erkenntnisse. Wurde mit Unique= true getestet? Wenn ja: wie sieht es bei false aus. Oder hängt es möglicherweise an der einlesfunktion und er liest nur die ersten 2 subsysteme ein? Also die Analysemöglichkeiten sind noch lang nicht erschöpft, jetzt fangt es erst an spannend werden ;) Jetzt kommen die 80% der Arbeitszeit, die beim Systementwickeln immer so lästig sind *ggg*
  10. Wie kommst du zu der Vermutung? aufgrund von Tests oder Analyse des Source Codes? Da es sicher viele Mitleser freuen wird, gehen wir einfach mal Schritt für Schritt die entsprechende Funktion durch, vielleicht finden wir ja den Fehler. [ 1]int getDirection() [ 2]{ [ 3] int index=0,direction=0; [ 4] double current_best=0,slope=0,last_slope=0,roc=0,comp=0; [ 5] bool got_one= false; [ 6] [ 7] for(index= 0;index < ArraySize(systems_);index++) [ 8] { [ 9] slope= iCustom(Symbol(),Period(),systems_[index],RegressionPeriod,AveragePeriod,0,0); [10] if(ROC_Period == 0) [11] roc= slope; [12] else [13] { [14] last_slope=iCustom(Symbol(),Period(),systems_[index],RegressionPeriod, AveragePeriod,0,ROC_Period); [15] if(last_slope != 0) [16] roc= slope/last_slope-1; [17] else [18] roc= 0; [19] } [20] [21] if(CompareSlope) [22] comp= slope; [23] else [24] comp= roc; [25] [26] if(roc > 0 && comp > 0 && got_one && Unique) [27] return(0); [28] [29] if(roc > 0 && comp > current_best) [30] { [31] got_one= true; [32] current_best= comp; [33] if(iCustom(Symbol(),Period(),systems_[index],RegressionPeriod,AveragePeriod,1,0) > 0) [34] direction= 1; [35] else if(iCustom(Symbol(),Period(),systems_[index],RegressionPeriod,AveragePeriod,1,0) < 0) [36] direction= -1; [37] else [38] direction= 0; [39] } [30] } [41] return(direction); [42]} got_one hat die Aufgabe, sich zu merken ob bereits ein System mit Gewinn (im Sinne wie wir es definieren) gefunden wurde oder nicht. Da man wählen kann ob man die Steigung der RegLine vergleicht, oder die ROC der STeigung der RegLine, übernimmt die temporäre Variable "comp" die Aufgabe des zwischenspeicherns. roc= ROC der RegSlope sofern diese sinnvoll definiert ist (slope von vor ROC_Period bars > 0) current_best ist unsere erinnerung, was der bisher beste Wert von comp war, da wir für Gewinn "comp > 0" vorraussetzen, merken wir uns nur dinge die größer als 0 sind, also beginnt current_best bei 0. die for-schleife die in [7] beginnt läuft über den gesamten Rest der Funktion, alles danach passiert also für jedes subsystem, außer wir brechen vorher ab. [9]... wir holen uns den RegSlope aus dem System [10]-[19] wir berechnen die roc des RegSlope. [21]-[24] wie oben erwähnt: comp wird entsprechend gesetzt, d.h. ab jetzt hat slope, roc und comp die Werte für das aktuelle system. [26]-[27] hier kommt die frage nach dem Unique: Unique bedeutet: "Es herrscht ein Signal für den Master, wenn genau 1 System gewinn macht" "Gewinn machen" ist definiert als: positive ROC (also die performancekurve steigt) und positive (slope oder roc, je nach parameter) Wenn jetzt "got_one" true ist, es also bereits ein system mit gewinn gibt, und Unique aktiv ist und das aktuelle system gewinn macht, dann bricht die Funktion ab und gibt 0 retour, was für den Master bedeutet "tu nix" bzw. flat. [29]: current_best speichert den bisher besten Wert von comp der gefunden wurde. (bzw. bleibt 0 wenn es keine werte > 0 gibt) hier wird also abgefragt "Gewinn und besser als alles was bisher betrachtet wurde". Ist die Antwort "ja" so speichern wir uns in [33] - [39] die aktuelle Richtung des Systems in die Variable direction und merken uns mit [31] das wir ein System mit Gewinn haben, und mit [32] den comp-Wert von diesem System Danach beginnt der nächste Schleifendurchlauf und wir machen alles fürs nächste System. In [41] wird nun die gespeicherte Richtung retouniert, sofern nicht vorher irgendwann in [27] abgebrochen wurde. Nach meinem Verständniss, wird also jedes System betrachtet und die Richtung des besten gewinnt. Wo die Reihenfolge eine Rolle spielt, ist wenn 2 Systeme die gleichen Werte für comp aufweisen aber unterschiedliche Marketpositionen haben, dann gewinnt das erste System. Aber diese Sensitivität gegenüber der Reihenfolge kriegt man nicht weg. Wenn man Unique= false setzt, seh ich bei gleichen Subsystemen, nicht wie es zu unterschiedlichen Ergebnissen bei unterschiedlicher Reihenfolge kommt. Sicher das alle restlichen "Umgebungsvariablen" gleich sind?
  11. Mythos antwortete auf Buthus's Thema in MQL Einsteiger
    Überprüf mal die Einstellungen vom EA, du solltest Life Trading zulassen, aber die Checkbox für "manuell bestätigen" sollte nicht angehackt sein, sonst fragt er dich jedesmal ob du das wirklich willst.
  12. ganz großes DANKE für den detailierten Einblick! Du bestätigst viele meiner Vermutungen und "Erfahrungen".
  13. Natürlich, bei entsprechender Liquidität des Marktes muss die Order schon sehr groß sein, um wirklich was zu bewirken. Was ich eigentlich nur sagen wollte ist, das eine Buy Order nicht verantwortlich ist das der Kurs nach unten geht oder? Aus deiner Formulierung klingt es wieder so als würden die LimitBuys darunter den Kurs weiter nach unten ziehen... Nochmal langsam für mich zum mitschreiben: Kann (und wenn wie?) eine LimitBuy Order den Kurs nach unten bewegen (also unter das aktuelle Ask)?
  14. Ich geb dir wohl Recht was den fairsten Preis etc. angeht, die Börse setzt den Preis so fest das möglichst viel gehandelt wird und sie somit möglichst viele Gebühren einnimmt. Und sehr große Orders haben natürlich Einfluss auf den Markt (genauso wie sehr viele kleine Orders gleichzeitig). Nur hat jede Order je nachdem auf welcher Seite eine andere Auswirkung. Wenn ich mich nicht total vertue, ändert eine große Buy-Order unter dem aktuellen Bid zwar das Gesamtverhältniss zwischen Kauf und Verkaufsaufträgen, hat aber genausowenig sofortigen Einfluss auf den Markt wie eine große LimitSell über dem aktuellen Ask. Eine große LimitBuy würde vielmehr (kurzfristig) verhindern das der Kurs unter dieses Limit fällt, da sich erstmal genug Verkäufer finden müssen, die diese Order füllen bevor der Kurs weiterfällt. Oder steh ich gerade total auf der Leitung?
  15. Das musst du mir jetzt genauer erklären, wie können große Buy-Orders den Markt nach unten reißen? Ich hab ja schon einige Varianten getestet wie man den Markt manipulieren und damit Geld machen kann (nicht mit realem Geld und nur unter bestimmten "Vorraussetzungen" versteht sich ;), aber mit großen Buys stützt (bei Limit Buy) oder schießt man den Markt kurzfristig nach oben (bei Market Buy) oder? Hier dürfte eher was großes mit einer MarketSell Stops gefischt haben und hat sich dann auf der ausgelösten Panik nach unten wieder zurück gekauft. (Der 20 Punkte Move zurück nach oben ist ja ein schöner Bounce ;)
  16. Auch von mir ein ganze herzliches "Servus". Also ich bin sicher nicht böse wenn du bei Begriffen etc. nachfragst (ich weiß oft selber nicht wovon ich rede ;), und die ganzen stillen Leser (an die auch mal ein "Servus" *G*) freuen sich sicher! bzgl Anfänger: falls du mal in das feeling von realem traden reinschnuppern willst, ohne dabei echtes Geld zu riskieren, kannst du ja mal beim Beta-Test von Kiwee reinschauen. *ganz unverhohlen Werbung vor der offiziellen Bekanntgabe mach*
  17. Erst das Herz für arme Mathematiker, und jetzt ein gnädiges nicken... Die Woche ist gerettet!
  18. Naja Point is schon "wichtig"... gleich wichtig wie Bid,Ask, Stoplevel, Spread etc... (vor allem weil die letzten zwei in Point angegeben sind;) Ok, es ist ein Skalierungsfaktor, aber die können ja auch wichtig sein... F1 hilft hier wiedermal sehr: "The current symbol point value in the quote currency." Bei EURUSD hast du zB meist Point = 0.0001. Es ist ratsam "absolute" Parameter, wie in diesem Fall die TP-Differenz, in Points eingeben zu lassen, da du damit einen Symbolunabhängigen Fixpunkt hast. hth
  19. stimmt, es gab einen kleinen Bug in Zusammenhang mit dem Unique. Das Problem sollte nur auftreten wenn Unique auf true gesetzt ist (was ich persönlich nicht für sinnvoll halte). hier eine neue Version (geändert haben sich nur 2(4) Zeilen in der FUnktion getDirection()): eSystemOfSystems.mq4 Nochmal zur Erinnerung an alle mitleser: Dieses SystemOfSystems is bewusst sehr allgemein gehalten, es kann also mit beliebigen subsystemen verwendet werden, wenn diese als indikatoren vorliegen, nur 2 Parameter nehmen (RegressionPeriod und AveragePeriod) und als 1. (Line 0) Linie den Regressionslope und als 2. (Line 1) Linie die aktuelle Position liefern. Mehrere Parameter der Subsysteme müssten hardcoded oder per config-file gehandelt werden. mfg
  20. Ich wusste doch ich hab die Reihenfolge der Zahlen falsch... es war schon ARIMA, die 0 ist der AR Anteil (weiß nicht mehr ob das q oder p war). also die 1. Differenz ist eine zufällige Störung. TU Graz. inzwischen im 10. Semester... .... (ich sag ja da laufen die leute alle weg ;) Hm, man könnte doch die durchschnittliche Länge der Phase, an die Steigung der RegLine anpassen oder? Sodass man bei starken Bewegungen schnellere Wechsel erwartet. zu den langen Trends: Ich würde X gar nicht direkt in das System als solches einspielen, sondern eher indirekt. Sprich wir "merken" uns zwar X, aber verwenden es nur, um Y und Z zu bestimmen. Wenn jetzt ein langer Trend ist, dann liefert die RegSlope durchgehend diese Trendkomponente. Ich lass mich auch gern von anderen Grundannahmen überzeugen, ich vermute nur, das wir welche treffen müssen. Und sie sollten sehr basic sein, weil wir ja nichts wirklich wissen... Zu den kurzen Sprüngen: Ich denke es ist schwer mit einem statistischen System schnelle Bewegungen zu traden, wenn man versucht die aktuelle Marktsituation zu traden. Denn da hat man mMn nicht genügend Daten um signifikante Aussagen zu treffen. Um so kurze Bewegungen zu traden, müsste man sie eher vorhersagen (also Marktphasenwechsel). Sprich in unserem System würden so kurze Bewegungen einfach nicht getraded werden, da dann die letzten Z Bars nicht mit den letzten Y zusammenpassen und das Sys damit flat bleibt. Ich denk wir würden hier nur die "durchschnittlichen" Bewegungen handeln, und nicht die außergewöhnlichen. Natürlich, ich schreib nur gern dazu wenns nur eine unausgereifte Idee ist, sonst denkt noch jemand ich wüsste wovon ich rede (Mathematikerkrankheit ;)
  21. Mythos antwortete auf mftkn's Thema in Archiv
    Full ACK!
  22. is ja nur ein kleines kunststoffpfählchen.. außerdem wars ja nur ein Wink ;) und überhaupt: EDIT: ging ja richtig high-speed. Danke! EDIT 2: und jetzt sind sie weg... und mein post steht da wie bestellt und nicht abgeholt
  23. Ich antworte jetzt einfach trotzdem hier, und hoffe das whipsaw oder krümel den mathematischen Teil in einen eigenen Thread schnippseln müsst jetzt meine Mitschrift rauskramen, aber ARMA unterscheidet sich von ARIMA ja dadurch, das bei ARIMA Eigenwerte Aber nich so wichtig, wollt eigentlich eh nur sagen, das statistisch gesehen, bei meinen derzeitigen Möglichkeiten die beste Erklärung für den Kurs ein random-walk ist... was ja jetzt nit optimal für Prediction ist... :( Bin jetzt auch kein Fachmann in Statistik (vor allem nicht wenns um die höhere Statistik geht, aber ich glaub man kann hier schon mit den Basics einiges versuchen ala KISS. Auf alle Fälle erhöht es sicher das Verständniss des Marktes ;) und seit ich Mathe studier hab ich mich dran gewöhnt das die Leute plötzlich weglaufen anfangen sobald man mit den Themen anfängt... Zur Idee: Wir müssen sicher mal Grundlegende Annahmen treffen, die man dann ja als "Parameter" im System haben kann, und möglicherweise mehrere Varianten gleichzeitig laufen lässt. Ideen für so Grundannahmen meinerseits: * Die Marktphasen ändern sich i.A. kontinuierlich * Der Markt bleibt im Mittel X Bars(Minuten,Stunden) in ca. der gleichen Marktphase (das könnte man im laufenden Betrieb immer aktualisieren) Dann wär mein erster Ansatz eine LinREg auf die letzten Y Bars (Y bei slope ~ 0: geschätzte Stdabw als Kanal traden bei |slope| > 0 : die geschätzte stdabw. des Kanals in Trendrichtung traden. Den Hypothesentest könnte man dann noch insofern einbauen, als das man die von den Y Bars geschätzten Werte, auf die letzten Z (mit Z Flat. MM und RM muss man dann halt anpassen. wie immer nur mal so als "in den Raum gestellte Idee". *mit dem Zaunpfal nach Krümel winkt*
  24. Jein, es geht mir eigentlich gerade nur darum (gemeinsam) Antworten zu finden, wie die Aussehen ist sekundär. @stationär: Ich hab mal den DAX ein bissl analysiert was das angeht (bin nicht wirklich Experte im Gebiet Zeitreihenanalyse, aber interessiert hats mich halt) und der ist leider nicht stationär (ich weiß da braucht man nicht viel analyse dazu ;). Aber das "Hauptproblem" was bei meiner Analyse herausgekommen is: am besten würde ein ARIMA(1,0,1) (ich glaub das wars) fitten wobei die Varianz des Störterms nicht exakt konstant wär... Sprich Q_t = mu_t + eps_t, wobei mu_t = mu_{t-1} + delta_t mit eps und delta zufällig gestört (i mag die Formulierung ;) mit Erwartungswert = 0 und Varianz= ? (nicht konstant) Die große Frage ist natürlich das "Was ist Q_t?", aber wie du schon sagst: Es würd uns ja auch reichen es hinreichend zu approximieren, wenn wir wüssten das die approx stimmt ;) kurze Idee: man könnte doch versuchen 2-3 "Modelle" für den Markt zu entwickeln (Trendkanal, Seitwärtskanal etc.). Unter der Annahme das diese Modelle korrekt sind, kann man dann wiederum eine Strategie rausrechnen, die einem einen positiven Erwartungswert liefert. Gleichzeitig müsste es doch möglich sein einen Hypothesentest zu formulieren, der uns genau testet ob wir die Annahme momentan verwerfen müssen. Entscheiden sich die Tests signifikant für eine Annahme, so traded man diese strategie, bis der Test sagt "nicht mehr erfüllt". Dabei wählt man die Signifikanzniveaus recht strikt, nach dem Motto "Qualität vor Quantität". Wie gesagt nur so eine kleine Idee, die mir grad durch den Kopf geschossen ist. hmm...langsam hat das nix mehr mit Pyramiden zu tun... ich seh schon whipsaw mit der schere anrauschen...

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.