dkfinance modeller
Development Pipe-Line
This section is a brief description of the development pipe-line of this project.
Coding-Style
Test-Driven-Development
Type-hinting is required
Documentation is required
Pre-Commit
Black
flake8
mypy
isort
Continuous Integration and Code Coverage
pytest
travis
codecov
Documentation
Compiled with Sphinx
Hosted on Read-the-Docs
The documentation uses the sphinx rtd theme.
depotmodel.py
formler.py
- dkfinance_modeller.utility.formler.CAGR(start_kapital: float, slut_kapital: float, antal_år: float) float
Beregn annualiseret flerårig vækstrate, “Compound annual growth rate” (CAGR) på engelsk.
\[CAGR = \left( \frac{k_\mathrm{slut}}{k_\mathrm{start}} \right)^{\frac{1}{n}} - 1\]\(k_\mathrm{slut}\) slut kapital.
\(k_\mathrm{start}\) start kapital.
\(n\) antal år.
\(CAGR\) CARG.
Fra, https://en.wikipedia.org/wiki/Compound_annual_growth_rate, 21-11-2020
- Parameters
start_kapital – start kapital.
slut_kapital – slut kapital.
antal_år – tid i antal år, behøver ikke at være et heltal.
- Returns
CAGR
- dkfinance_modeller.utility.formler.afbetalling(klån: float, r: float, n: int) float
Beregn størrelse af afbetalings størrelse for at afbetale et lån over \(n\) gange.
\[k_{\mathrm{afbetaling}} = k_{\mathrm{lån}}\cdot\frac{r}{1-(1+r)^{-n}}\]\(r\) rente på lånet.
\(n\) antal gange der skal afbetales.
\(k_{lån}\) start kapital der skal afbetales.
\(k_{\mathrm{afbetaling}}\) månedlig ydelse.
- Parameters
klån – Kapital der skal tilbage betales.
r – renten på lånet.
n – antal afbetalinger.
- Returns
Ydelse for at afbetale lån over \(n\) gange.
- dkfinance_modeller.utility.formler.opsparing(kstart: float, kmåned: float, r: float, n: int) float
Opsparings formel.
\[k_{n} = k_{\mathrm{start}}\left(1+r\right)^{n} + k_{\mathrm{måned}}\left(\left(\frac{1-\left(1+r\right)^{n}}{-r}\right)-1 + \left(1+r\right)^{n}\right)\]\(r\) rente.
\(n\) antal gange renten bliver beregnet.
\(k_{n}\) slut kapital.
\(k_{start}\) start kapital.
\(k_{måned}\) månedlig ydelse.
- Parameters
kstart – start kapital.
kmåned – månedlig indskud.
r – månedlig rente.
n – antal måneder.
- Returns
Slut kapital af opsparingen.
- dkfinance_modeller.utility.formler.årlig_til_n_rente(r: float, n: int) float
Omregn en årlig rente til en rente over \(n\) gange.
\[r_{n}=\left(1+r\right)^{\frac{1}{n}}-1\]\(r\) årlig rente.
\(n\) antal gange renten bliver beregnet per år.
\(r_{n}\) rente for \(n\) periode.
- Parameters
r – årlig rente.
n – antal gange renten beregnes.
- Returns
Rente for \(n\) periode.
kurtage.py
- dkfinance_modeller.aktieskat.kurtage.lunar_kurtage(dkk: float, kurs: float, kurtageprocent: float, minimums_kurtage: float, valutakurtage: float) float
Kurtage for Lunar invest.
Kurtagen er givet ved,
\[kurtage = m + H(k-50000)kp + kv\]\(k\) er investeringskapital.n \(m\) er minimumskurtage.n \(p\) er kurtageprocent.n \(v\) er valutakurtageprocent.n \(H(x)\) er Heaviside step funktionen.
- dkfinance_modeller.aktieskat.kurtage.lunar_kurtage_bygger(valuta: str = 'DKK') Callable[[float, float], float]
Bygger af Lunar invest kurtage funktion.
https://static-assets.prod.lunarway.com/da/docs/prisliste-privat/, 21-10-2020
- Parameters
valuta – valuta værdipapir handles i.
- Returns
Kurtagefunktion.
- dkfinance_modeller.aktieskat.kurtage.nordnet_kurtage_bygger(valuta: str = 'DKK', valutakurs: float = 1.0, valutakonto: bool = False) Callable[[float, float], float]
Bygger af Nordnet kurtage funktion.
https://www.nordnet.dk/dk/kundeservice/prisliste/priser-aktiedepot, 21-10-2020
Medregner ikke GDR-gebyr.
- Parameters
valuta – valuta værdipapir handles i. Euro vil give XETRA børsen.
valutakurs – omregningsfaktor til DKK.
valutakonto – handler foretages i underkonto i given valuta. Valutakurtagen vil ikke være inkluderet i kurtagefunktionen.
- Returns
Kurtagefunktion.
- dkfinance_modeller.aktieskat.kurtage.nulkurtage(dkk: float, kurs) float
Ingen kurtage.
- Parameters
dkk – kapital der skal betales kurtage af.
kurs – kurs på værdipapir.
- Returns
kurtage = 0 DKK
- dkfinance_modeller.aktieskat.kurtage.saxo_kurtage_bygger(valuta: str = 'DKK', valutakurs: float = 1.0, underkonto: bool = False) Callable[[float, float], float]
Bygger af Saxo kurtage funktion.
https://www.home.saxo/da-dk/rates-and-conditions/stocks/commissions, 21-10-2020
- Parameters
valuta – valuta værdipapir handles i. Euro vil give XETRA børsen.
valutakurs – omregningsfaktor til DKK.
underkonto – handler foretages i underkonto i given valuta. Valutakurtagen vil ikke være inkluderet i kurtagefunktionen.
- Returns
Kurtagefunktion.
- dkfinance_modeller.aktieskat.kurtage.saxo_nordnet_kurtage(dkk: float, kurs: float, valutakurs: float, kurtageprocent: float, minimums_kurtage: float, valutakurtage: float, saxo_usd_type: bool) float
Kurtage for Nordnet og Saxo bank.
Kurtagen er givet ved,
\[kurtage(k) = \max(m, kp) + kv\]\(k\) er investeringskapital.
\(m\) er minimumskurtage.
\(p\) er kurtageprocent.
\(v\) er valutakurtageprocent.
Med mindre det er Amerikanske aktier til under 10 USD ved Saxo, så er kurtagen givet ved,
\[kurtage(k) = \max(m, 0.02 N) + kv\]\(N\) er antal købte værdipapirer, faktoren foran er i USD.
- Parameters
dkk – kapital der skal betales kurtage af.
kurs – kurs på værdipapir i DKK.
kurtageprocent – kurtageprocent.
minimums_kurtage – minimums kurtage givet i værdipapirets valuta.
valutakurtage – valutakurtage.
saxo_usd_type – Aktiver speciel kurtage for USD værdipapirer hos Saxo bank, hvis kurs under 10 USD.
- Returns
kurtage
laanmodel.py
skat.py
- class dkfinance_modeller.aktieskat.skat.Skat(beskatningstype: str)
Skat.
- Variables
progressionsgrænse (float) – Progressionsgrænse.
skatteprocenter (List[float]) – Skatteprocenter.
skattefunktion (Callable[[float],float]) – Skattefunktion.
- __init__(beskatningstype: str) None
Setup skat.
- Parameters
beskatningstype – Hvilken beskatning der skal bruges, [‘aktie’, ‘ask’, ‘pension’, ‘nul’].
- beregn_skat(dkk: float) float
Beregn skat.
- Parameters
dkk – Kapital til beskatning.
- Returns
Skat i DKK.
valuta.py
- dkfinance_modeller.aktieskat.valuta.nordnet_valutakonto_kurtage(dkk: float) float
Valutakurtage for Nordnet valutakonto.
https://www.nordnet.dk/faq/2334-hvad-koster-veksling-hos-nordnet-vs-min-bank, 31-10-2020
- Parameters
dkk – kapital der skal betales valutakurtage af.
- Returns
kurtage
- dkfinance_modeller.aktieskat.valuta.nulvalutakurtage(dkk: float) float
Ingen kurtage.
- Parameters
dkk – kapital der skal betales valutakurtage af.
- Returns
kurtage = 0 DKK
- dkfinance_modeller.aktieskat.valuta.saxo_underkonto_kurtage(dkk: float) float
Valutakurtage for Saxo underkonto.
https://www.home.saxo/da-dk/rates-and-conditions/commissions-charges-and-margin-schedule, 31-10-2020.
- Parameters
dkk – kapital der skal betales valutakurtage af.
- Returns
kurtage
vaerdipapirer.py
- class dkfinance_modeller.aktieskat.vaerdipapirer.ETF(kurs: float, åop: float, beskatningstype: str)
ETF og investeringsforening.
- property antal_værdipapirer: float
Getter for antal_værdipapirer.
- Returns
Antal værdipapirer
- lagerrealisering(ændre_kurs: bool = True) float
Beregn overskud via lagerbeskatning.
- Parameters
ændre_kurs – Sætter beskattet_kurs til kurs. False hvis skattepligtig beholdning skal haves, uden at skatten antages betalt.
- Returns
Kapital der skal beskattes.
- modregn_åop() None
Trækker ÅOP fra kursen, for en måned.
\[\left.a_{n}\right|_{n=12}= \left. 1 - \left(\sqrt[n]{1-a}\right)\right|_{n=12}\]\(n\) antal gange ÅOP betales over per år.
\(a_n\) er ÅOP splittet op i \(n\) dele.
\(a\) er ÅOP.
- opdater_kurs(kursændring: float) None
Opdaterer kursen.
- Parameters
kursændring – Ændring af kurs.
- tilføj_enheder(antal: int) None
Tilføj antal enheder af ETFen.
ETF’er bliver beskattet via. gennemsnitsmetoden. Den nye gennemsnitskurs er derfor:
\[k_\mathrm{avg, new} = \frac{n\cdot k + n_\mathrm{old}\cdot k_\mathrm{avg, old}}{n + n_\mathrm{old}}\]\(k\) kurs.
\(k_\mathrm{avg, new}\) nye gennemsnitskurs.
\(k_\mathrm{avg, old}\) gammel gennemsnitskurs.
\(n\) antal værdipapirer der bliver tilføjet.
\(n_\mathrm{old}\) antal værdipapirer allerede i beholdningen.
- Parameters
antal – antal enheder at tilføje.
- total_værdi() float
Få total værdi af beholdning.
- Returns
Total værdi af beholdning.
webscrape.py
- dkfinance_modeller.utility.webscrape.få_etf_info(ISINer: List[str], threads: int) List[Dict[str, object]]
Få information omkring givne ETFer fra justetf.com/en/.
- Parameters
ISIN – Liste af ISINer for ETFer.
- Returns
En liste af dicts med fundne information om ETFen.
- dkfinance_modeller.utility.webscrape.justetf_info(ISIN: str) Dict[str, object]
Få information omkring given ETF fra justetf.com/en/.
- Parameters
ISIN – ISIN for ETFen.
- Returns
En dict med fundne information om ETFen.