Hi,
I am trying to calculate profits/loss in EUR for investing in USD
My bean file looks like this at the moment. At the end I listed the prices; here for easy testing with simple numbers:
option "operating_currency" "USD"
option "operating_currency" "EUR"
; Accounts
1970-01-01 open Assets:Brokerage
1970-01-01 open Assets:Cash
1970-01-01 open Income:CapitalGains
1970-01-01 open Expenses:Commissions
2016-09-13 open Assets:Brokerage:AAPL
2022-01-01 * "Buy AAPL"
Assets:Brokerage:AAPL 100 AAPL {100.00 USD} @ 100.00 USD
Assets:Cash -10000.00 USD
2022-06-01 * "Sell AAPL"
Assets:Brokerage:AAPL -50 AAPL {} @ 200.00 USD
Assets:Cash 10000.00 USD
Income:CapitalGains
2022-12-01 * "Sell AAPL"
Assets:Brokerage:AAPL -50 AAPL {} @ 200.00 USD
Assets:Cash 10000.00 USD
Income:CapitalGains
;; for testing
2022-01-01 price USD 0.8 EUR
2022-06-01 price USD 0.5 EUR
2022-12-01 price USD 0.9 EURRunning this query with python and pandas:
SELECT
year(date) AS year, account, convert(sum(position), 'EUR') AS EUR
WHERE
account ~ '^Income:CapitalGains'
GROUP BY
year, account
ORDER BY
year, accountresults in:
====================================================================================================
- USD - original currency
....................................................................................................
year account sum(position) (USD)
0 2022 Income:CapitalGains -10000.0
====================================================================================================
- EUR - converted from USD
....................................................................................................
year account eur (EUR)
0 2022 Income:CapitalGains -9000.0As you can see, this query takes only the last price exchange info. Though, I
would need a calculation, where for each trading day the conversion takes place.
So for this example each different price needs to be account for for each
different trading day.
I am sure, I am doing something wrong... but not sure, what, probably the query.
Do you have an idea, what I am doing wrong?
Thank you!
Fabian