Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Gesamt Breakeven (http://www.expert-advisor.com/forum/showthread.php?t=7218)

AVT 29.07.22 15:24

Gesamt Breakeven
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe Probleme, einen Breakeven Wert zu berechnen, wenn mehrere Orders am Laufen sind, und brauche eine Denkhilfe bitte. Danke.

Ich rechne mit festem 2*Spread, wobei Spread Benutzereingabe ist.
Eine LongOrder ist immer Equal, wenn der Preis bei OrderOpenPrice()+2*Spread steht.
Eine ShortOrder ist immer Equal, wenn der Preis bei OrderOpenPrice()-2*Spread steht.

1.
Beides ist erst mal unabhängig, wiewiel Lots gehandelt werden und wo der Kurs gerade steht und ob Bid oder Ask zum Schließen verwendet würde.
2.
Ich tue in meiner Berechnung also so, als wäre der OpenPrice etwas höher bei Long und etwas tiefer bei Short gewesen.
3.
Hätte ich z.B. 2 Long (gleiche Lots ohne Spread), einen bei 100 und einen bei 200, dann wäre der Breakeven genau in der Mitte bei 150, nämlich (100+200)/2 - wenn der eine 50 ins Minus geht, ist der andere 50 im Plus, also Breakeven. Rechne ich mit Spread, wäre der Breakeven etwas höher als die Mitte.

Mit diesen Überlegungen bewaffnet habe ich den Test-Indie geschrieben. Aber irgendwie stimmt da was noch nicht, die Breakeven Linie ist teilweise viel zu weit vom eigentlichen 0,00 € Profit entfernt.

Hat jemand eine Ahnung, wo es hier hakt?
Mache ich einen Denkfehler?
Ist die Berechnung falsch?
Danke. AVT

MA-EA 30.07.22 20:21

Würde das vielleicht mit int versuchen:
Code:

extern double InEqualSpread = 100;//Equal calculation spread in point



Z.68
Code:

SumLongOpens += (OrderOpenPrice()+2*ValSpread)*OrderLots();
Fehlen da vielleicht ein paar Klammern in dieser Berechnung? :confused:


Ansonsten würd ich die ganze BreakEven-Berechnung möglichst einfach machen.
Code:

BE = NormalizeDouble( OrderOpenPrice() +/- (int) BE_Wert *Point,Digits);
50 bis 150 sollte eigentlich passen.

AVT 31.07.22 17:16

Zitat:

Zitat von MA-EA (Beitrag 46205)
Würde das vielleicht mit int versuchen:
Code:

extern double InEqualSpread = 100;//Equal calculation spread in point

Das Ergebnis der Multiplikation ist ein double Wert, da ist es egal, ob die Multiplikation nun int*double oder double*double ist, oder ??

Zitat:

Zitat von MA-EA (Beitrag 46205)
Code:

SumLongOpens += (OrderOpenPrice()+2*ValSpread)*OrderLots();
Fehlen da vielleicht ein paar Klammern in dieser Berechnung?

Wo willst Du da denn noch Klammern setzen? (Preis+Spread)*Lots ist doch eindeutig.

Zitat:

Zitat von MA-EA (Beitrag 46205)
Ansonsten würd ich die ganze BreakEven-Berechnung möglichst einfach machen.
Code:

BE = NormalizeDouble( OrderOpenPrice() +/- (int) BE_Wert *Point,Digits);
50 bis 150 sollte eigentlich passen.

Ich will hier nicht den Breakeven von 2 Positionen haben, sondern z.B. von 0,2 Lots Long bei 100 + 0,3 Lots Long bei 150 + 0,2 Lots Long bei 200 + 0,1 Lots Short bei 200 + 0,1 Lots Short bei 190.
Das mach' mir mal ganz einfach - da ist nix mit 50-150 sollte passen.
AVT

MA-EA 01.08.22 17:38

Soviel ich weiß gilt auch im MT4 immer Punkt- vor Strich-Rechnung also sollte man das vielleicht mal auseinander nehmen. :rolleyes:

AVT 01.08.22 23:44

Zitat:

Zitat von MA-EA (Beitrag 46207)
Soviel ich weiß gilt auch im MT4 immer Punkt- vor Strich-Rechnung also sollte man das vielleicht mal auseinander nehmen. :rolleyes:

Das macht man doch glatt:
Code:

SumLongOpens += (OrderOpenPrice()+2*ValSpread)*OrderLots()  0
                                  2*ValSpread              1.
                OrderOpenPrice()+2*ValSpread              2.
                (                            )              3.
                (                            )*OrderLots()  4.
SumLongOpens +=                                            5.

0. die Eingangsformel
1. Punktrechnung
2. Strichrechnung
3. das Ergebnis in Klammer zusammengefaßt
4. Punktrechnung für das Klammerergebnis
5. das Resultat zur bestehenden Summe addieren

Noch was zu meckern? Dann bitte Deine Formel.
AVT

TraderMike 02.08.22 07:05

Persönliche Meinung! Halte ich eine BreakEven Strategie an offenen Positionen nicht für zielführend, denn:
- Niemand kann im Retail! in die Zukunft blicken und mit Bestimmtheit sagen ob ein Trade nicht doch noch in einen TP oder SL läuft!
- Oftmals wird ein BE verwendet um zu enge oder zu weite TP/SL Einstellungen "einzukürzen bzw. abzukürzen", ditto mit TrailingStop und TrailingProfit! BE, Trailing*, kommt immer dann zum Einsatz wenn man sich der Einstiege, Ausstiege nicht sicher ist und für sich das Risiko psychologisch reduzieren möchte.
Ist das der Fall? Die Einsteigssstrategie überprüfen, anpassen! (Statische Werte in einem dynamischen Retail Markt,....)
Die Anschlussstrategie nach einem SL, den es immer geben kann ist viel wichtiger als in psychologischer Verlustangst in offene Positionen statisch einzugreifen.

Meine Strategie:
Verwende dynamische OHLC Einstellungen und lasse den Trade entweder in den TP oder SL laufen.
Aus der History summiere ich die/den SL Trade(s) und lasse % den Verlust beim nächsten Trade bei der dynamischen Neuberechnung mit einfließen.
Entweder in Form eines höheren TP (dynamisch+% Anteil des vorigen SL) oder eines geänderten Handelsvolumen oder einer Kombi aus beiden.

Schach spielen ist übrigens ein gutes Hobby um zu lernen das es Verluste gibt und man trotzdem mit guter Strategie gewinnen kann, bzw. das man mit Absicht eine Figur opfert (sacrify) um weiterführend einen Vorteil im Spiel zu bekommen. Eine Figur die bewegt wurde kann nicht nochmals bewegt werden, Strategie Anpassung, wenn notwenig, erst beim nächsten Schach Zug.

Viele professionelle Trader sind auch gute Schachspieler....

Persönliche Meinung + persönliche Strategie + nur eine weitere Ansicht/Möglichkeit!

MA-EA 02.08.22 15:50

Z.68
Code:

SumLongOpens+=(OrderOpenPrice()+2*ValSpread)*OrderLots(
Bin kein Mathe-Experte aber vielleicht ist es so besser. :rolleyes: :confused:
Code:

SumLongOpens += OrderOpenPrice() + ( 2.0 * ValSpread * OrderLots() );

AVT 02.08.22 21:14

Zitat:

Zitat von TraderMike (Beitrag 46210)
Persönliche Meinung! Halte ich eine BreakEven Strategie an offenen Positionen nicht für zielführend, denn:
- Niemand kann im Retail! in die Zukunft blicken und mit Bestimmtheit sagen ob ein Trade nicht doch noch in einen TP oder SL läuft!
- Oftmals wird ein BE verwendet um zu enge oder zu weite TP/SL Einstellungen "einzukürzen bzw. abzukürzen", ditto mit TrailingStop und TrailingProfit! BE, Trailing*, kommt immer dann zum Einsatz wenn man sich der Einstiege, Ausstiege nicht sicher ist und für sich das Risiko psychologisch reduzieren möchte.
Ist das der Fall? Die Einsteigssstrategie überprüfen, anpassen! (Statische Werte in einem dynamischen Retail Markt,....)
Die Anschlussstrategie nach einem SL, den es immer geben kann ist viel wichtiger als in psychologischer Verlustangst in offene Positionen statisch einzugreifen.
...
Persönliche Meinung + persönliche Strategie + nur eine weitere Ansicht/Möglichkeit!

Es geht mir nicht darum, diesen Breakeven zum Traden oder als Strategie zu verwenden, sondern lediglich um die mathematisch korrekte Berechnung, wo der Breakeven aller Positionen(unter Addition/Substraktion des Spread) liegen würde (und das ist unabhängig vom derzeitigen Kurs - jedenfalls meiner Meinung nach).
AVT

AVT 02.08.22 21:16

Zitat:

Zitat von MA-EA (Beitrag 46211)
Z.68
Code:

SumLongOpens+=(OrderOpenPrice()+2*ValSpread)*OrderLots(
Bin kein Mathe-Experte aber vielleicht ist es so besser. :rolleyes: :confused:
Code:

SumLongOpens += OrderOpenPrice() + ( 2.0 * ValSpread * OrderLots() );

Du must ja wohl die Openpreise mit den Lots multiplizieren und nicht nur die Spreads.
AVT

MA-EA 04.08.22 16:25

Weiß nicht, was das werden soll, aber so müsste es eher funktionieren. :rolleyes:


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:50 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum