Speed von GetPositionProperties() - Seite 2

 
lindomatic:

Mehreres parallel mag Zukunftsmusik sein. Wenn mein Ding aber funktioniert, brauch' ich das nicht =P

Sag das nicht ;-) ... Ist ein anderes Thema, jedoch würde ich bedenken, dass die Argumente für Diversifikation nicht nur bei Aktien gelten, sondern bei jeglichem Börsenhandel. Bei vernünftigem Money-Management, also z.B. der 1-Prozent-Regel für das Kontorisiko pro Position, wirst Du bei nur einem EA - selbst wenn der noch so gut funktioniert - schnell feststellen, dass Du nur einen kleinen Teil der Margin einsetzt und der größere Teil des Geldes meist passiv rumliegt, ohne für Dich zu "arbeiten". Um dieses Dilemma zu lösen ist es keine gute Idee, die Exposition zu erhöhen indem man die einzelne Position deutlich vergrößert. Besser ist es, über mehrere nicht bzw. gering korrelierte Symbole zu streuen. Das Chance/Risiko-Verhältnis der einzelnen Position bleibt gleich, aber man hat schlicht mehr (=häufigere) Chancen als mit nur einem Instrument. Mit anderen Worten: man kürzt den Faktor Zeit ab. Mehrere Symbole muss nicht unbedingt ein einzelner Multicurrency-EA bedeuten, aber warum z.B. 3% Kontorisiko auf EURUSD wenn ich auch 1% EURUSD, 1% GBPJPY und 1% AUDCAD .... (oder was auch immer beliebt..) haben kann? Und dann ist man eben doch schnell bei mehreren parallelen EAs. Was hinsichtlich Streuung über mehrere nicht(/gering) korrelierte Symbole gilt, gilt ebenso für die Strategie selbst, auch hier kann man sinnvoll diversifizieren, z.B. Mischung mit einer Range-Strategie auf einem Symbol und einer Trend-Strategie auf einem anderen Symbol. Denn: es gibt oft Phasen, in denen mehr oder weniger alle Symbole Achterbahn fahren und in denen Trend-Strategien besser abschneiden, in anderen Phasen ist auf allen Märkten tote Hose und Range-Strategien sind rentabler. Hier eine gute Mischung zu haben, wird das Konto unterm Strich danken.

Wie gesagt.. führt alles vom initialen Thema weg, doch weshalb ich das erwähne: in solchen Dingen, also Umgang mit Symbolen und Magic-Nr., besser gleich ordentlich und schon etwas "Zukunftsmusik" von vorne herein einbauen, als später wieder alles umzuschreiben oder, wenn dann doch später andere EAs dazu kommen, überrascht zu werden, wenn der eine EA den eigentlich guten anderen EA aus den Positionen haut.

 
Chris70:

Sag das nicht ;-) ... Ist ein anderes Thema, jedoch würde ich bedenken, dass die Argumente für Diversifikation nicht nur bei Aktien gelten, sondern bei jeglichem Börsenhandel. Bei vernünftigem Money-Management, also z.B. der 1-Prozent-Regel für das Kontorisiko pro Position, wirst Du bei nur einem EA - selbst wenn der noch so gut funktioniert - schnell feststellen, dass Du nur einen kleinen Teil der Margin einsetzt und der größere Teil des Geldes meist passiv rumliegt, ohne für Dich zu "arbeiten". Um dieses Dilemma zu lösen ist es keine gute Idee, die Exposition zu erhöhen indem man die einzelne Position deutlich vergrößert. Besser ist es, über mehrere nicht bzw. gering korrelierte Symbole zu streuen. Das Chance/Risiko-Verhältnis der einzelnen Position bleibt gleich, aber man hat schlicht mehr (=häufigere) Chancen als mit nur einem Instrument. Mit anderen Worten: man kürzt den Faktor Zeit ab. Mehrere Symbole muss nicht unbedingt ein einzelner Multicurrency-EA bedeuten, aber warum z.B. 3% Kontorisiko auf EURUSD wenn ich auch 1% EURUSD, 1% GBPJPY und 1% AUDCAD .... (oder was auch immer beliebt..) haben kann? Und dann ist man eben doch schnell bei mehreren parallelen EAs. Was hinsichtlich Streuung über mehrere nicht(/gering) korrelierte Symbole gilt, gilt ebenso für die Strategie selbst, auch hier kann man sinnvoll diversifizieren, z.B. Mischung mit einer Range-Strategie auf einem Symbol und einer Trend-Strategie auf einem anderen Symbol. Denn: es gibt oft Phasen, in denen mehr oder weniger alle Symbole Achterbahn fahren und in denen Trend-Strategien besser abschneiden, in anderen Phasen ist auf allen Märkten tote Hose und Range-Strategien sind rentabler. Hier eine gute Mischung zu haben, wird das Konto unterm Strich danken.

Wie gesagt.. führt alles vom initialen Thema weg, doch weshalb ich das erwähne: in solchen Dingen, also Umgang mit Symbolen und Magic-Nr., besser gleich ordentlich und schon etwas "Zukunftsmusik" von vorne herein einbauen, als später wieder alles umzuschreiben oder, wenn dann doch später andere EAs dazu kommen, überrascht zu werden, wenn der eine EA den eigentlich guten anderen EA aus den Positionen haut.

Sehr gut =) 
.. und absolut korrekt: die 1% Regel kürzt eine 10% Regel nur ab.. am Ende war es für mich bislang ein und dasselbe, ob ich nun 100x10€, 10x100 oder 1x1000 verliere.. bislang lief bei mir, von dumm & blind bis erfahren & analysiert, Chart und News, alles ins Minus; und das mit allen CFDs. Und da hier bislang jede einzelne Position ins Minus ging, will ich davon nicht noch mehrere parallel. (Ok, es ging auch mal was ins Plus, aber nicht reproduzierbar.)
Das einzige, was ich hier nach zwei Jahren als verlässlich & reproduzierbar mitnehme, ist, dass es zu Events Ausschläge gibt. Ständig News checken ist nicht machbar, dafür kann das ein EA ertasten, in welche Richtung das geht. Ich konzentriere mich hierauf, von allem anderen müssten mich Leute per Demo überzeugen; ich bin nur erstaunt, wie einem die Chartkurven das Geld vom Konto räumen; geht man mit kurzem Stopp rein, wird man früh ausgestoppt, legt man sie weit weg, an einen MA und/oder Retracement.. wird man später abgeräumt, aber dafür schmerzlicher.. ich kann mir hier keinen Erfolg ausmalen, wenn ich auch echt gern' positiv denke =) .. und selbst wenn man 100 Wins hat, reicht dann ein Loss um alles auf 0 zu stellen.. 

Man kann ja auch keinen EA länger laufen lassen, in diesem Twitter-Zeitalter ist alles unberechenbar. Meiner ist geplant, kurz vor Datenveröffentlichung aktiviert zu werden, konfiguriert auf ein zu den Daten passendes Währungspaar. 

 

Mmh.. ein paar Gedanken dazu:

Hast Du wirklich Lust dazu, ständig die EAs an- und auszuschalten und rund um die Uhr alle Märkte zu beobachten? Ein News-EA lässt sich ja auch so programmieren, dass er außerhalb von News kategorisch untätig ist, dafür aber auch bei nächtlichen News (Asien) aktiv werden kann. Die Event-Kalender-Funktionen in Mql5 ermöglichen das.

Für mich selbst stelle ich fest, dass meine besten Trades immer die waren, bei denen ich gar nicht von der Existenz der Position weiß bis die "a position closed due to take profit"-Meldung auf der Smartwatch erscheint ;-). Da ist dann die Psyche komplett außen vor.

Ich weiß nicht, ob ich mit der 1%-Regel richtig verstanden wurde bzw.. dem was ich mit "abkürzen" meine. Ich plädiere auf gar keinen Fall für ein deutlich höheres Risiko pro Position (ich verwende selbst eine etwas kompliziertere Stufen-Regel, die u.a. eine Unter- und Obergrenze der min./max. Position einbezieht, den Kelly-Faktor und einen Faktor zur Drawdown-Kompensation; konkret schwankt die relative Positionsgröße deshalb etwas, um Durchschnitt dürften die 1% aber in etwa hinkommen).

Bei größeren Einzelpositionen muss man bedenken, dass immer auch mal Verlust-SERIEN vorkommen werden, schlicht als Folge von Wahrscheinlichkeitsrechung/Statistik, und dass z.B. wenn man von 10000€ 10% verloren hat nicht 10% gewinnen muss um wieder zum Ausgangspunkt zu kommen, sondern gute 11.1% (denn 9000 * 1.11111.. = 10000) --> das meine ich oben mit Drawdown-Kompensation, um eben dieses Dilemma auszubügeln und trotzdem eine mit dem Kapital wachsende absolute Positionsgröße zu erlauben (z.B. DD 20% --> Basis-Positionsgröße multipliziert mit 1/(1-0.2)=1.25). Wenige große Verluste hauen bei obligat vorkommenden Verlustserien nun mal richtig rein (und mehr als bei vielen kleinen Positionen). Sowohl Strategien mit großen Einzelpositionen als auch Strategien mit sehr hohem Chance-Risiko-Verhältnis (und dafür geringerer Trefferquote) neigen zu einer unruhigen Balance-Kurve, was sich z.B. an einer schlechteren Sharpe-Ratio ablesen lässt. Von daher würde ich definitiv nicht deutlich >1% pro Einzelposition gehen, dafür aber verschiedene Strategien und Währungen/Instrumente mischen.

 
Chris70:

Mmh.. ein paar Gedanken dazu:

Hast Du wirklich Lust dazu, ständig die EAs an- und auszuschalten und rund um die Uhr alle Märkte zu beobachten? Ein News-EA lässt sich ja auch so programmieren, dass er außerhalb von News kategorisch untätig ist, dafür aber auch bei nächtlichen News (Asien) aktiv werden kann. Die Event-Kalender-Funktionen in Mql5 ermöglichen das.

Für mich selbst stelle ich fest, dass meine besten Trades immer die waren, bei denen ich gar nicht von der Existenz der Position weiß bis die "a position closed due to take profit"-Meldung auf der Smartwatch erscheint ;-). Da ist dann die Psyche komplett außen vor.

Ich weiß nicht, ob ich mit der 1%-Regel richtig verstanden wurde bzw.. dem was ich mit "abkürzen" meine. Ich plädiere auf gar keinen Fall für ein deutlich höheres Risiko pro Position (ich verwende selbst eine etwas kompliziertere Stufen-Regel, die u.a. eine Unter- und Obergrenze der min./max. Position einbezieht, den Kelly-Faktor und einen Faktor zur Drawdown-Kompensation; konkret schwankt die relative Positionsgröße deshalb etwas, um Durchschnitt dürften die 1% aber in etwa hinkommen).

Bei größeren Einzelpositionen muss man bedenken, dass immer auch mal Verlust-SERIEN vorkommen werden, schlicht als Folge von Wahrscheinlichkeitsrechung/Statistik, und dass z.B. wenn man von 10000€ 10% verloren hat nicht 10% gewinnen muss um wieder zum Ausgangspunkt zu kommen, sondern gute 11.1% (denn 9000 * 1.11111.. = 10000) --> das meine ich oben mit Drawdown-Kompensation, um eben dieses Dilemma auszubügeln und trotzdem eine mit dem Kapital wachsende absolute Positionsgröße zu erlauben (z.B. DD 20% --> Basis-Positionsgröße multipliziert mit 1/(1-0.2)=1.25). Wenige große Verluste hauen bei obligat vorkommenden Verlustserien nun mal richtig rein (und mehr als bei vielen kleinen Positionen). Sowohl Strategien mit großen Einzelpositionen als auch Strategien mit sehr hohem Chance-Risiko-Verhältnis (und dafür geringerer Trefferquote) neigen zu einer unruhigen Balance-Kurve, was sich z.B. an einer schlechteren Sharpe-Ratio ablesen lässt. Von daher würde ich definitiv nicht deutlich >1% pro Einzelposition gehen, dafür aber verschiedene Strategien und Währungen/Instrumente mischen.

Nein, wirklich Lust habe ich dazu nicht.. aber das ist mein erstes Ziel, mein erster Schritt.. ich habe dazu nur unregelmäßig Zeit, weil ich leider anders mein Geld verdienen muss.. die Gedanken zu diesem EA hier trage ich seit >6Monaten mit mir rum.. täglich gedacht, nie Zeit gehabt.. bis jetzt.. ich hoffe, ich komme hier noch etwas weiter, bevor ich das alles wieder auf die lange Bank schieben muss.. daher sind gerade weiterführende Programmierungen in Deine Stil für mich utopisch, das wäre für mich ein Vollzeitjob für viele Monate.. Du bist unendlich weiter.

 

Du hast ja auch die Möglichkeit einen Freelance job zu vergeben.

es gibt genug gute programmierer in indien, afrika und co die günstig und sehr gut arbeiten. (Bitte das nicht als diskriminierung werten)

englisch ist halt quasi amtssprache und das pflichtenheft muss gut definiert sein. 

 
amando:

Du hast ja auch die Möglichkeit einen Freelance job zu vergeben.

es gibt genug gute programmierer in indien, afrika und co die günstig und sehr gut arbeiten. (Bitte das nicht als diskriminierung werten)

englisch ist halt quasi amtssprache und das pflichtenheft muss gut definiert sein. 

Ich halte nichts für gewagter & aussichtsloser. Der Programmierer muss sich mit dem Finanzmarkt und den Instrumenten auskennen, sonst weiß er nicht, was er tut.
Mit Indern kann man sich nicht abstimmen, man hat zwar das Gefühl, nach einem Gespräch oder auch schriftlicher Konversation, aber die haben eine andere Software zwischen den Ohren.
Man sagt ihm: "Das funktioniert nicht, schau' mal hier." Er sagt: "That's no problem, works very well."
Das ist meine Erfahrung und die reicht mir. Ich war ein paar Jahre in Indien, da gibt's tolle Leute, aber in der IT zusammenarbeiten lass' ich mal besser =)

Ich bin selbst IT'ler und Freelancer, also ist das hier meine Mission.. andere lösen im Alter oder gar früher Kreuzworträtsel.. und wenn ich jetzt am Ball bleibe, könnte ich doch noch einiges schaffen ;-)

 
Chris70:

Beispiel (nicht getestet):

Es fällt außerdem auf, dass innerhalb der Funktion GetPositionProperties() der Wert für pos_spread gar nicht zugewiesen wird (abgesehen davon, dass formal der Spread ja gar keine Eigenschaft einer Position ist, sondern des zugehörigen Symbols).

Edit: alternativ (ebenfalls nicht getestet):

ich mach es genauso wie Du hier reingepastet hast.. es kommt nichts an, man ist das frustrierend...

@Otto: Deine Lösung verstehe ich leider noch lange nicht..


VG

 
Chris70:

Beispiel (nicht getestet):

Es fällt außerdem auf, dass innerhalb der Funktion GetPositionProperties() der Wert für pos_spread gar nicht zugewiesen wird (abgesehen davon, dass formal der Spread ja gar keine Eigenschaft einer Position ist, sondern des zugehörigen Symbols).

Edit: alternativ (ebenfalls nicht getestet):

kann es sein, dass for(int p=0; p<total; p++)

nicht funktioniert und es for(int p=0;p<total;p++) 

sein muss?! Also ohne Blanks nach dem ;?!

--


nein, das Verhalten ist instabil.. 1x sind die Werte direkt bei der ersten Abfrage da.. meistens nicht.. kann das mit der Netzwerkverbindung zusammenhängen?

Aber der Code sollte ja nicht weiterlaufen, wenn erforderliche Daten noch nicht abgearbeitet wurden.. 


VG

 
lindomatic:

 Also ohne Blanks nach dem ;?!


Leerzeichen sind egal. Der Trenner ist das ";" Zeichen.

https://www.mql5.com/de/articles/639

MQL5 Cookbook: Wie man Position-Eigenschaften bekommt
MQL5 Cookbook: Wie man Position-Eigenschaften bekommt
  • www.mql5.com
Der vorangegangene Beitrag mit dem Titel "MQL5 Cookbook: Wie man unterschiedliche Print-Modi verwendet" beschrieb, wie man schnell ein Script schreiben und die benötigte Informationen mit Hilfe dreier unterschiedlicher Modi drucken kann. Jetzt werden wir ein Script erzeugen, das alle Position-Eigenschaften abruft und dem Anwender anzeigt. Dies...
 
Christian:

Leerzeichen sind egal. Der Trenner ist das ";" Zeichen.

https://www.mql5.com/de/articles/639

danke für den Link, Christian.. muss ich denn wohl nochmal durch..