Anatoly Popov
d0ccc8be66
fix: gold and other things aren't stocks and has their own boards
Signed-off-by: Anatoly Popov <me@aensidhe.ru>
6 months ago
Anatoly Popov
5ad22d68ec
feat: support security from MOEX via MOEX api
**Justification**
My main portfolio is on MOEX, so I need a way to manage it. Ghostfolio looks
cool but there's no way to proper manage assets on MOEX. So, first I've found
`moex-iss-api` npm package. Turns out it needed some help, so couple of PR
there. After that I was ready to work on ghostfolio.
This commit implements full `DataProviderInterface` spec:
- Disabled by default, so only those who need it would enabled it.
- We `canHandle` all symbols
- We aren't premium feature
- `getQuotes`, `getHistorical` and `search` were pretty straightforward
- `getTestSymbol` return `SBER` because if something happens to `SBER` stocks
then MOEX would definetely doesn't matter anymore for sometime.
- `getAssetProfile` and `getDividends` proved to be tricky to implement, so
I'll cover them below separately.
**getAssetProfile**
**Currency**
This is main method to get info about assets. Unfortunately, due to fall of
USSR and ruble denomination in 1998, we have three currency tickers: 'RUR',
'SUR', 'RUB' For convenience we use 'RUB' instead of all of them. I don't see
practical value to differentiate between them here, but I'm open to suggestions.
Also, some of the tickers do not return currency in which they're listed on
MOEX. Assumed that it's also 'RUB'.
**Name**
Every asset can have several things to identify it. And all of them are
optional in MOEX API, except `secid` which is `Security ID`. So we use them
for name in this order of preference:
1. Latin (usually English) name.
2. Latin short name.
3. Russian name.
4. Security ID.
**Country**
I try to detect country, parsing ISIN: first two letters should be country code.
**Sectors**
MOEX supports some industry related indices, so when we first encounter some
symbol, I check whether it's in those indices and assign sectors accordingly.
**AssetClass and AssetSubClass**
At first, I was tempted to leave them empty, but finally decided to look into.
I downloaded all asset types from MOEX and tried to best of my knowledge assign
asset classes and subclasses. If I wasn't able to find proper relation, I left
the cell empty. After that I took the table (you can check it in the comments
in the code) and made `SecurityTypeMap` interface.
**getDividends**
MOEX API for dividends isn't documented at all (or probably I didn't find
proper docs) and sometimes it doesn't return the newest dividends. Surprisingly,
you can get dividends for MOEX-related assets from YAHOO, but the date can
differ. So, there is heurestic implemented: if those date are no more than two
days apart and payout is the same, then it's the exact same payout and we
merge them.
Signed-off-by: Anatoly Popov <me@aensidhe.ru>
6 months ago
Anatoly Popov
c4fb8af45d
fix: if yahoo service returns zero quotes do not fail enhance request
Signed-off-by: Anatoly Popov <me@aensidhe.ru>
5 months ago
Anatoly Popov
266be1f7ed
fix: don't fail whole request if one of providers fails, but log it
Signed-off-by: Anatoly Popov <me@aensidhe.ru>
5 months ago
Tobias Kugel
3bcb19af14
Feature/migrate i18n service to injectable service ( #4829 )
* Migrate i18n service to injectable service
* Update changelog
5 months ago
Thomas Kaul
b3ec353074
Feature/change interpolation syntax in i18n service ( #4849 )
* Change interpolation syntax from {var} to ${var}
5 months ago
Alison Hawk
31f5c0de88
Bugfix/fix import of empty account balances ( #4677 )
* Fix import of empty account balances
* Update changelog
---------
Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
5 months ago
Thomas Kaul
1dd3857618
Refactor getCashPositions() in portfolio service ( #4800 )
* Refactor getCashPositions()
5 months ago
Thomas Kaul
e2ec635bbf
Feature/localize X-ray rule EmergencyFundSetup ( #4835 )
* Set up language localization for static portfolio analysis rule: Emergency Fund (Set up)
* Update changelog
5 months ago
Tobias Kugel
fde8ff4bb6
Feature/localize X-ray rule FeeRatioInitialInvestment ( #4779 )
* Localize X-ray rule FeeRatioInitialInvestment
* Update changelog
---------
Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
5 months ago
Thomas Kaul
85af3db0d8
Bugfix/respect filter by holding when exporting activities ( #4824 )
* Respect filter by holding when exporting activities
* Update changelog
5 months ago
Thomas Kaul
ccee5b1337
Bugfix/respect filter by holding when deleting activities ( #4823 )
* Respect filter by holding when deleting activities
* Update changelog
5 months ago
Thomas Kaul
a11fef5e23
Bugfix/fix exception with currencies in historical market data editor of admin control panel ( #4813 )
* Fix exception with currencies
* Update changelog
5 months ago
Thomas Kaul
15deed3032
Feature/upgrade Stripe dependencies 20250529 ( #4662 )
* Upgrade Stripe dependencies
* Upgrade ngx-stripe to version 19.7.0
* Update changelog
5 months ago
Thomas Kaul
8b8d194383
Feature/clean up legacy demo user id property ( #4808 )
* Clean up
5 months ago
Thomas Kaul
cb7434a8b2
Feature/sync demo account activities based on tags ( #4797 )
* Sync demo account activities based on tags
* Update changelog
5 months ago
Thomas Kaul
fda9cc71f7
Feature/modularize cron service ( #4795 )
* Modularize cron service
* Update changelog
5 months ago
Thomas Kaul
c553fdf6d4
Bugfix/change investment value to take currency effects into account in holding detail dialog ( #4789 )
* Change investment value to take currency effects into account
* Update changelog
5 months ago
Thomas Kaul
c6e38cd4ac
Feature/refresh cryptocurrencies list 20250529 ( #4790 )
* Update cryptocurrencies.json
* Update changelog
5 months ago
Thomas Kaul
9e74eec04d
Feature/rename orders to activities in Tag database schema ( #4783 )
* Rename orders to activities in Tag database schema
* Update changelog
5 months ago
Turka Turki
9f3079716b
Feature/improve language localization for NL 20250528 ( #4776 )
* Improve language localization for NL
* Update sitemap.xml
* Update changelog
5 months ago
Thomas Kaul
0ab7b98077
Feature/refactor publicly accessible page paths ( #4768 )
* Refactoring
5 months ago
Scott Rose
316d118111
Feature/improve language localization for FR 20250527 ( #4766 )
* Improve language localization for FR
* Update sitemap.xml
* Update changelog
5 months ago
Arington Halabi
f20791d5ad
Feature/improve language localization for IT 20250525 ( #4750 )
* Improve language localization for IT
* Update changelog
5 months ago
github-actions[bot]
ffe1021d69
Feature/update locales ( #4753 )
* Update locales
* Update translations
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
5 months ago
Thomas Kaul
9a75e7d257
Bugfix/fix Redis cache health check ( #4748 )
* Fix Redis cache health check
6 months ago
Thomas Kaul
1a247d6e97
Feature/improve handling of schema validation errors in search of Yahoo Finance service ( #4744 )
* Improve handling of schema validation errors
* Update changelog
6 months ago
Thomas Kaul
90385157d7
Feature/improve Ghostfolio data provider integration ( #4743 )
* Improve Ghostfolio data provider integration
6 months ago
Thomas Kaul
a8a31c141d
Bugfix/fix TransformDataSourceInRequestInterceptor after upgrade to NestJS 11 ( #4741 )
* Fix TransformDataSourceInRequestInterceptor for Express 5
6 months ago
Thomas Kaul
0ea588315a
Feature/improve symbol lookup results by removing currency from name of cryptocurrencies ( #4702 )
* Improve symbol lookup results by removing currency from name of cryptocurrencies
* Update changelog
6 months ago
Thomas Kaul
3d94b1a873
Bugfix/fix exclude route with wildcard of serve static module ( #4733 )
* Fix route with wildcard
https://docs.nestjs.com/migration-guide#express-v5
6 months ago
Thomas Kaul
d4666f778d
Feature/remove deprecated endpoints in Ghostfolio controller ( #4692 )
* Remove deprecated endpoints
6 months ago
Thomas Kaul
70a4697f54
Feature/remove deprecated endpoints in admin controller ( #4687 )
* Remove deprecated endpoints
* Update changelog
6 months ago
Thomas Kaul
a0f377e8eb
Feature/refactor ordersCount to activityCount ( #4688 )
* Refactor ordersCount to activityCount
6 months ago
Thomas Kaul
698d71fb3a
Feature/restrict permissions of demo user ( #4697 )
* Restrict permissions of demo user
* Update changelog
6 months ago
Thomas Kaul
1697b7e1e0
Feature/remove unused Order model ( #4690 )
* Remove unused Order model
6 months ago
Thomas Kaul
e97757631b
Feature/add missing types of impersonationId in controllers ( #4691 )
* Add missing types
6 months ago
Kenrick Tandrian
4adc9dc9b1
Feature/upgrade to node-yahoo-finance2 version 3 ( #4695 )
* Upgrade node-yahoo-finance2 from version 2.11.3 to 3.3.1
* Update changelog
6 months ago
Kenrick Tandrian
2932d57c1e
Feature/improve language localization for ZH 20250510 ( #4701 )
* Improve language localization for ZH 20250510
* Update changelog
6 months ago
Thomas Kaul
480709c32a
Bugfix/add missing permission guard in create watchlist item endpoint ( #4686 )
* Add missing permission guard
* Update changelog
6 months ago
Thomas Kaul
11629ffd26
Feature/clean up unused interfaces ( #4685 )
* Clean up unused interfaces
6 months ago
Thomas Kaul
037d3b1a60
Feature/rename Order to activities in User database schema ( #4669 )
* Rename Order to activities in User database schema
* Update changelog
6 months ago
andiz2
1215803a40
Bugfix/fix ApiKeyStrategy error ( #4682 )
* Fix ApiKeyStrategy error
6 months ago
Felix Jordan
aadd9f56a0
Feature/extend admin endpoint by asset profile count per data provider ( #4676 )
* Extend admin endpoint by asset profile count per data provider
* Update changelog
6 months ago
Haruka Kishida
828bd5f172
Feature/upgrade to NestJS 11 ( #4270 )
* Upgrade to NestJS 11
* Update changelog
6 months ago
Thomas Kaul
67db1b0de4
Feature/rename Order to activities in SymbolProfile database schema ( #4661 )
* Rename Order to activities
* Update changelog
6 months ago
Kenrick Tandrian
c38dab5ab0
Feature/extend holding endpoint by performances ( #4660 )
* Extend holding endpoint by performances
* Update changelog
6 months ago
Kenrick Tandrian
40d3eaa023
Bugfix/fix performance calculation on date of activity when unit price differs from market price ( #4650 )
* Fix performance calculation on date of activity when unit price differs from market price
* Update changelog
6 months ago
Marcin Szymański
28d2fd3877
Bugfix/restore incorrect fee currency conversion ( #4645 )
* Restore incorrect fee currency conversion
* Update changelog
6 months ago
Thomas Kaul
d661cdc78f
Feature/rename account to accounts in platform database schema ( #4656 )
* Rename Account to accounts in platform database schema
* Update changelog
6 months ago