Hello wiskundige experten.
Laat me beginnen met te zeggen dat ik geen wiskundig master mind ben, anders zou ik uiteraard deze vraag niet stellen op dit forum. Dat gezegd zijnde, op naar mijn situatie en vraag.
Ik maak een trading bot die online aankopen en verkopen doet van forex future contracten. Als je niet weet wat dat is, geen probleem, dat is ook niet essentieel. Wat je wel moet weten is dat de markt in twee richtingen kan gaan, STIJGEND of DALEND. Het is dan ook mogelijk om in twee richtingen in te zetten. Als je denkt dat de markt gaat stijgen koop je een LONG contract, als je denkt dat de markt gaat dalen koop je een SHORT contract. Als de markt dan beweegt in de richting waarop je hebt ingezet, maak je winst. Beweegt de markt in de andere richting dan maak je verlies. Het is ook mogelijk om beide posities in te nemen (LONG en SHORT) en in die situatie speelt mijn probleem zich af.
Om de PnL (profit and loss) te berekenen van 1 trade, gebruik ik de volgende formule:
PnL = Volume x (Aankoopprijs - HuidigePrijs) * Richting
Volume = het onderliggende volume van het contract
AankoopPrijs = de prijs waaraan het volume gekocht is
HuidigePrijs = Huidige prijs
Richting = 1 voor long en -1 voor short
PnL = Profit of winst (positief) loss of verlies (negatief)
PnL = 1000 x (1.350 - 1.300) * 1 --> +5 (winst)
PnL = 1000 x (1.350 - 1.300) * -1 --> -5 (verlies want de richting was SHORT en de marktprijs steeg)
Het probleem:
Wanneer ik zowel SHORT als LONG posities heb op hetzelfde moment, wil ik de grens berekenen waarop mijn totale som van alle trades (verliezen + winsten) gelijk is aan 0, op voorwaarde natuurlijk dat de markt beweegt in de richting waarin ik het grootste volume heb gekocht.
Een voorbeeld:
Op 1.1300 ging ik Long voor een volume van 1000
Op 1.1250 ging ik Short voor een volume van 2000
Op 1.1290 ging ik Long voor een volume van 3000
Als de markt stijgt en de prijs 1.1335 wordt bereikt, zal de totale som van de 3 PnL's 0 zijn. Dus dat is mijn break even punt. Nu wil ik graag een generieke formule die ongeacht het aantal trades die ik toevoeg, het break even punt berekent, op voorwaarde dat de markt in de richting beweegt met het grootste volume.
Alvast bedankt voor jullie tijd en expertise.
Mvg
Paul
Berekenen van winst/verlies-grens in trading bot.
-
- Nieuw lid
- Berichten: 8
- Lid geworden op: 09 dec 2018, 18:03
-
- Nieuw lid
- Berichten: 8
- Lid geworden op: 09 dec 2018, 18:03
Re: Berekenen van winst/verlies-grens in trading bot.
Edit: Correcte formule is
PnL = Volume x (HuidigePrijs - Aankoopprijs) * Richting
PnL = Volume x (HuidigePrijs - Aankoopprijs) * Richting
Re: Berekenen van winst/verlies-grens in trading bot.
Neem
n = aantal trades,
i = het volgnummer van een trade (dus i = 1, 2, 3, ..., n)
V[ i ] = volume * richting van trade i (dus V[ i ] is positief voor LONG en negatief voor SHORT)
A[ i ] = aankoopprijs van trade i
e = break even eindprijs
dan geldt voor elke trade:
\(\text{PnL}\left[i\right] = V\left[i\right] * (e - A\left[i\right])\)
Tel deze op voor alle trades (= sommeer voor i = 1 t/m n):
\(\sum_{i=1}^n\text{PnL}\left[i\right] = \sum_{i=1}^n V\left[i\right] * (e - A\left[i\right])\)
Splits de rechter som:
\(\sum_{i=1}^n\text{PnL}\left[i\right] = \sum_{i=1}^n V\left[i\right] * e - \sum_{i=1}^n(V\left[i\right] *A\left[i\right])\)
Bij het break even point is de som van alle PnL's nul, dus de linker som is dan nul:
\(0 = \sum_{i=1}^n V\left[i\right] * e - \sum_{i=1}^n(V\left[i\right] *A\left[i\right])\)
dus het break even point e ligt bij:
\(e = \frac{\sum_{i=1}^n(V\left[i\right] *A\left[i\right])}{\sum_{i=1}^n V\left[i\right]}\)
Voorbeeld:
Als het voorbeeld dat je zelf gegeven hebt
(merk op dat V hier het product Volume*Richting is):
n = aantal trades,
i = het volgnummer van een trade (dus i = 1, 2, 3, ..., n)
V[ i ] = volume * richting van trade i (dus V[ i ] is positief voor LONG en negatief voor SHORT)
A[ i ] = aankoopprijs van trade i
e = break even eindprijs
dan geldt voor elke trade:
\(\text{PnL}\left[i\right] = V\left[i\right] * (e - A\left[i\right])\)
Tel deze op voor alle trades (= sommeer voor i = 1 t/m n):
\(\sum_{i=1}^n\text{PnL}\left[i\right] = \sum_{i=1}^n V\left[i\right] * (e - A\left[i\right])\)
Splits de rechter som:
\(\sum_{i=1}^n\text{PnL}\left[i\right] = \sum_{i=1}^n V\left[i\right] * e - \sum_{i=1}^n(V\left[i\right] *A\left[i\right])\)
Bij het break even point is de som van alle PnL's nul, dus de linker som is dan nul:
\(0 = \sum_{i=1}^n V\left[i\right] * e - \sum_{i=1}^n(V\left[i\right] *A\left[i\right])\)
dus het break even point e ligt bij:
\(e = \frac{\sum_{i=1}^n(V\left[i\right] *A\left[i\right])}{\sum_{i=1}^n V\left[i\right]}\)
Voorbeeld:
Als het voorbeeld dat je zelf gegeven hebt
(merk op dat V hier het product Volume*Richting is):
Code: Selecteer alles
i A[i] V[i] A[i]*V[i]
--------------------------------
1 1.13 1000 1130
2 1.125 -2000 -2250
3 1.129 3000 3387 +
--------------------------------
SOM: 2000 2267
e = SOM(A[i]*V[i]) / SOM(V[i]) = 2267/2000 = 1.1335
-
- Nieuw lid
- Berichten: 8
- Lid geworden op: 09 dec 2018, 18:03
Re: Berekenen van winst/verlies-grens in trading bot.
ALL RIGHT
Thanks!
Het klopt alvast wanneer mijn volume LONG groter is dan mijn volume SHORT, zoals het voorbeeld dat ik heb gegeven. Ik ga morgen kijken of het ook klopt in de andere richting. Dan zou de prijs lager moeten liggen dan mijn laagste short prijs. Ik heb het snel snel ff in Excel geprobeerd maar daar klopte het nog niet. Maar het is laat en ik ben moe
Nogmaals bedankt voor de snelle reactie.
Mvg
Paul
Thanks!
Het klopt alvast wanneer mijn volume LONG groter is dan mijn volume SHORT, zoals het voorbeeld dat ik heb gegeven. Ik ga morgen kijken of het ook klopt in de andere richting. Dan zou de prijs lager moeten liggen dan mijn laagste short prijs. Ik heb het snel snel ff in Excel geprobeerd maar daar klopte het nog niet. Maar het is laat en ik ben moe
Nogmaals bedankt voor de snelle reactie.
Mvg
Paul
Re: Berekenen van winst/verlies-grens in trading bot.
Waarom is dit zo?Paulito123 schreef: ...Ik ga morgen kijken of het ook klopt in de andere richting.
Dan zou de prijs lager moeten liggen dan mijn laagste short prijs ...
Als ik in je voorbeeld alle LONGs en SHORTs verwissel, krijg je:
Code: Selecteer alles
i A[i] V[i] A[i]*V[i]
--------------------------------
1 1.13 -1000 -1130
2 1.125 2000 2250
3 1.129 -3000 -3387 +
--------------------------------
SOM: -2000 -2267
e = SOM(A[i]*V[i]) / SOM(V[i]) = -2267 / -2000 = 1.1335
En deze waarde is nog steeds groter dan elk van de A[ i ] waarden, dus zeker niet lager dan de laagste SHORT.
Ter controle:
(met je oorspronkelijke formule)
PnL[1] = 1000 * (1.1335 - 1.13) * (-1) = -3.50
PnL[2] = 2000 * (1.1335 - 1.125) * 1 = 17.00
PnL[3] = 3000 * (1.1335 - 1.129) * (-1) = -13.50
En dit levert een PnL-totaal van -3.50 + 17.00 - 13.50 = 0 (= break even)
-
- Nieuw lid
- Berichten: 8
- Lid geworden op: 09 dec 2018, 18:03
Re: Berekenen van winst/verlies-grens in trading bot.
Inderdaad, mea culpa. Ik heb hier net het voorbeeld uitgebreid met een short van 6000 aan 1.125 en dan kom ik op de juiste BE prijs 1.12.
Nogmaals bedankt voor je hulp. In the end is het makkelijker dan ik had gedacht. Wat ik dus nodig had was een gewogen gemiddelde van alle transacties.
Vriendelijke groeten
Paul
Nogmaals bedankt voor je hulp. In the end is het makkelijker dan ik had gedacht. Wat ik dus nodig had was een gewogen gemiddelde van alle transacties.
Vriendelijke groeten
Paul