Geldwert eines Pips
Guten Tag,
vielleicht fehlt der Kaffee, es sind ein paar Unklarheiten aufgetreten. Um den Geldwert eines Pips zu ermitteln kenne ich diese Formel: Geldwert € = PipFormat/Bid*Kontraktgröße Beispiel 7,37€ = 0,0001/1,3560*100000 (Pipformat wird durch digit*Point ermittelt wobei digit je nach Underlying zB 10, 0,1 oder auch 100 ist, dies wird vorher definiert) (ps: digit ist eine eigene Variable also nicht mit Digits verwechseln) Fragen: -Wenn Pipformat (zb 0,0001 EURUSD) für jedes Underlying korrekt ist, kann man sich darauf verlassen, dass mit dieser Formel auch der Geldwert pro Pip bei jedem Underlying korrekt berechnet wird? -Wie unterscheidet sich die Berechnung wenn ich den Geldwert als € oder als $ erhalten möchte? -Wie lese ich die Kontraktgröße aus? (zB 100000(bei StandartLot))? Gruß |
Kontraktgröße evtl. über:
double val = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_CONTRACT_SIZE); |
Danke Doc das werd ich testen.
Noch zur Berechnung: Die Formel zeigt, wenn ich richtig liege immer das Ergebnis des Geldwertes aber wohl nur in seiner Basiswährung oder? Ist es dann überhaupt möglich aus den Pipspannen verschiedener Währungspaare oder gar anderen Handelsinstrumenten immer auf das Ergebnis in € zu kommen? |
Vielleicht könnte man eine Formel aus MarketInfo(Symbol(),MODE_TICKVALUE) herleiten? Ist vielleicht einfacher um alle Handelsinstrumente unter einen Hut zu bekommen weil es sich immer automatisch auf die Einlagewährung bezieht oder..?
|
Hallo Ca$hDigger,
double PricePerPip = (MarketInfo(Symbol,MODE_TICKVALUE) * MarketInfo(Symbol,MODE_POINT)) / MarketInfo(Symbol,MODE_TICKSIZE); dies sollte dir den korrekten Wert in der Kontowährung für jedes Symbol geben. Gruß yytrader |
Zitat:
- Ist das das Ergebnis immer auf 1Lot bezogen? - Beim Backtest habe ich leider einige Probleme: MODE_TICKVALUE: der Wert bleibt während des Backtests immer der selbe. MODE_POINT: der Wert ist immer 1e-005.0 MODE_TICKSIZE: der Wert ist immer 1e-005.0 Gruß |
das mit 1e-005.0 ist auch auf dem Demokonto
|
Hallo Ca$hDigger,
ja, die Formel bezieht sich auf 1 Lot. Einfach PricePerPip einfach mit den Lots multiplizieren. MODE_TICKVALUE: der Wert bleibt während des Backtests immer der selbe. -> Der ändert sich im Backtester nicht, es wird der aktuelle Wert verwendet. Das verfälscht das Ergebnis nicht unerheblich, ein weiterer Grund, warum der Backtester Müll ist. Das musst du live testen. Der Wert kann auch 1 sein, das passiert, wenn du einen Wert handelst, der sich auf deine Kontowährung bezieht. MODE_POINT: der Wert ist immer 1e-005.0 -> Der Wert ist quasi fix für das Symbol. Andere Werte kannst du bei JPY-Paaren sehen MODE_TICKSIZE: der Wert ist immer 1e-005.0 -> Der Wert ist quasi fix für das Symbol. Andere Werte kannst du bei JPY-Paaren sehen Gruß yytrader |
Ok jo das mit dem fixen Wert beim Backtest ist nicht gut.
Was kann man sich unter 1e-005.0 vorstellen? Das ist für mich (bis jetzt) irgendwie keine Zahl :o |
Habe mal alles getestet ich vermute 1e-005.0 entspricht einfach 0.00001
Die Berechnung scheint bei 5/3Digit die Micropips zu berechnen. Wenn man die richtigen Pip will muss man bei 5/3Digit mit 10 Multiplizieren. Bei CFDs oder 6Digits kommen nochmal andere Multiplikationsfaktoren denke ich. Also eine vollautomatisch funktionierende Formel für alles gibt es wohl nicht |
Hallo,
die Formel sollte für alle Symbole funktionieren (Forex, Indizes und CFDs). 1e-005 ist 1*10^-5 = 0.00001, also das stimmt. Wenn du verschiedene Digits (3/4/5 digits) verwendest, musst du diese noch umrechen. Ich habe hier mal meine Funktion zur Berechnung der Lotgröße angehängt. Da kannst du dir ansehen, wie man diese Formel verwendet. Allerdings verwende ich keine Pips sondern übergebe den Stop absolut, also so wie du ihn auch bei OrderModify oder OrderSend verwendest. Ich denke die Parameter sind selbsterklärend. Bei Fragen, bitte fragen. Gruß yytrader Code:
|
Ich habe eben mal verschiedene Symbole (gold, cfds, währung4digit, währung5digit) gecheckt und es stimmt immer exakt wenn man die letzte Stelle als Pip betrachtet. Bei den 5 digit brokern dann einfach if(Digits==3||Digits==5) dann faktor 10
Besten Dank C$D |
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:14 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