-
Notifications
You must be signed in to change notification settings - Fork 91
Description
I had some issues with get_holdings delivering not all required information. (not really bugs, more missing features ;-))
#1: Price date can also come in 98C as datetime.
change regex:
re_pricedate = re.compile(r"^:98[A,C]::PRIC\/\/(\d*)$")
and then
price_date = datetime.strptime(m.group(1)[:8], "%Y%m%d").date()
Ideally price date could always be returned as a datetime, but that might break the receiving side
#2: Currencies
we have 3 currencies in the dataframe:
- Total Value - would always be EUR (or at least the account currency)
- Market Price - can be any currency depending on the instrument, currency is returned in price_symbol
- Acquisition price - can either be EUR (account currency) or instrument currency. currently it's not returned. As it's already picked by the regex, it can simply be added to the Holding model.
m = self.re_acquisitionprice.match(clause)
if m:
acquisitionprice = float(m.group(1) + '.' + m.group(2))
acqprice_currency = m.group(3)
# processed all clauses
retval.append(
Holding(
ISIN=isin, name=name, market_value=market_price,
value_symbol=price_symbol, valuation_date=price_date,
pieces=pieces, total_value=total_value,
acquisitionprice=acquisitionprice,
acqprice_currency=acqprice_currency
))
#3 EDIT: Issue with DKB
DKB returns like this:
:70E::HOLD//1STK++++20250818|240,5551139+EUR
can be fixed with
re_acquisitionprice = re.compile(r"^:70E::HOLD\/\/\d*STK.*\|2(\d*?),{1}(\d*?)\+([A-Z]{3})$")
*Bank I tested this with
Name of the bank: MLP, Deutsche Bank
FinTS URL: https://fints2.atruvia.de/cgi-bin/hbciservlet, https://fints.deutsche-bank.de/
Expected behavior
Values are returned as described above
Code required to reproduce
:90B::MRKT//ACTU/EUR60,544
:98C::PRIC//20250912000000
:70E::HOLD//1STK260,6094+USD