diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index fde9874a2..68abade5f 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,8 +1,8 @@
{
"recommendations": [
"angular.ng-template",
+ "esbenp.prettier-vscode",
"firsttris.vscode-jest-runner",
- "nrwl.angular-console",
- "prettier.prettier-vscode"
+ "nrwl.angular-console"
]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 36091af85..9bf4d12b5 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,4 +1,4 @@
{
- "editor.defaultFormatter": "prettier.prettier-vscode",
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1773a62ed..9415e3dbd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,10 +11,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Migrated from _Material Design_ 2 to _Material Design_ 3
-## Unreleased
+## 2.233.0 - 2026-01-23
### Changed
+- Deprecated `firstBuyDate` in favor of `dateOfFirstActivity` in the portfolio calculator
+- Deprecated `transactionCount` in favor of `activitiesCount` in the portfolio calculator and service
+- Removed the deprecated `firstBuyDate` from the endpoint `GET api/v1/portfolio/holding/:dataSource/:symbol`
+- Refreshed the cryptocurrencies list
+- Upgraded `prettier` from version `3.7.4` to `3.8.0`
+
+## 2.232.0 - 2026-01-19
+
+### Added
+
+- Extended the analysis page to include the total amount, change and performance with currency effects (experimental)
+
+### Changed
+
+- Deprecated `firstBuyDate` in favor of `dateOfFirstActivity` in the endpoint `GET api/v1/portfolio/holding/:dataSource/:symbol`
+- Improved the language localization for German (`de`)
- Upgraded `countries-list` from version `3.2.0` to `3.2.2`
## 2.231.0 - 2026-01-17
diff --git a/README.md b/README.md
index 8b6fe2296..03566b2dd 100644
--- a/README.md
+++ b/README.md
@@ -318,12 +318,9 @@ If you like to support this project, become a [**Sponsor**](https://github.com/s
## Sponsors
-
- Browser testing via
-
-
-
-
+
+
+
## Analytics
diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts
index 3f8bd2cde..7e8e333b9 100644
--- a/apps/api/src/app/import/import.service.ts
+++ b/apps/api/src/app/import/import.service.ts
@@ -82,7 +82,7 @@ export class ImportService {
filterBySymbol: symbol
});
- const { firstBuyDate, historicalData } = holding;
+ const { dateOfFirstActivity, historicalData } = holding;
const [{ accounts }, { activities }, [assetProfile], dividends] =
await Promise.all([
@@ -95,7 +95,7 @@ export class ImportService {
filters,
userCurrency,
userId,
- startDate: parseDate(firstBuyDate)
+ startDate: parseDate(dateOfFirstActivity)
}),
this.symbolProfileService.getSymbolProfiles([
{
@@ -106,7 +106,7 @@ export class ImportService {
await this.dataProviderService.getDividends({
dataSource,
symbol,
- from: parseDate(firstBuyDate),
+ from: parseDate(dateOfFirstActivity),
granularity: 'day',
to: new Date()
})
diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
index 8fee1957c..b3b1d3410 100644
--- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
+++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
@@ -407,9 +407,11 @@ export abstract class PortfolioCalculator {
includeInTotalAssetValue,
timeWeightedInvestment,
timeWeightedInvestmentWithCurrencyEffect,
+ activitiesCount: item.activitiesCount,
averagePrice: item.averagePrice,
currency: item.currency,
dataSource: item.dataSource,
+ dateOfFirstActivity: item.dateOfFirstActivity,
dividend: totalDividend,
dividendInBaseCurrency: totalDividendInBaseCurrency,
fee: item.fee,
@@ -993,9 +995,11 @@ export abstract class PortfolioCalculator {
investment,
skipErrors,
symbol,
+ activitiesCount: oldAccumulatedSymbol.activitiesCount + 1,
averagePrice: newQuantity.eq(0)
? new Big(0)
: investment.div(newQuantity).abs(),
+ dateOfFirstActivity: oldAccumulatedSymbol.dateOfFirstActivity,
dividend: new Big(0),
fee: oldAccumulatedSymbol.fee.plus(fee),
feeInBaseCurrency:
@@ -1016,7 +1020,9 @@ export abstract class PortfolioCalculator {
skipErrors,
symbol,
tags,
+ activitiesCount: 1,
averagePrice: unitPrice,
+ dateOfFirstActivity: date,
dividend: new Big(0),
firstBuyDate: date,
includeInHoldings: INVESTMENT_ACTIVITY_TYPES.includes(type),
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-buy.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-buy.spec.ts
index 6b56b39a2..a1021a57b 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-buy.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-buy.spec.ts
@@ -133,15 +133,22 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot).toMatchObject({
currentValueInBaseCurrency: new Big('595.6'),
errors: [],
hasErrors: false,
positions: [
{
+ activitiesCount: 2,
averagePrice: new Big('139.75'),
currency: 'CHF',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2021-11-22',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('3.2'),
@@ -202,6 +209,10 @@ describe('PortfolioCalculator', () => {
{ date: '2021-11-01', investment: 559 },
{ date: '2021-12-01', investment: 0 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2021-01-01', investment: 559 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts
index 2aad0cb26..002730e32 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts
@@ -149,15 +149,22 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot).toMatchObject({
currentValueInBaseCurrency: new Big('0'),
errors: [],
hasErrors: false,
positions: [
{
+ activitiesCount: 3,
averagePrice: new Big('0'),
currency: 'CHF',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2021-11-22',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('3.2'),
@@ -216,6 +223,10 @@ describe('PortfolioCalculator', () => {
{ date: '2021-11-01', investment: 0 },
{ date: '2021-12-01', investment: 0 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2021-01-01', investment: 0 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts
index 35e4309eb..e4ba70158 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts
@@ -133,15 +133,22 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot).toMatchObject({
currentValueInBaseCurrency: new Big('0'),
errors: [],
hasErrors: false,
positions: [
{
+ activitiesCount: 2,
averagePrice: new Big('0'),
currency: 'CHF',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2021-11-22',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('3.2'),
@@ -200,6 +207,10 @@ describe('PortfolioCalculator', () => {
{ date: '2021-11-01', investment: 0 },
{ date: '2021-12-01', investment: 0 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2021-01-01', investment: 0 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts
index ebce2ac1c..e6cae7865 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts
@@ -123,15 +123,22 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot).toMatchObject({
currentValueInBaseCurrency: new Big('297.8'),
errors: [],
hasErrors: false,
positions: [
{
+ activitiesCount: 1,
averagePrice: new Big('136.6'),
currency: 'CHF',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2021-11-30',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('1.55'),
@@ -199,6 +206,10 @@ describe('PortfolioCalculator', () => {
{ date: '2021-11-01', investment: 273.2 },
{ date: '2021-12-01', investment: 0 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2021-01-01', investment: 273.2 }
+ ]);
});
it.only('with BALN.SW buy (with unit price lower than closing price)', async () => {
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts
index 9ca8b2d36..6cc58a70f 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts
@@ -132,6 +132,11 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot.historicalData[0]).toEqual({
date: '2021-12-11',
investmentValueWithCurrencyEffect: 0,
@@ -190,9 +195,11 @@ describe('PortfolioCalculator', () => {
hasErrors: false,
positions: [
{
+ activitiesCount: 1,
averagePrice: new Big('44558.42'),
currency: 'USD',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2021-12-12',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('4.46'),
@@ -245,6 +252,11 @@ describe('PortfolioCalculator', () => {
{ date: '2021-12-01', investment: 44558.42 },
{ date: '2022-01-01', investment: 0 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2021-01-01', investment: 44558.42 },
+ { date: '2022-01-01', investment: 0 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts
index 3648eb84b..41f1d80a8 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts
@@ -146,6 +146,11 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot).toMatchObject({
currentValueInBaseCurrency: new Big('13298.425356'),
errors: [],
@@ -153,9 +158,11 @@ describe('PortfolioCalculator', () => {
hasErrors: false,
positions: [
{
+ activitiesCount: 2,
averagePrice: new Big('320.43'),
currency: 'USD',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2015-01-01',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('0'),
@@ -253,6 +260,13 @@ describe('PortfolioCalculator', () => {
{ date: '2017-12-01', investment: -318.54266729999995 },
{ date: '2018-01-01', investment: 0 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2015-01-01', investment: 637.0853345999999 },
+ { date: '2016-01-01', investment: 0 },
+ { date: '2017-01-01', investment: -318.54266729999995 },
+ { date: '2018-01-01', investment: 0 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts
index 5179fdaa6..b8cecb350 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts
@@ -132,6 +132,11 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot.historicalData[0]).toEqual({
date: '2021-12-11',
investmentValueWithCurrencyEffect: 0,
@@ -190,9 +195,11 @@ describe('PortfolioCalculator', () => {
hasErrors: false,
positions: [
{
+ activitiesCount: 1,
averagePrice: new Big('44558.42'),
currency: 'USD',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2021-12-12',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('4.46'),
@@ -245,6 +252,11 @@ describe('PortfolioCalculator', () => {
{ date: '2021-12-01', investment: 44558.42 },
{ date: '2022-01-01', investment: 0 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2021-01-01', investment: 44558.42 },
+ { date: '2022-01-01', investment: 0 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts
index c9adebc44..bbcaba294 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts
@@ -230,9 +230,11 @@ describe('PortfolioCalculator', () => {
* Value in base currency: 2000 USD * 0.91 = 1820 CHF
*/
expect(position).toMatchObject({
+ activitiesCount: 2,
averagePrice: new Big(1),
currency: 'USD',
dataSource: DataSource.YAHOO,
+ dateOfFirstActivity: '2023-12-31',
dividend: new Big(0),
dividendInBaseCurrency: new Big(0),
fee: new Big(0),
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts
index fa38d0030..e438d9c6d 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts
@@ -129,15 +129,22 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot).toMatchObject({
currentValueInBaseCurrency: new Big('103.10483'),
errors: [],
hasErrors: false,
positions: [
{
+ activitiesCount: 1,
averagePrice: new Big('89.12'),
currency: 'USD',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2023-01-03',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('1'),
@@ -218,6 +225,10 @@ describe('PortfolioCalculator', () => {
investment: 0
}
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2023-01-01', investment: 82.329056 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts
index ab7480bbf..88895b8c6 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts
@@ -131,9 +131,11 @@ describe('PortfolioCalculator', () => {
hasErrors: false,
positions: [
{
+ activitiesCount: 2,
averagePrice: new Big('298.58'),
currency: 'USD',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2021-09-16',
dividend: new Big('0.62'),
dividendInBaseCurrency: new Big('0.62'),
fee: new Big('19'),
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts
index fdd9e4718..6c47af7ca 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts
@@ -93,6 +93,11 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot).toMatchObject({
currentValueInBaseCurrency: new Big(0),
hasErrors: false,
@@ -108,6 +113,8 @@ describe('PortfolioCalculator', () => {
expect(investments).toEqual([]);
expect(investmentsByMonth).toEqual([]);
+
+ expect(investmentsByYear).toEqual([]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts
index 32a1b02f3..8c0b1af6a 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts
@@ -129,15 +129,22 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot).toMatchObject({
currentValueInBaseCurrency: new Big('87.8'),
errors: [],
hasErrors: false,
positions: [
{
+ activitiesCount: 2,
averagePrice: new Big('75.80'),
currency: 'CHF',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2022-03-07',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('4.25'),
@@ -198,6 +205,10 @@ describe('PortfolioCalculator', () => {
{ date: '2022-03-01', investment: 151.6 },
{ date: '2022-04-01', investment: -75.8 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2022-01-01', investment: 75.8 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts
index f2903f3cd..c4850db66 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts
@@ -129,6 +129,11 @@ describe('PortfolioCalculator', () => {
groupBy: 'month'
});
+ const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({
+ data: portfolioSnapshot.historicalData,
+ groupBy: 'year'
+ });
+
expect(portfolioSnapshot.historicalData[0]).toEqual({
date: '2022-03-06',
investmentValueWithCurrencyEffect: 0,
@@ -188,9 +193,11 @@ describe('PortfolioCalculator', () => {
hasErrors: false,
positions: [
{
+ activitiesCount: 2,
averagePrice: new Big('0'),
currency: 'CHF',
dataSource: 'YAHOO',
+ dateOfFirstActivity: '2022-03-07',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('0'),
@@ -249,6 +256,10 @@ describe('PortfolioCalculator', () => {
{ date: '2022-03-01', investment: 151.6 },
{ date: '2022-04-01', investment: -151.6 }
]);
+
+ expect(investmentsByYear).toEqual([
+ { date: '2022-01-01', investment: 0 }
+ ]);
});
});
});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-valuable.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-valuable.spec.ts
index 3a00c022c..5e73841ce 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-valuable.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-valuable.spec.ts
@@ -116,9 +116,11 @@ describe('PortfolioCalculator', () => {
hasErrors: false,
positions: [
{
+ activitiesCount: 1,
averagePrice: new Big('500000'),
currency: 'USD',
dataSource: 'MANUAL',
+ dateOfFirstActivity: '2022-01-01',
dividend: new Big('0'),
dividendInBaseCurrency: new Big('0'),
fee: new Big('0'),
diff --git a/apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts b/apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts
index 1c43508dd..ab2351f11 100644
--- a/apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts
+++ b/apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts
@@ -2,19 +2,26 @@ import { AssetSubClass, DataSource, Tag } from '@prisma/client';
import { Big } from 'big.js';
export interface TransactionPointSymbol {
+ activitiesCount: number;
assetSubClass: AssetSubClass;
averagePrice: Big;
currency: string;
dataSource: DataSource;
+ dateOfFirstActivity: string;
dividend: Big;
fee: Big;
feeInBaseCurrency: Big;
+
+ /** @deprecated use dateOfFirstActivity instead */
firstBuyDate: string;
+
includeInHoldings: boolean;
investment: Big;
quantity: Big;
skipErrors: boolean;
symbol: string;
tags?: Tag[];
+
+ /** @deprecated use activitiesCount instead */
transactionCount: number;
}
diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts
index 5fc2224eb..20016e67f 100644
--- a/apps/api/src/app/portfolio/portfolio.service.ts
+++ b/apps/api/src/app/portfolio/portfolio.service.ts
@@ -179,9 +179,9 @@ export class PortfolioService {
return Promise.all(
accounts.map(async (account) => {
+ let activitiesCount = 0;
let dividendInBaseCurrency = 0;
let interestInBaseCurrency = 0;
- let transactionCount = 0;
for (const {
currency,
@@ -214,7 +214,7 @@ export class PortfolioService {
}
if (!isDraft) {
- transactionCount += 1;
+ activitiesCount += 1;
}
}
@@ -223,9 +223,9 @@ export class PortfolioService {
const result = {
...account,
+ activitiesCount,
dividendInBaseCurrency,
interestInBaseCurrency,
- transactionCount,
valueInBaseCurrency,
allocationInPercentage: 0,
balanceInBaseCurrency: this.exchangeRateDataService.toCurrency(
@@ -233,6 +233,7 @@ export class PortfolioService {
account.currency,
userCurrency
),
+ transactionCount: activitiesCount,
value: this.exchangeRateDataService.toCurrency(
valueInBaseCurrency,
userCurrency,
@@ -262,6 +263,8 @@ export class PortfolioService {
withExcludedAccounts
});
+ let activitiesCount = 0;
+
const searchQuery = filters.find(({ type }) => {
return type === 'SEARCH_QUERY';
})?.id;
@@ -284,6 +287,8 @@ export class PortfolioService {
let transactionCount = 0;
for (const account of accounts) {
+ activitiesCount += account.activitiesCount;
+
totalBalanceInBaseCurrency = totalBalanceInBaseCurrency.plus(
account.balanceInBaseCurrency
);
@@ -296,6 +301,7 @@ export class PortfolioService {
totalValueInBaseCurrency = totalValueInBaseCurrency.plus(
account.valueInBaseCurrency
);
+
transactionCount += account.transactionCount;
}
@@ -310,6 +316,7 @@ export class PortfolioService {
return {
accounts,
+ activitiesCount,
transactionCount,
totalBalanceInBaseCurrency: totalBalanceInBaseCurrency.toNumber(),
totalDividendInBaseCurrency: totalDividendInBaseCurrency.toNumber(),
@@ -567,6 +574,7 @@ export class PortfolioService {
}
for (const {
+ activitiesCount,
currency,
dividend,
firstBuyDate,
@@ -610,6 +618,7 @@ export class PortfolioService {
}
holdings[symbol] = {
+ activitiesCount,
currency,
markets,
marketsAdvanced,
@@ -789,6 +798,7 @@ export class PortfolioService {
}
const {
+ activitiesCount,
averagePrice,
currency,
dividendInBaseCurrency,
@@ -807,8 +817,7 @@ export class PortfolioService {
quantity,
tags,
timeWeightedInvestment,
- timeWeightedInvestmentWithCurrencyEffect,
- transactionCount
+ timeWeightedInvestmentWithCurrencyEffect
} = holding;
const activitiesOfHolding = activities.filter(({ SymbolProfile }) => {
@@ -914,15 +923,15 @@ export class PortfolioService {
);
return {
- firstBuyDate,
+ activitiesCount,
marketPrice,
marketPriceMax,
marketPriceMin,
SymbolProfile,
tags,
- activitiesCount: transactionCount,
averagePrice: averagePrice.toNumber(),
dataProviderInfo: portfolioCalculator.getDataProviderInfos()?.[0],
+ dateOfFirstActivity: firstBuyDate,
dividendInBaseCurrency: dividendInBaseCurrency.toNumber(),
dividendYieldPercent: dividendYieldPercent.toNumber(),
dividendYieldPercentWithCurrencyEffect:
@@ -1657,6 +1666,7 @@ export class PortfolioService {
}): PortfolioPosition {
return {
currency,
+ activitiesCount: 0,
allocationInPercentage: 0,
assetClass: AssetClass.LIQUIDITY,
assetSubClass: AssetSubClass.CASH,
diff --git a/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json b/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json
index 5becbf2f9..6806bb8ff 100644
--- a/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json
+++ b/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json
@@ -56,6 +56,7 @@
"10SET": "Tenset",
"1ART": "ArtWallet",
"1CAT": "Bitcoin Cats",
+ "1COIN": "1 coin can change your life",
"1CR": "1Credit",
"1EARTH": "EarthFund",
"1ECO": "1eco",
@@ -153,6 +154,7 @@
"8PAY": "8Pay",
"8X8": "8X8 Protocol",
"99BTC": "99 Bitcoins",
+ "9BIT": "The9bit",
"9DOGS": "NINE DOGS",
"9GAG": "9GAG",
"9MM": "Shigure UI",
@@ -177,6 +179,7 @@
"AAC": "Double-A Chain",
"AAG": "AAG Ventures",
"AAI": "AutoAir AI",
+ "AAPLON": "Apple (Ondo Tokenized)",
"AAPLX": "Apple xStock",
"AAPX": "AMPnet",
"AARBWBTC": "Aave Arbitrum WBTC",
@@ -435,6 +438,7 @@
"AIAI": "All In AI",
"AIAKITA": "AiAkita",
"AIAT": "AI Analysis Token",
+ "AIAV": "AI AVatar",
"AIB": "AdvancedInternetBlock",
"AIBABYDOGE": "AIBabyDoge",
"AIBB": "AiBB",
@@ -508,6 +512,7 @@
"AIPAD": "AIPAD",
"AIPE": "AI Prediction Ecosystem",
"AIPEPE": "AI PEPE KING",
+ "AIPF": "AI Powered Finance",
"AIPG": "AI Power Grid",
"AIPIN": "AI PIN",
"AIPO": "Aipocalypto",
@@ -552,7 +557,7 @@
"AIVV1": "AIVille Governance Token",
"AIWALLET": "AiWallet Token",
"AIWS": "AIWS",
- "AIX": "ALIENX",
+ "AIX": "Ai Xovia",
"AIX9": "AthenaX9",
"AIXBT": "aixbt by Virtuals",
"AIXCB": "aixCB by Virtuals",
@@ -625,6 +630,7 @@
"ALIEN": "AlienCoin",
"ALIENPEP": "Alien Pepe",
"ALIENS": "Aliens",
+ "ALIENX": "ALIENX",
"ALIF": " ALIF COIN",
"ALINK": "Aave LINK v1",
"ALIS": "ALISmedia",
@@ -1358,6 +1364,7 @@
"BABI": "Babylons",
"BABL": "Babylon Finance",
"BABY": "Babylon",
+ "BABY4": "Baby 4",
"BABYANDY": "Baby Andy",
"BABYASTER": "Baby Aster",
"BABYB": "Baby Bali",
@@ -1372,6 +1379,7 @@
"BABYBOME": "Book of Baby Memes",
"BABYBOMEOW": "Baby of BOMEOW",
"BABYBONK": "Baby Bonk",
+ "BABYBOOM": "BabyBoomToken",
"BABYBOSS": "Baby Boss",
"BABYBROC": "Baby Broccoli",
"BABYBROCCOL": "Baby Broccoli",
@@ -1618,6 +1626,7 @@
"BB": "BounceBit",
"BB1": "Bitbond",
"BBADGER": "Badger Sett Badger",
+ "BBAION": "BigBear.ai Holdings (Ondo Tokenized)",
"BBANK": "BlockBank",
"BBB": "BitBullBot",
"BBBTC": "Big Back Bitcoin",
@@ -1651,7 +1660,7 @@
"BBS": "BBSCoin",
"BBSNEK": "BabySNEK",
"BBSOL": "Bybit Staked SOL",
- "BBT": "BabyBoomToken",
+ "BBT": "BurgerBlastToken",
"BBTC": "Binance Wrapped BTC",
"BBTF": "Block Buster Tech Inc",
"BBUSD": "BounceBit USD",
@@ -1748,8 +1757,9 @@
"BEAMMW": "Beam",
"BEAN": "Bean",
"BEANS": "SUNBEANS (BEANS)",
- "BEAR": "Bear Inu",
+ "BEAR": "3X Short Bitcoin Token",
"BEARIN": "Bear in Bathrobe",
+ "BEARINU": "Bear Inu",
"BEAST": "MrBeast",
"BEAT": "Beat Token",
"BEATAI": "eBeat AI",
@@ -1837,7 +1847,7 @@
"BES": "battle esports coin",
"BESA": "Besa Gaming",
"BESHARE": "Beshare Token",
- "BEST": "Bitpanda Ecosystem Token",
+ "BEST": "Best Wallet Token",
"BESTC": "BestChain",
"BETA": "Beta Finance",
"BETACOIN": "BetaCoin",
@@ -2060,6 +2070,7 @@
"BITOK": "BitOKX",
"BITONE": "BITONE",
"BITORB": "BitOrbit",
+ "BITPANDA": "Bitpanda Ecosystem Token",
"BITRA": "Bitratoken",
"BITRADIO": "Bitradio",
"BITREWARDS": "BitRewards",
@@ -2542,6 +2553,7 @@
"BPD": "Beautiful Princess Disorder",
"BPDAI": "Binance-Peg Dai (Binance Bridge)",
"BPDOGE": "Binance-Peg DogeZilla (Binance Bridge)",
+ "BPEPE": "BABY PEPE",
"BPEPEF": "Baby Pepe Floki",
"BPET": "BPET",
"BPINKY": "BPINKY",
@@ -2780,6 +2792,7 @@
"BTCHD": "Bitcoin HD",
"BTCINU": "Bitcoin Inu",
"BTCIX": "BITCOLOJIX",
+ "BTCJ": "Bitcoin (JustCrypto)",
"BTCK": "Bitcoin Turbo Koin",
"BTCL": "BTC Lite",
"BTCM": "BTCMoon",
@@ -2798,7 +2811,7 @@
"BTCS": "Bitcoin Scrypt",
"BTCSR": "BTC Strategic Reserve",
"BTCST": "BTC Standard Hashrate Token",
- "BTCT": "Bitcoin Token",
+ "BTCTOKEN": "Bitcoin Token",
"BTCUS": "Bitcoinus",
"BTCV": "Bitcoin Vault",
"BTCVB": "BitcoinVB",
@@ -2955,6 +2968,7 @@
"BURRRD": "BURRRD",
"BURT": "BURT",
"BUSD": "Binance USD",
+ "BUSD0": "Bond USD0",
"BUSDC": "BUSD",
"BUSY": "Busy DAO",
"BUT": "Bucket Token",
@@ -3058,7 +3072,7 @@
"CAG": "Change",
"CAGA": "Crypto Asset Governance Alliance",
"CAH": "Moon Tropica",
- "CAI": "Chasm",
+ "CAI": "CharacterX",
"CAID": "ClearAid",
"CAILA": "Caila",
"CAIR": "Crypto-AI-Robo.com",
@@ -3415,12 +3429,14 @@
"CHARGED": "GoCharge Tech",
"CHARIZARD": "Charizard Inu",
"CHARL": "Charlie",
+ "CHARLI": "Charlie Trump Dog",
"CHARLIE": "Charlie Kirk",
"CHARM": "Charm Coin",
"CHARS": "CHARS",
"CHART": "BetOnChart",
"CHARTA": "CHARTAI",
"CHARTIQ": "ChartIQ",
+ "CHAS": "Chasm",
"CHASH": "CleverHash",
"CHAT": "Solchat",
"CHATAI": "ChatAI Token",
@@ -3527,6 +3543,7 @@
"CHR": "Chroma",
"CHRETT": "Chinese BRETT",
"CHRISPUMP": "Christmas Pump",
+ "CHRONOEFFE": "Chronoeffector",
"CHRP": "Chirpley",
"CHS": "Chainsquare",
"CHSB": "SwissBorg",
@@ -3576,6 +3593,7 @@
"CIX100": "Cryptoindex",
"CJ": "CryptoJacks",
"CJC": "CryptoJournal",
+ "CJL": "Cjournal",
"CJR": "Conjure",
"CJT": "ConnectJob Token",
"CKB": "Nervos Network",
@@ -3761,6 +3779,7 @@
"COINBANK": "CoinBank",
"COINBT": "CoinBot",
"COINBUCK": "Coinbuck",
+ "COINCOLLECT": "CoinCollect",
"COINDEALTOKEN": "CoinDeal Token",
"COINDEFI": "Coin",
"COINDEPO": "CoinDepo Token",
@@ -3770,6 +3789,7 @@
"COINLION": "CoinLion",
"COINM": "CoinMarketPrime",
"COINONAT": "Coinonat",
+ "COINRADR": "CoinRadr",
"COINSCOPE": "Coinscope",
"COINSL": "CoinsLoot",
"COINVEST": "Coinvest",
@@ -3788,7 +3808,7 @@
"COLLAT": "Collaterize",
"COLLE": "Collective Care",
"COLLEA": "Colle AI",
- "COLLECT": "CoinCollect",
+ "COLLECT": "Collect on Fanable",
"COLLG": "Collateral Pay Governance",
"COLON": "Colon",
"COLR": "colR Coin",
@@ -4900,6 +4920,7 @@
"DMTR": "Dimitra",
"DMX": "Dymmax",
"DMZ": "DeMon Token",
+ "DN": "DeepNode",
"DN8": "Pldgr",
"DNA": "Metaverse",
"DNAPEPE": "DNA PEPE",
@@ -4909,6 +4930,7 @@
"DNFLX": "Netflix Tokenized Stock Defichain",
"DNFT": "DareNFT",
"DNN": "DNN Token",
+ "DNNON": "Denison Mines (Ondo Tokenized)",
"DNO": "Denaro",
"DNODE": "DecentraNode",
"DNOTES": "Dnotes",
@@ -4984,6 +5006,7 @@
"DOGEIN": "Doge In Glasses",
"DOGEINU": "Doge Inu",
"DOGEIUS": "DOGEIUS",
+ "DOGEJ": "Dogecoin (JustCrypto)",
"DOGEKING": "DogeKing",
"DOGELEGION": "DOGE LEGION",
"DOGEM": "Doge Matrix",
@@ -5630,6 +5653,7 @@
"ELONTRUMP": "ELON TRUMP",
"ELP": "Ellerium",
"ELS": "Ethlas",
+ "ELSA": "Elsa",
"ELT": "Element Black",
"ELTC2": "eLTC",
"ELTCOIN": "ELTCOIN",
@@ -5700,6 +5724,7 @@
"ENEDEX": "Enedex",
"ENERGYLEDGER": "Energy Ledger",
"ENERGYX": "Safe Energy",
+ "ENEXSPACE": "ENEX",
"ENF": "enfineo",
"ENG": "Enigma",
"ENGT": "Engagement Token",
@@ -5722,6 +5747,7 @@
"ENTER": "EnterCoin",
"ENTR": "EnterDAO",
"ENTRC": "ENTER COIN",
+ "ENTROPY": "Entropy",
"ENTRP": "Hut34 Project",
"ENTRY": "ENTRY",
"ENTS": "Ents",
@@ -5731,7 +5757,7 @@
"ENVIENTA": "Envienta",
"ENVION": "Envion",
"ENVOY": "Envoy A.I",
- "ENX": "ENEX",
+ "ENX": "Enigma",
"EOC": "EveryonesCoin",
"EON": "Exscudo",
"EONC": "Dimension",
@@ -5783,6 +5809,7 @@
"ERA7": "Era Token",
"ERASWAP": "Era Swap Token",
"ERB": "ERBCoin",
+ "ERBB": "Exchange Request for Bitbon",
"ERC": "EuropeCoin",
"ERC20": "ERC20",
"ERC20V1": "ERC20 v1",
@@ -5821,7 +5848,7 @@
"ESGC": "ESG Chain",
"ESH": "Switch",
"ESHIB": "Euro Shiba Inu",
- "ESIM": "EvoSimGame",
+ "ESIM": "DEPINSIM Token",
"ESM": "EL SALVADOR MEME",
"ESN": "Ethersocial",
"ESNC": "Galaxy Arena Metaverse",
@@ -5882,6 +5909,7 @@
"ETHFI": "Ether.fi",
"ETHI": "Ethical Finance",
"ETHIX": "EthicHub",
+ "ETHJ": "Ethereum (JustCrypto)",
"ETHM": "Ethereum Meta",
"ETHO": "The Etho Protocol",
"ETHOS": "Ethos Project",
@@ -5954,6 +5982,7 @@
"EURU": "Upper Euro",
"EURX": "eToro Euro",
"EUSD": "Egoras Dollar",
+ "EUSX": "eUSX",
"EUT": "EarnUp Token",
"EUTBL": "Spiko EU T-Bills Money Market Fund",
"EV": "EVAI",
@@ -5992,6 +6021,7 @@
"EVOC": "EVOCPLUS",
"EVOL": "EVOL NETWORK",
"EVOS": "EVOS",
+ "EVOSIM": "EvoSimGame",
"EVOVERSES": "EvoVerses",
"EVR": "Everus",
"EVRICE": "Evrice",
@@ -6106,6 +6136,7 @@
"FAN": "Fanadise",
"FAN360": "Fan360",
"FANC": "fanC",
+ "FANCYTHATTOKEN": "Fancy That",
"FAND": "Fandomdao",
"FANG": "FANG Token",
"FANS": "Fantasy Cash",
@@ -6328,6 +6359,7 @@
"FK": "FK Coin",
"FKBIDEN": "Fkbiden",
"FKGARY": "Fuck Gary Gensler",
+ "FKH": "Flying Ketamine Horse",
"FKPEPE": "Fuck Pepe",
"FKR": "Flicker",
"FKRPRO": "FlickerPro",
@@ -6453,7 +6485,7 @@
"FNB": "FNB protocol",
"FNC": "Fancy Games",
"FNCT": "Financie Token",
- "FNCY": "Fancy That",
+ "FNCY": "FNCY",
"FND": "Rare FND",
"FNDZ": "FNDZ Token",
"FNF": "FunFi",
@@ -6483,6 +6515,7 @@
"FOFOTOKEN": "FOFO Token",
"FOG": "FOGnet",
"FOGE": "Fat Doge",
+ "FOGO": "Fogo",
"FOGV1": "FOGnet v1",
"FOIN": "Foin",
"FOL": "Folder Protocol",
@@ -6509,6 +6542,7 @@
"FORA": "UFORIKA",
"FORCE": "TriForce Tokens",
"FORCEC": "Force Coin",
+ "FORDON": "Ford Motor (Ondo Tokenized)",
"FORE": "FORE Protocol",
"FOREFRONT": "Forefront",
"FOREST": "Forest",
@@ -6868,6 +6902,7 @@
"GASP": "GASP",
"GASPCOIN": "gAsp",
"GASS": "Gasspas",
+ "GAST": "Gas Town",
"GASTRO": "GastroCoin",
"GAT": "Gather",
"GATA": "Gata",
@@ -7368,6 +7403,7 @@
"GQ": "Galactic Quadrant",
"GR": "GROM",
"GRAB": "GRABWAY",
+ "GRABON": "Grab Holdings (Ondo Tokenized)",
"GRACY": "Gracy",
"GRAI": "Gravita Protocol",
"GRAIL": "Camelot Token",
@@ -7376,6 +7412,7 @@
"GRAND": "Grand Theft Ape",
"GRANDCOIN": "GrandCoin",
"GRANDMA": "Grandma",
+ "GRANT": "GrantiX Token",
"GRAPE": "GrapeCoin",
"GRAPHGRAIAI": "GraphGrail AI",
"GRASS": "Grass",
@@ -7618,6 +7655,7 @@
"HALF": "0.5X Long Bitcoin Token",
"HALFP": "Half Pizza",
"HALFSHIT": "0.5X Long Shitcoin Index Token",
+ "HALIS": "Halis",
"HALLO": "Halloween Coin",
"HALLOWEEN": "HALLOWEEN",
"HALO": "Halo Coin",
@@ -7883,7 +7921,7 @@
"HLP": "Purpose Coin",
"HLPR": "HELPER COIN",
"HLPT": "HLP Token",
- "HLS": "Halis",
+ "HLS": "Helios",
"HLT": "HyperLoot",
"HLTC": "Huobi LTC",
"HLX": "Helex",
@@ -8229,6 +8267,7 @@
"IDLE": "IDLE",
"IDM": "IDM",
"IDNA": "Idena",
+ "IDNG": "IDNGold",
"IDO": "Idexo",
"IDOL": "MEET48 Token",
"IDOLINU": "IDOLINU",
@@ -8392,12 +8431,14 @@
"INSPI": "InspireAI",
"INSR": "Insurabler",
"INSTAMINE": "Instamine Nuggets",
+ "INSTANTSPONSOR": "Instant Sponsor Token",
"INSTAR": "Insights Network",
"INSUR": "InsurAce",
"INSURANCE": "insurance",
"INSURC": "InsurChain Coin",
"INSUREDFIN": "Insured Finance",
"INT": "Internet Node token",
+ "INTCON": "Intel (Ondo Tokenized)",
"INTCX": "Intel xStock",
"INTD": "INTDESTCOIN",
"INTE": "InteractWith",
@@ -8578,6 +8619,7 @@
"J9BC": "J9CASINO",
"JACK": "Jack Token",
"JACKPOT": "Solana Jackpot",
+ "JACKSON": "Jackson",
"JACS": "JACS",
"JACY": "JACY",
"JADE": "Jade Protocol",
@@ -8704,6 +8746,7 @@
"JNX": "Janex",
"JNY": "JNY",
"JOB": "Jobchain",
+ "JOBCOIN": "buy instead of getting a job",
"JOBIESS": "JobIess",
"JOBS": "JobsCoin",
"JOBSEEK": "JobSeek AI",
@@ -8719,7 +8762,8 @@
"JOHNNY": "Johnny The Bull",
"JOINCOIN": "JoinCoin",
"JOINT": "Joint Ventures",
- "JOJO": "JOJO",
+ "JOJO": "JOJOWORLD",
+ "JOJOSCLUB": "JOJO",
"JOJOTOKEN": "JOJO",
"JOK": "JokInTheBox",
"JOKER": "JOKER",
@@ -9613,10 +9657,11 @@
"LISTA": "Lista DAO",
"LISTEN": "Listen",
"LISUSD": "lisUSD",
- "LIT": "Litentry",
+ "LIT": "Lighter",
"LITE": "Lite USD",
"LITEBTC": "LiteBitcoin",
"LITENETT": "Litenett",
+ "LITENTRY": "Litentry",
"LITH": "Lithium Finance",
"LITHIUM": "Lithium",
"LITHO": "Lithosphere",
@@ -9748,7 +9793,7 @@
"LORY": "Yield Parrot",
"LOS": "Lord Of SOL",
"LOST": "Lost Worlds",
- "LOT": "Lukki Operating Token",
+ "LOT": "League of Traders",
"LOTES": "Loteo",
"LOTEU": "Loteo",
"LOTT": "Beauty bakery lott",
@@ -9824,6 +9869,7 @@
"LTCC": "Listerclassic Coin",
"LTCD": "LitecoinDark",
"LTCH": "Litecoin Cash",
+ "LTCJ": "Litecoin (JustCrypto)",
"LTCP": "LitecoinPro",
"LTCR": "LiteCreed",
"LTCU": "LiteCoin Ultra",
@@ -9875,6 +9921,7 @@
"LUFFYV1": "Luffy v1",
"LUIGI": "Luigi Inu",
"LUIS": "Tongue Cat",
+ "LUKKI": "Lukki Operating Token",
"LULU": "LULU",
"LUM": "Luminous",
"LUMA": "LUMA Token",
@@ -10068,8 +10115,7 @@
"MANUSAI": "Manus AI Agent",
"MANYU": "Manyu",
"MANYUDOG": "MANYU",
- "MAO": "MAO",
- "MAOMEME": "Mao",
+ "MAO": "Mao",
"MAOW": "MAOW",
"MAP": "MAP Protocol",
"MAPC": "MapCoin",
@@ -10105,6 +10151,7 @@
"MARSMI": "MarsMi",
"MARSO": "Marso.Tech",
"MARSRISE": "MarsRise",
+ "MARSTOKEN": "Mars Token",
"MARSUPILAMI": "MARSUPILAMI INU",
"MARSW": "Marswap",
"MART": "ArtMeta",
@@ -10240,6 +10287,7 @@
"MCIV": "Mars Civ Project",
"MCL": "McLaren F1",
"MCLB": "Millennium Club Coin",
+ "MCM": "Mochimo",
"MCN": "mCoin",
"MCO": "Crypto.com",
"MCO2": "Moss Carbon Credit",
@@ -10310,6 +10358,7 @@
"MEF": "MEFLEX",
"MEFA": "Metaverse Face",
"MEFAI": "META FINANCIAL AI",
+ "MEFI": "Meo Finance",
"MEGA": "MegaFlash",
"MEGABOT": "Megabot",
"MEGAD": "Mega Dice Casino",
@@ -10953,6 +11002,7 @@
"MOTIONCOIN": "Motion",
"MOTO": "Motocoin",
"MOUND": "Mound Token",
+ "MOUNTA": "Mountain Protocol",
"MOUTAI": "Moutai",
"MOV": "MovieCoin",
"MOVD": "MOVE Network",
@@ -11137,6 +11187,7 @@
"MUNITY": "Metahorse Unity",
"MUNK": "Dramatic Chipmunk",
"MUNSUN": "MUNSUN",
+ "MUON": "Micron Technology (Ondo Tokenized)",
"MURA": "Murasaki",
"MURATIAI": "MuratiAI",
"MUSCAT": "MusCat",
@@ -11184,9 +11235,11 @@
"MWD": "MEW WOOF DAO",
"MWETH": "Moonwell Flagship ETH (Morpho Vault)",
"MWH": "Melania Wif Hat",
+ "MWT": "Mountain Wolf Token",
"MWXT": "MWX Token",
"MX": "MX Token",
- "MXC": "Machine Xchange Coin",
+ "MXC": "MXC Token",
+ "MXCV1": "Machine Xchange Coin v1",
"MXD": "Denarius",
"MXGP": "MXGP Fan Token",
"MXM": "Maximine",
@@ -11455,6 +11508,7 @@
"NEWSTOKENS": "NewsTokens",
"NEWT": "Newton Protocol",
"NEWTON": "Newtonium",
+ "NEWYORKCOIN": "NewYorkCoin",
"NEX": "Nash Exchange",
"NEXA": "Nexa",
"NEXAI": "NexAI",
@@ -11482,6 +11536,7 @@
"NFCR": "NFCore",
"NFD": "Feisty Doge NFT",
"NFE": "Edu3Labs",
+ "NFLXON": "Netflix (Ondo Tokenized)",
"NFLXX": "Netflix xStock",
"NFM": "NFMart",
"NFN": "Nafen",
@@ -11519,6 +11574,7 @@
"NGL": "Entangle",
"NGM": "e-Money",
"NGMI": "NGMI Coin",
+ "NGNT": "Naira Token",
"NGTG": "NUGGET TRAP",
"NHCT": "Nano Healthcare Token",
"NHI": "Non Human Intelligence",
@@ -11616,6 +11672,7 @@
"NOBS": "No BS Crypto",
"NOC": "Nono Coin",
"NOCHILL": "AVAX HAS NO CHILL",
+ "NOCK": "Nockchain",
"NODE": "NodeOps",
"NODELYAI": "NodelyAI",
"NODESYNAPSE": "NodeSynapse",
@@ -11661,7 +11718,9 @@
"NOTDOG": "NOTDOG",
"NOTE": "Republic Note",
"NOTECANTO": "Note",
- "NOTHING": "NOTHING",
+ "NOTHING": "Youll own nothing & be happy",
+ "NOTHINGCASH": "NOTHING",
+ "NOTIFAI": "NotifAi News",
"NOTINU": "NOTCOIN INU",
"NOTIONAL": "Notional Finance",
"NOV": "Novara Calcio Fan Token",
@@ -11677,6 +11736,7 @@
"NPER": "NPER",
"NPICK": "NPICK BLOCK",
"NPLC": "Plus Coin",
+ "NPLCV1": "PlusCoin v1",
"NPM": "Neptune Mutual",
"NPRO": "NPRO",
"NPT": "Neopin",
@@ -11769,6 +11829,7 @@
"NVA": "Neeva Defi",
"NVB": "NovaBank",
"NVC": "NovaCoin",
+ "NVDAON": "NVIDIA (Ondo Tokenized)",
"NVDAX": "NVIDIA xStock",
"NVDX": "Nodvix",
"NVG": "NightVerse Game",
@@ -11810,7 +11871,7 @@
"NYANDOGE": "NyanDOGE International",
"NYANTE": "Nyantereum International",
"NYBBLE": "Nybble",
- "NYC": "NewYorkCoin",
+ "NYC": "NYC",
"NYCREC": "NYCREC",
"NYE": "NewYork Exchange",
"NYEX": "Nyerium",
@@ -11866,6 +11927,7 @@
"OCE": "OceanEX Token",
"OCEAN": "Ocean Protocol",
"OCEANT": "Poseidon Foundation",
+ "OCEANV1": "Ocean Protocol v1",
"OCH": "Orchai",
"OCICAT": "OciCat",
"OCL": "Oceanlab",
@@ -12013,7 +12075,7 @@
"OMNIXIO": "OMNIX",
"OMNOM": "Doge Eat Doge",
"OMNOMN": "Omega Network",
- "OMT": "Mars Token",
+ "OMT": "Oracle Meta Technologies",
"OMV1": "OM Token (v1)",
"OMX": "Project Shivom",
"OMZ": "Open Meta City",
@@ -12023,6 +12085,7 @@
"ONCH": "OnchainPoints.xyz",
"ONDO": "Ondo",
"ONDOAI": "Ondo DeFAI",
+ "ONDSON": "Ondas Holdings (Ondo Tokenized)",
"ONE": "Harmony",
"ONEROOT": "OneRoot Network",
"ONES": "OneSwap DAO",
@@ -12080,6 +12143,7 @@
"OPENCUSTODY": "Open Custody Protocol",
"OPENDAO": "OpenDAO",
"OPENGO": "OPEN Governance Token",
+ "OPENON": "Opendoor Technologies (Ondo Tokenized)",
"OPENP": "Open Platform",
"OPENRI": "Open Rights Exchange",
"OPENSOURCE": "Open Source Network",
@@ -12244,7 +12308,7 @@
"OWB": "OWB",
"OWC": "Oduwa",
"OWD": "Owlstand",
- "OWL": "OWL Token",
+ "OWLTOKEN": "OWL Token",
"OWN": "OTHERWORLD",
"OWNDATA": "OWNDATA",
"OWNLY": "Ownly",
@@ -12268,6 +12332,7 @@
"OZG": "Ozagold",
"OZK": "OrdiZK",
"OZMPC": "Ozempic",
+ "OZNI": "Ni Token",
"OZO": "Ozone Chain",
"OZONE": "Ozone metaverse",
"OZONEC": "Ozonechain",
@@ -12292,6 +12357,7 @@
"PACOCA": "Pacoca",
"PACP": "PAC Protocol",
"PACT": "impactMarket",
+ "PACTTOKEN": "PACT community token",
"PACTV1": "impactMarket v1",
"PAD": "NearPad",
"PAF": "Pacific",
@@ -12335,6 +12401,7 @@
"PANGEA": "PANGEA",
"PANIC": "PanicSwap",
"PANO": "PanoVerse",
+ "PANTHER": "Panther Protocol",
"PANTOS": "Pantos",
"PAO": "South Pao",
"PAPA": "Papa Bear",
@@ -12447,10 +12514,12 @@
"PCN": "PeepCoin",
"PCNT": "Playcent",
"PCO": "Pecunio",
+ "PCOCK": "PulseChain Peacock",
"PCOIN": "Pioneer Coin",
"PCR": "Paycer Protocol",
"PCS": "Pabyosi Coin",
"PCSP": "GenomicDao G-Stroke",
+ "PCT": "PET CASH TOKEN",
"PCW": "Power Crypto World",
"PCX": "ChainX",
"PD": "PUDEL",
@@ -12461,6 +12530,7 @@
"PDD": "PDDOLLAR",
"PDEX": "Polkadex",
"PDF": "Port of DeFi Network",
+ "PDI": "Phuture DeFi Index",
"PDJT": "President Donald J. Trump",
"PDOG": "Polkadog",
"PDOGE": "PolkaDoge",
@@ -12583,6 +12653,7 @@
"PEPEMO": "PepeMo",
"PEPEMOON": "PEPEMOON",
"PEPEMUSK": "pepemusk",
+ "PEPENODE": "PEPENODE",
"PEPEOFSOL": "Pepe of Solana",
"PEPEPI": "PEPEPi",
"PEPER": "Baby Pepe",
@@ -12618,6 +12689,7 @@
"PERC": "Perion",
"PERCY": "Percy Verence",
"PERI": "PERI Finance",
+ "PERKSCOIN": "PerksCoin ",
"PERL": "PERL.eco",
"PERMIAN": "Permian",
"PERP": "Perpetual Protocol",
@@ -12645,7 +12717,9 @@
"PEUSD": "peg-eUSD",
"PEW": "pepe in a memes world",
"PEX": "Pexcoin",
+ "PF": "Purple Frog",
"PFEX": "Pfizer xStock",
+ "PFF": "PumpFunFloki",
"PFI": "PrimeFinance",
"PFID": "Pofid Dao",
"PFL": "Professional Fighters League Fan Token",
@@ -12835,7 +12909,7 @@
"PLAYCOIN": "PlayCoin",
"PLAYFUN": "PLAYFUN",
"PLAYKEY": "Playkey",
- "PLAYSOL": "Play Solana",
+ "PLAYSOLANA": "Play Solana",
"PLAYTOKEN": "Play Token",
"PLB": "Paladeum",
"PLBT": "Polybius",
@@ -12884,6 +12958,7 @@
"PLU": "Pluton",
"PLUG": "PL^Gnet",
"PLUGCN": "Plug Chain",
+ "PLUGON": "Plug Power (Ondo Tokenized)",
"PLUME": "Plume",
"PLUP": "PoolUp",
"PLURA": "PluraCoin",
@@ -12978,7 +13053,7 @@
"POLLEN": "Beraborrow",
"POLLUK": "Jasse Polluk",
"POLLUX": "Pollux Coin",
- "POLLY": "Polynetica",
+ "POLLY": "Polly Penguin",
"POLNX": "eToro Polish Zloty",
"POLO": "NftyPlay",
"POLS": "Polkastarter",
@@ -12987,6 +13062,7 @@
"POLY": "Polymath Network",
"POLYCUB": "PolyCub",
"POLYDOGE": "PolyDoge",
+ "POLYN": "Polynetica",
"POLYPAD": "PolyPad",
"POLYX": "Polymesh",
"POM": "Proof Of Memes",
@@ -13114,6 +13190,7 @@
"PREAI": "Predict Crypto",
"PREC": "Precipitate.AI",
"PRED": "Predictcoin",
+ "PREDIC": "PredicTools",
"PREM": "Premium",
"PREME": "PREME Token",
"PREMIA": "Premia",
@@ -13221,6 +13298,7 @@
"PSWAP": "Polkaswap",
"PSY": "PsyOptions",
"PSYOP": "PSYOP",
+ "PSYOPANIME": "PsyopAnime",
"PT": "Phemex",
"PTA": "PentaCoin",
"PTAS": "La Peseta",
@@ -13319,8 +13397,9 @@
"PUX": "pukkamex",
"PVC": "PVC Meta",
"PVFYBO": "JRVGCUPVSC",
- "PVP": "PvP",
+ "PVP": "Pvpfun",
"PVPCHAIN": "PVPChain",
+ "PVPGAME": "PvP",
"PVT": "Punkvism Token",
"PVU": "Plant vs Undead Token",
"PWAR": "PolkaWar",
@@ -13333,9 +13412,10 @@
"PWR": "MaxxChain",
"PWRC": "PWR Coin",
"PWT": "PANDAINU",
- "PX": "PXcoin",
+ "PX": "Not Pixel",
"PXB": "PixelBit",
"PXC": "PhoenixCoin",
+ "PXCOIN": "PXcoin",
"PXG": "PlayGame",
"PXI": "Prime-X1",
"PXL": "PIXEL",
@@ -13519,7 +13599,7 @@
"RADAR": "DappRadar",
"RADI": "RadicalCoin",
"RADIO": "RadioShack",
- "RADR": "CoinRadr",
+ "RADR": "RADR",
"RADX": "Radx AI",
"RAFF": "Ton Raffles",
"RAFFLES": "Degen Raffles",
@@ -13582,6 +13662,7 @@
"RAYS": "Rays Network",
"RAZE": "Raze Network",
"RAZOR": "Razor Network",
+ "RAZORCOIN": "RazorCoin",
"RB": "REBorn",
"RBBT": "RabbitCoin",
"RBC": "Rubic",
@@ -13928,6 +14009,7 @@
"RNDR": "Render Token",
"RNDX": "Round X",
"RNEAR": "Near (Rainbow Bridge)",
+ "RNGR": "Ranger",
"RNS": "RenosCoin",
"RNT": "REAL NIGGER TATE",
"RNTB": "BitRent",
@@ -13966,6 +14048,7 @@
"ROK": "Rockchain",
"ROKM": "Rocket Ma",
"ROKO": "Roko",
+ "ROLL": "Roll",
"ROLLSROYCE": "RollsRoyce",
"ROLS": "RollerSwap",
"ROM": "ROMCOIN",
@@ -14158,7 +14241,7 @@
"RYT": "Real Yield Token",
"RYU": "The Blue Dragon",
"RYZ": "Anryze",
- "RZR": "RazorCoin",
+ "RZR": "Rezor",
"RZTO": "RZTO Token",
"RZUSD": "RZUSD",
"RedFlokiCEO": "Red Floki CEO",
@@ -14220,6 +14303,7 @@
"SAKAI": "Sakai Vault",
"SAKATA": "Sakata Inu",
"SAKE": "SakeToken",
+ "SAKURACOIN": "Sakuracoin",
"SAL": "Salvium",
"SALD": "Salad",
"SALE": "DxSale Network",
@@ -14423,6 +14507,7 @@
"SEAM": "Seamless Protocol",
"SEAMLESS": "SeamlessSwap",
"SEAN": "Starfish Finance",
+ "SEAS": "Seasons",
"SEAT": "Seamans Token",
"SEATLABNFT": "SeatlabNFT",
"SEBA": "Seba",
@@ -14498,6 +14583,7 @@
"SETH": "sETH",
"SETH2": "sETH2",
"SETHER": "Sether",
+ "SETHH": "Staked ETH Harbour",
"SETS": "Sensitrust",
"SEUR": "Synth sEUR",
"SEW": "simpson in a memes world",
@@ -14608,6 +14694,7 @@
"SHIBACASH": "ShibaCash",
"SHIBADOG": "Shiba San",
"SHIBAI": "AiShiba",
+ "SHIBAINU": "SHIBA INU",
"SHIBAKEN": "Shibaken Finance",
"SHIBAMOM": "Shiba Mom",
"SHIBANCE": "Shibance Token",
@@ -14678,6 +14765,7 @@
"SHOKI": "Shoki",
"SHON": "ShonToken",
"SHONG": "Shong Inu",
+ "SHOOK": "SHOOK",
"SHOOT": "Mars Battle",
"SHOOTER": "Top Down Survival Shooter",
"SHOP": "Shoppi Coin",
@@ -14727,6 +14815,7 @@
"SIFT": "Smart Investment Fund Token",
"SIFU": "SIFU",
"SIG": "Signal",
+ "SIGHT": "Empire of Sight",
"SIGM": "Sigma",
"SIGMA": "SIGMA",
"SIGN": "Sign",
@@ -14735,6 +14824,7 @@
"SIGNMETA": "Sign Token",
"SIGT": "Signatum",
"SIGU": "Singular",
+ "SIH": "Salient Investment Holding",
"SIKA": "SikaSwap",
"SIL": "SIL Finance Token V2",
"SILENTIS": "Silentis",
@@ -14772,6 +14862,7 @@
"SINE": "Sinelock",
"SING": "SingularFarm",
"SINGLE": "Single Finance",
+ "SINGULARRY": "SINGULARRY",
"SINK": "Let that sink in",
"SINS": "SafeInsure",
"SINSO": "SINSO",
@@ -14828,7 +14919,7 @@
"SKO": "Sugar Kingdom Odyssey",
"SKOP": "Skulls of Pepe Token",
"SKPEPE": "Sheikh Pepe",
- "SKR": "Sakuracoin",
+ "SKR": "Seeker",
"SKRB": "Sakura Bloom",
"SKRIMP": "Skrimples",
"SKRP": "Skraps",
@@ -14885,6 +14976,7 @@
"SLOKI": "Super Floki",
"SLOP": "Slop",
"SLORK": "SLORK",
+ "SLOT": "Alphaslot",
"SLOTH": "Sloth",
"SLOTHA": "Slothana",
"SLP": "Smooth Love Potion",
@@ -14898,6 +14990,7 @@
"SLUGDENG": "SLUG DENG",
"SLUMBO": "SLUMBO",
"SLVLUSD": "Staked Level USD",
+ "SLVON": "iShares Silver Trust (Ondo Tokenized)",
"SLVX": "eToro Silver",
"SLX": "SLIMEX",
"SMA": "Soma Network",
@@ -14922,6 +15015,7 @@
"SMBR": "Sombra",
"SMBSWAP": "SimbCoin Swap",
"SMC": "SmartCoin",
+ "SMCION": "Super Micro Computer (Ondo Tokenized)",
"SMCW": "Space Misfits",
"SMD": "SMD Coin",
"SMETA": "StarkMeta",
@@ -15024,7 +15118,7 @@
"SNPT": "SNPIT TOKEN",
"SNRG": "Synergy",
"SNRK": "Snark Launch",
- "SNS": "Synesis One",
+ "SNS": "Solana Name Service",
"SNST": "Smooth Network Solutions Token",
"SNSY": "Sensay",
"SNT": "Status Network Token",
@@ -15062,6 +15156,7 @@
"SOGNI": "Sogni AI",
"SOGUR": "Sogur Currency",
"SOH": "Stohn Coin",
+ "SOHMV1": "Staked Olympus v1",
"SOHOT": "SOHOTRN",
"SOIL": "Soil",
"SOILCOIN": "SoilCoin",
@@ -15290,6 +15385,7 @@
"SPO": "Spores Network",
"SPOK": "Spock",
"SPOL": "Starterpool",
+ "SPON": "Spheron Network",
"SPONG": "Spongebob",
"SPONGE": "Sponge",
"SPONGEBOB": "Spongebob Squarepants",
@@ -15298,6 +15394,7 @@
"SPOOL": "Spool DAO Token",
"SPORE": "Spore",
"SPORT": "SportsCoin",
+ "SPORTFUN": "Sport.fun",
"SPORTS": "ZenSports",
"SPORTSFIX": "SportsFix",
"SPORTSP": "SportsPie",
@@ -15326,6 +15423,7 @@
"SPX6969": "SPX 6969",
"SPXC": "SpaceXCoin",
"SPY": "Smarty Pay",
+ "SPYON": "SPDR S&P 500 ETF (Ondo Tokenized)",
"SPYRO": "SPYRO",
"SPYX": "SP500 xStock",
"SQ3": "Squad3",
@@ -15351,6 +15449,8 @@
"SQUIDGROWV1": "SquidGrow v1",
"SQUIDV1": "Squid Game v1",
"SQUIDW": "Squidward Coin",
+ "SQUIG": "Squiggle DAO Token",
+ "SQUIGDAO": "SquiggleDAO ERC20",
"SQUIRT": "SQUIRTLE",
"SQUOGE": "DogeSquatch",
"SR30": "SatsRush",
@@ -15424,13 +15524,14 @@
"STAN": "Stank Memes",
"STANDARD": "Stakeborg DAO",
"STAPT": "Ditto Staked Aptos",
- "STAR": "StarHeroes",
+ "STAR": "Starpower Network Token",
"STAR10": "Ronaldinho Coin",
"STARAMBA": "Staramba",
"STARBASE": "Starbase",
"STARC": "StarChain",
"STARDOGE": "StarDOGE",
"STARGATEAI": "Stargate AI Agent",
+ "STARHEROES": "StarHeroes",
"STARL": "StarLink",
"STARLAUNCH": "StarLaunch",
"STARLY": "Starly",
@@ -15818,6 +15919,7 @@
"SYNCO": "Synco",
"SYND": "Syndicate",
"SYNDOG": "Synthesizer Dog",
+ "SYNESIS": "Synesis One",
"SYNK": "Synk",
"SYNLEV": "SynLev",
"SYNO": "Synonym Finance",
@@ -15918,6 +16020,7 @@
"TATSU": "Taτsu",
"TAU": "Lamden Tau",
"TAUC": "Taurus Coin",
+ "TAUD": "TrueAUD",
"TAUM": "Orbitau Taureum",
"TAUR": "Marnotaur",
"TAVA": "ALTAVA",
@@ -16117,6 +16220,7 @@
"THEPLAY": "PLAY",
"THEREALCHAIN": "REAL",
"THERESAMAY": "Theresa May Coin",
+ "THEROS": "THEROS",
"THES": "The Standard Protocol (USDS)",
"THESTANDARD": "Standard Token",
"THETA": "Theta Network",
@@ -16201,9 +16305,10 @@
"TIPS": "FedoraCoin",
"TIPSX": "WisdomTree TIPS Digital Fund",
"TIPSY": "TipsyCoin",
- "TIT": "TittieCoin",
+ "TIT": "TITANIUM",
"TITA": "Titan Hunters",
"TITAN": "SATOSHI•RUNE•TITAN (Runes)",
+ "TITANCOIN": "Titan Coin",
"TITANO": "Titano",
"TITANSWAP": "TitanSwap",
"TITANX": "TitanX",
@@ -16212,6 +16317,7 @@
"TITI": "TiTi Protocol",
"TITN": "Titan",
"TITS": "We Love Tits",
+ "TITTIECOIN": "TittieCoin",
"TITTY": "TamaKitty",
"TIUSD": "TiUSD",
"TIX": "Blocktix",
@@ -16226,6 +16332,7 @@
"TKMK": "TOKAMAK",
"TKMN": "Tokemon",
"TKN": "Token Name Service",
+ "TKNT": "TKN Token",
"TKO": "Tokocrypto",
"TKP": "TOKPIE",
"TKR": "CryptoInsight",
@@ -16239,6 +16346,7 @@
"TLN": "Trustlines Network",
"TLOS": "Telos",
"TLP": "TulipCoin",
+ "TLTON": "iShares 20+ Year Treasury Bond ETF (Ondo Tokenized)",
"TLW": "TILWIKI",
"TMAGA": "THE MAGA MOVEMENT",
"TMAI": "Token Metrics AI",
@@ -16393,6 +16501,7 @@
"TPV": "TravGoPV",
"TPY": "Thrupenny",
"TQ": "TonQuestion",
+ "TQQQON": "ProShares UltraPro QQQ (Ondo Tokenized)",
"TQQQX": "TQQQ xStock",
"TQRT": "TokoQrt",
"TR3": "Tr3zor",
@@ -16595,6 +16704,7 @@
"TSHARE": "Tomb Shares",
"TSHP": "12Ships",
"TSL": "Energo",
+ "TSLAON": "Tesla (Ondo Tokenized)",
"TSLAX": "Tesla xStock",
"TSLT": "Tamkin",
"TSN": "Tsunami Exchange Token",
@@ -16616,7 +16726,7 @@
"TTF": "TurboTrix Finance",
"TTK": "The Three Kingdoms",
"TTM": "Tradetomato",
- "TTN": "Titan Coin",
+ "TTN": "TTN",
"TTNT": "TITA Project",
"TTT": "TRUMPETTOKEN",
"TTTU": "T-Project",
@@ -16633,7 +16743,8 @@
"TUKI": "Tuki",
"TUKIV1": "Tuki v1",
"TULIP": "Tulip Protocol",
- "TUNA": "TUNACOIN",
+ "TUNA": "DefiTuna",
+ "TUNACOIN": "TUNACOIN",
"TUNE": "Bitune",
"TUNETRADEX": "TuneTrade",
"TUP": "Tenup",
@@ -16710,7 +16821,7 @@
"TZKI": "Tsuzuki Inu",
"TZPEPE": "Tezos Pepe",
"TZU": "Sun Tzu",
- "U": "Union",
+ "U": "United Stables",
"U2U": "U2U Network",
"U8D": "Universal Dollar",
"UA1": "UA1",
@@ -16737,6 +16848,7 @@
"UBXT": "UpBots",
"UC": "YouLive Coin",
"UCA": "UCA Coin",
+ "UCANFIX": "Ucan fix life in1day",
"UCAP": "Unicap.finance",
"UCASH": "U.CASH",
"UCCOIN": "UC Coin",
@@ -16858,6 +16970,7 @@
"UNIL": "UniLayer",
"UNIM": "Unicorn Milk",
"UNIO": "Unio Coin",
+ "UNION": "Union",
"UNIPOWER": "UniPower",
"UNIPT": "Universal Protocol Token",
"UNIQ": "Uniqredit",
@@ -16934,6 +17047,7 @@
"US": "Talus Token",
"USA": "Based USA",
"USACOIN": "American Coin",
+ "USAGIBNB": "U",
"USAT": "USAT",
"USBT": "Universal Blockchain",
"USC": "Ultimate Secure Cash",
@@ -16980,7 +17094,7 @@
"USDK": "USDK",
"USDKG": "USDKG",
"USDL": "Lift Dollar",
- "USDM": "Mountain Protocol",
+ "USDM": "USDM",
"USDMA": "USD mars",
"USDN": "Neutral AI",
"USDO": "USD Open Dollar",
@@ -17021,6 +17135,7 @@
"USN": "USN",
"USNBT": "NuBits",
"USNOTA": "NOTA",
+ "USOR": "U.S Oil",
"USP": "USP Token",
"USPEPE": "American pepe",
"USPLUS": "Fluent Finance",
@@ -17038,7 +17153,8 @@
"USUALX": "USUALx",
"USUD": "USUD",
"USV": "Universal Store of Value",
- "USX": "USX Quantum",
+ "USX": "USX",
+ "USXQ": "USX Quantum",
"USYC": "Hashnote USYC",
"UT": "Ulord",
"UTBAI": "UTB.ai",
@@ -17193,6 +17309,7 @@
"VEO": "Amoveo",
"VER": "VersalNFT",
"VERA": "Vera",
+ "VEREM": "Verified Emeralds",
"VERI": "Veritaseum",
"VERIC": "VeriCoin",
"VERIFY": "Verify",
@@ -17391,6 +17508,7 @@
"VRC": "Virtual Coin",
"VRFY": "VERIFY",
"VRGW": "Virtual Reality Game World",
+ "VRGX": "VROOMGO",
"VRH": "Versailles Heroes",
"VRL": "Virtual X",
"VRM": "Verium",
@@ -17456,6 +17574,7 @@
"VVS": "VVS Finance",
"VVV": "Venice Token",
"VX": "Visa xStock",
+ "VXC": "VINX COIN",
"VXL": "Voxel X Network",
"VXR": "Vox Royale",
"VXRP": "Venus XRP",
@@ -17594,6 +17713,7 @@
"WCFGV1": "Wrapped Centrifuge",
"WCFX": "Wrapped Conflux",
"WCG": "World Crypto Gold",
+ "WCHZ": "Chiliz (Portal Bridge)",
"WCKB": "Wrapped Nervos Network",
"WCOIN": "WCoin",
"WCORE": "Wrapped Core",
@@ -17685,6 +17805,7 @@
"WFIL": "Wrapped Filecoin",
"WFLAMA": "WIFLAMA",
"WFLOW": "Wrapped Flow",
+ "WFLR": "Wrapped Flare",
"WFO": "WoofOracle",
"WFRAGSOL": "Wrapped fragSOL",
"WFT": "Windfall Token",
@@ -17721,6 +17842,7 @@
"WHISKEY": "WHISKEY",
"WHITE": "WhiteRock",
"WHITEHEART": "Whiteheart",
+ "WHITEPEPE": "The White Pepe",
"WHITEWHALE": "The White Whale",
"WHL": "WhaleCoin",
"WHO": "Truwho",
@@ -17838,6 +17960,7 @@
"WMNT": "Wrapped Mantle",
"WMOXY": "Moxy",
"WMT": "World Mobile Token v1",
+ "WMTON": "Walmart (Ondo Tokenized)",
"WMTX": "World Mobile Token",
"WMW": "WoopMoney",
"WMX": "Wombex Finance",
@@ -18161,6 +18284,7 @@
"XENO": "Xeno",
"XENOVERSE": "Xenoverse",
"XEP": "Electra Protocol",
+ "XERA": "XERA",
"XERS": "X Project",
"XES": "Proxeus",
"XET": "Xfinite Entertainment Token",
@@ -18340,6 +18464,7 @@
"XRPCV1": "XRP Classic v1",
"XRPEPE": "XRPEPE",
"XRPH": "XRP Healthcare",
+ "XRPHEDGE": "1X Short XRP Token",
"XRS": "Xrius",
"XRT": "Robonomics Network",
"XRUN": "XRun",
@@ -18607,6 +18732,7 @@
"ZAIF": "Zaif Token",
"ZAIFIN": "Zero Collateral Dai",
"ZAM": "Zamio",
+ "ZAMA": "Zama",
"ZAMZAM": "ZAMZAM",
"ZANO": "Zano",
"ZAO": "zkTAO",
@@ -18652,8 +18778,7 @@
"ZEBU": "ZEBU",
"ZEC": "ZCash",
"ZECD": "ZCashDarkCoin",
- "ZED": "ZED Token",
- "ZEDCOIN": "ZedCoin",
+ "ZED": "ZedCoins",
"ZEDD": "ZedDex",
"ZEDTOKEN": "Zed Token",
"ZEDX": "ZEDX Сoin",
@@ -18679,6 +18804,7 @@
"ZENPROTOCOL": "Zen Protocol",
"ZENQ": "Zenqira",
"ZENT": "Zentry",
+ "ZENV1": "Horizen v1",
"ZEON": "Zeon Network",
"ZEP": "Zeppelin Dao",
"ZEPH": "Zephyr Protocol",
@@ -18696,12 +18822,14 @@
"ZET2": "Zeta2Coin",
"ZETA": "ZetaChain",
"ZETH": "Zethan",
+ "ZETO": "ZeTo",
"ZETRIX": "Zetrix",
"ZEUM": "Colizeum",
"ZEUS": "Zeus Network",
"ZEUSPEPES": "Zeus",
"ZEX": "Zeta",
"ZEXI": "ZEXICON",
+ "ZEXX": "ZEXXCOIN",
"ZEXY": "ZEXY",
"ZF": "zkSwap Finance ",
"ZFI": "Zyfi",
@@ -18748,6 +18876,7 @@
"ZKEVM": "zkEVMChain (BSC)",
"ZKEX": "zkExchange",
"ZKF": "ZKFair",
+ "ZKFG": "ZKFG",
"ZKGPT": "ZKGPT",
"ZKGROK": "ZKGROK",
"ZKGUN": "zkGUN",
@@ -18759,7 +18888,7 @@
"ZKLAB": "zkSync Labs",
"ZKLK": "ZkLock",
"ZKML": "zKML",
- "ZKP": "Panther Protocol",
+ "ZKP": "zkPass",
"ZKPAD": "zkLaunchpad",
"ZKPEPE": "ZKPEPEs",
"ZKS": "ZKSpace",
@@ -18830,8 +18959,9 @@
"ZSD": "Zephyr Protocol Stable Dollar",
"ZSE": "ZSEcoin",
"ZSH": "Ziesha",
+ "ZSWAP": "ZygoSwap",
"ZT": "ZBG Token",
- "ZTC": "ZeTo",
+ "ZTC": "Zenchain",
"ZTG": "Zeitgeist",
"ZTK": "Zefi",
"ZTX": "ZTX",
diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
index 95c58d35a..427386796 100644
--- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
+++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
@@ -116,11 +116,11 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
};
public dataProviderInfo: DataProviderInfo;
public dataSource: MatTableDataSource;
+ public dateOfFirstActivity: string;
public dividendInBaseCurrency: number;
public dividendInBaseCurrencyPrecision = 2;
public dividendYieldPercentWithCurrencyEffect: number;
public feeInBaseCurrency: number;
- public firstBuyDate: string;
public hasPermissionToCreateOwnTag: boolean;
public hasPermissionToReadMarketDataOfOwnAssetProfile: boolean;
public historicalDataItems: LineChartItem[];
@@ -267,10 +267,10 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
activitiesCount,
averagePrice,
dataProviderInfo,
+ dateOfFirstActivity,
dividendInBaseCurrency,
dividendYieldPercentWithCurrencyEffect,
feeInBaseCurrency,
- firstBuyDate,
historicalData,
investmentInBaseCurrencyWithCurrencyEffect,
marketPrice,
@@ -298,6 +298,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
this.benchmarkDataItems = [];
this.countries = {};
this.dataProviderInfo = dataProviderInfo;
+ this.dateOfFirstActivity = dateOfFirstActivity;
this.dividendInBaseCurrency = dividendInBaseCurrency;
if (
@@ -312,7 +313,6 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
dividendYieldPercentWithCurrencyEffect;
this.feeInBaseCurrency = feeInBaseCurrency;
- this.firstBuyDate = firstBuyDate;
this.hasPermissionToReadMarketDataOfOwnAssetProfile =
hasPermission(
@@ -461,16 +461,16 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
}
}
- if (isToday(parseISO(this.firstBuyDate))) {
+ if (isToday(parseISO(this.dateOfFirstActivity))) {
// Add average price
this.historicalDataItems.push({
- date: this.firstBuyDate,
+ date: this.dateOfFirstActivity,
value: this.averagePrice
});
// Add benchmark 1
this.benchmarkDataItems.push({
- date: this.firstBuyDate,
+ date: this.dateOfFirstActivity,
value: averagePrice
});
@@ -501,7 +501,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
if (
this.benchmarkDataItems[0]?.value === undefined &&
- isSameMonth(parseISO(this.firstBuyDate), new Date())
+ isSameMonth(parseISO(this.dateOfFirstActivity), new Date())
) {
this.benchmarkDataItems[0].value = this.averagePrice;
}
diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
index f52286160..f9329dbfb 100644
--- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -215,7 +215,7 @@
[deviceType]="data.deviceType"
[isDate]="true"
[locale]="data.locale"
- [value]="firstBuyDate"
+ [value]="dateOfFirstActivity"
>First Activity
@@ -400,7 +400,7 @@
Sponsors
-
Browser testing via
-
+
Browser testing via
diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
index ec872c770..5cd24777c 100644
--- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -2,6 +2,7 @@ import { GfBenchmarkComparatorComponent } from '@ghostfolio/client/components/be
import { GfInvestmentChartComponent } from '@ghostfolio/client/components/investment-chart/investment-chart.component';
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
+import { NUMERICAL_PRECISION_THRESHOLD_6_FIGURES } from '@ghostfolio/common/config';
import {
HistoricalDataItem,
InvestmentItem,
@@ -94,6 +95,7 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
public performanceDataItems: HistoricalDataItem[];
public performanceDataItemsInPercentage: HistoricalDataItem[];
public portfolioEvolutionDataLabel = $localize`Investment`;
+ public precision = 2;
public streaks: PortfolioInvestmentsResponse['streaks'];
public top3: PortfolioPosition[];
public unitCurrentStreak: string;
@@ -317,12 +319,21 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
: valueInPercentage
});
}
+
this.performanceDataItemsInPercentage.push({
date,
value: netPerformanceInPercentageWithCurrencyEffect
});
}
+ if (
+ this.deviceType === 'mobile' &&
+ this.performance.currentValueInBaseCurrency >=
+ NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
+ ) {
+ this.precision = 0;
+ }
+
this.isLoadingInvestmentChart = false;
this.updateBenchmarkDataItems();
diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
index 150caa7d8..517ad7101 100644
--- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
@@ -74,6 +74,72 @@
}
+
+ @if (user?.settings?.isExperimentalFeatures) {
+
+
+
+
+ Total amount
+
+
+
+
+
+
+ Change with currency effect
+
+
+
+
+
+
+ Performance with currency effect
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/client/src/assets/images/sponsors/logo-testmu-light.svg b/apps/client/src/assets/images/sponsors/logo-testmu-light.svg
new file mode 100644
index 000000000..e925efd5e
--- /dev/null
+++ b/apps/client/src/assets/images/sponsors/logo-testmu-light.svg
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/client/src/environments/environment.prod.ts b/apps/client/src/environments/environment.prod.ts
index 4ee0d508b..f3ded619e 100644
--- a/apps/client/src/environments/environment.prod.ts
+++ b/apps/client/src/environments/environment.prod.ts
@@ -2,6 +2,5 @@ import type { GfEnvironment } from '@ghostfolio/ui/environment';
export const environment: GfEnvironment = {
lastPublish: '{BUILD_TIMESTAMP}',
- production: true,
- stripePublicKey: ''
+ production: true
};
diff --git a/apps/client/src/environments/environment.ts b/apps/client/src/environments/environment.ts
index ccedf6738..1b9efe2be 100644
--- a/apps/client/src/environments/environment.ts
+++ b/apps/client/src/environments/environment.ts
@@ -6,8 +6,7 @@ import type { GfEnvironment } from '@ghostfolio/ui/environment';
export const environment: GfEnvironment = {
lastPublish: null,
- production: false,
- stripePublicKey: ''
+ production: false
};
/*
diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf
index e48a2ad47..fc8a326c3 100644
--- a/apps/client/src/locales/messages.ca.xlf
+++ b/apps/client/src/locales/messages.ca.xlf
@@ -2123,7 +2123,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -2135,7 +2135,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -2394,6 +2394,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Màx
@@ -4500,7 +4508,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -4520,11 +4528,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -4544,7 +4552,7 @@
Mensualment
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -4552,7 +4560,7 @@
Anualment
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4568,7 +4576,7 @@
Rendiment absolut dels actius
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -4576,7 +4584,7 @@
Rendiment de l’actiu
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -4584,7 +4592,7 @@
Rendiment absolut de la moneda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -4592,7 +4600,7 @@
Rendiment de la moneda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -4600,7 +4608,7 @@
A dalt
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -4608,7 +4616,7 @@
A baix
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -4616,7 +4624,7 @@
Evolució de la cartera
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -4624,7 +4632,7 @@
Cronologia de la inversió
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -4632,7 +4640,7 @@
Ratxa actual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4640,7 +4648,7 @@
Ratxa més llarga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -4648,7 +4656,7 @@
Cronologia de dividends
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -7366,12 +7374,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
AI prompt has been copied to the clipboard
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7451,7 +7467,7 @@
Open Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7522,6 +7538,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Armenia
diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf
index d70c2ad1d..6c2bd7900 100644
--- a/apps/client/src/locales/messages.de.xlf
+++ b/apps/client/src/locales/messages.de.xlf
@@ -926,7 +926,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -938,7 +938,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -1117,6 +1117,14 @@
409
+
+ Performance with currency effect
+ Performance mit Währungseffekt
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Max
@@ -1854,7 +1862,7 @@
Zeitstrahl der Investitionen
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -1862,7 +1870,7 @@
Gewinner
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -1870,7 +1878,7 @@
Verlierer
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -2526,7 +2534,7 @@
Monatlich
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -2754,7 +2762,7 @@
Portfolio Wertentwicklung
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -3130,7 +3138,7 @@
Zeitstrahl der Dividenden
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -3166,7 +3174,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -3290,7 +3298,7 @@
Jährlich
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4026,7 +4034,7 @@
Aktueller Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4034,7 +4042,7 @@
Längster Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -5876,11 +5884,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5908,7 +5916,7 @@
Absolute Anlage Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5916,7 +5924,7 @@
Anlage Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5924,7 +5932,7 @@
Absolute Währungsperformance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5932,7 +5940,7 @@
Währungsperformance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7390,12 +7398,20 @@
146
+
+ Change with currency effect
+ Änderung mit Währungseffekt
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
KI-Anweisung wurde in die Zwischenablage kopiert
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7475,7 +7491,7 @@
Öffne Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7546,6 +7562,14 @@
67
+
+ Total amount
+ Gesamtbetrag
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Armenien
diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf
index 89e67975f..a1b6e45e4 100644
--- a/apps/client/src/locales/messages.es.xlf
+++ b/apps/client/src/locales/messages.es.xlf
@@ -911,7 +911,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -923,7 +923,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -1102,6 +1102,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Máximo
@@ -1839,7 +1847,7 @@
Cronología de la inversión
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -1847,7 +1855,7 @@
Lo mejor
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -1855,7 +1863,7 @@
Lo peor
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -2555,7 +2563,7 @@
Mensual
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -2739,7 +2747,7 @@
Evolución cartera
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -3143,7 +3151,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -3155,7 +3163,7 @@
Calendario de dividendos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -3275,7 +3283,7 @@
Anual
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4003,7 +4011,7 @@
Racha actual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4011,7 +4019,7 @@
Racha más larga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -5853,11 +5861,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5885,7 +5893,7 @@
Rendimiento absoluto de los activos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5893,7 +5901,7 @@
Rendimiento de activos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5901,7 +5909,7 @@
Rendimiento absoluto de divisas
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5909,7 +5917,7 @@
Rendimiento de la moneda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7367,12 +7375,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
El aviso de IA ha sido copiado al portapapeles
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7452,7 +7468,7 @@
Abrir Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7523,6 +7539,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Armenia
diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf
index dc25b2c05..05dc0f7e3 100644
--- a/apps/client/src/locales/messages.fr.xlf
+++ b/apps/client/src/locales/messages.fr.xlf
@@ -1194,7 +1194,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -1206,7 +1206,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -1349,6 +1349,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Max
@@ -2414,7 +2422,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -2442,7 +2450,7 @@
Mensuel
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -2450,7 +2458,7 @@
Haut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -2458,7 +2466,7 @@
Bas
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -2466,7 +2474,7 @@
Évolution du Portefeuille
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -2474,7 +2482,7 @@
Historique des Investissements
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -2482,7 +2490,7 @@
Historique des Dividendes
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -3274,7 +3282,7 @@
Annuel
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4002,7 +4010,7 @@
Série en cours
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4010,7 +4018,7 @@
Série la plus longue
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -5852,11 +5860,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5884,7 +5892,7 @@
Performance des Actifs en valeur absolue
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5892,7 +5900,7 @@
Performance des Actifs
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5900,7 +5908,7 @@
Performance des devises en valeur absolue
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5908,7 +5916,7 @@
Performance des devises
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7366,12 +7374,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
Le prompt IA a été copié dans le presse-papiers
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7451,7 +7467,7 @@
Ouvrir Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7522,6 +7538,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Arménie
diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf
index c021470ef..26545f435 100644
--- a/apps/client/src/locales/messages.it.xlf
+++ b/apps/client/src/locales/messages.it.xlf
@@ -911,7 +911,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -923,7 +923,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -1102,6 +1102,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Massimo
@@ -1839,7 +1847,7 @@
Cronologia degli investimenti
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -1847,7 +1855,7 @@
In alto
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -1855,7 +1863,7 @@
In basso
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -2555,7 +2563,7 @@
Mensile
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -2739,7 +2747,7 @@
Evoluzione del portafoglio
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -3143,7 +3151,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -3155,7 +3163,7 @@
Cronologia dei dividendi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -3275,7 +3283,7 @@
Annuale
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4003,7 +4011,7 @@
Serie attuale
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4011,7 +4019,7 @@
Serie più lunga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -5853,11 +5861,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5885,7 +5893,7 @@
Rendimento assoluto dell’Asset
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5893,7 +5901,7 @@
Rendimento dell’Asset
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5901,7 +5909,7 @@
Rendimento assoluto della Valuta
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5909,7 +5917,7 @@
Rendimento della Valuta
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7367,12 +7375,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
L’AI prompt è stato copiato negli appunti
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7452,7 +7468,7 @@
Apri Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7523,6 +7539,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Armenia
diff --git a/apps/client/src/locales/messages.ko.xlf b/apps/client/src/locales/messages.ko.xlf
index 133425cab..05f02c87b 100644
--- a/apps/client/src/locales/messages.ko.xlf
+++ b/apps/client/src/locales/messages.ko.xlf
@@ -1840,7 +1840,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -1852,7 +1852,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -2183,6 +2183,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
맥스
@@ -4144,7 +4152,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -4172,7 +4180,7 @@
월간
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -4180,7 +4188,7 @@
매년
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4188,7 +4196,7 @@
상위
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -4196,7 +4204,7 @@
하위
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -4204,7 +4212,7 @@
포트폴리오 진화
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -4212,7 +4220,7 @@
투자 일정
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -4220,7 +4228,7 @@
현재 연속
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4228,7 +4236,7 @@
최장 연속
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -4236,7 +4244,7 @@
배당 일정
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -5869,7 +5877,7 @@
절대적인 통화 성과
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5885,7 +5893,7 @@
절대자산성과
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5901,11 +5909,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5925,7 +5933,7 @@
자산 성과
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5933,7 +5941,7 @@
통화 성과
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7391,12 +7399,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
AI 프롬프트가 클립보드에 복사되었습니다.
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7476,7 +7492,7 @@
오픈 Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7547,6 +7563,14 @@
97
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
아르메니아
diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf
index 18e271b0d..773937956 100644
--- a/apps/client/src/locales/messages.nl.xlf
+++ b/apps/client/src/locales/messages.nl.xlf
@@ -910,7 +910,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -922,7 +922,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -1101,6 +1101,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Max
@@ -1838,7 +1846,7 @@
Tijdlijn investeringen
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -1846,7 +1854,7 @@
Winnaars
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -1854,7 +1862,7 @@
Verliezers
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -2554,7 +2562,7 @@
Maandelijks
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -2738,7 +2746,7 @@
Waardeontwikkeling van portefeuille
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -3142,7 +3150,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -3154,7 +3162,7 @@
Tijdlijn dividend
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -3274,7 +3282,7 @@
Jaarlijks
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4002,7 +4010,7 @@
Huidige reeks
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4010,7 +4018,7 @@
Langste reeks
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -5852,11 +5860,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5884,7 +5892,7 @@
Absolute Activaprestaties
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5892,7 +5900,7 @@
Activaprestaties
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5900,7 +5908,7 @@
Absolute Valutaprestaties
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5908,7 +5916,7 @@
Valutaprestaties
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7366,12 +7374,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
AI-prompt is naar het klembord gekopieerd
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7451,7 +7467,7 @@
Open Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7522,6 +7538,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Armenië
diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf
index 8cb13184b..f4d14b81e 100644
--- a/apps/client/src/locales/messages.pl.xlf
+++ b/apps/client/src/locales/messages.pl.xlf
@@ -1807,7 +1807,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -1819,7 +1819,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -2150,6 +2150,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Maksimum
@@ -4111,7 +4119,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -4139,7 +4147,7 @@
Miesięcznie
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -4147,7 +4155,7 @@
Rocznie
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4155,7 +4163,7 @@
Największe wzrosty
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -4163,7 +4171,7 @@
Największy spadek
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -4171,7 +4179,7 @@
Rozwój portfela
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -4179,7 +4187,7 @@
Oś czasu inwestycji
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -4187,7 +4195,7 @@
Obecna passa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4195,7 +4203,7 @@
Najdłuższa passa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -4203,7 +4211,7 @@
Oś czasu dywidend
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -5852,11 +5860,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5884,7 +5892,7 @@
Łączny wynik aktywów
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5892,7 +5900,7 @@
Wyniki aktywów
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5900,7 +5908,7 @@
Łączny wynik walut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5908,7 +5916,7 @@
Wynik walut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7366,12 +7374,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
Prompt AI został skopiowany do schowka
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7451,7 +7467,7 @@
Otwórz Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7522,6 +7538,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Armenia
diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf
index 562e5db2a..1e92933dc 100644
--- a/apps/client/src/locales/messages.pt.xlf
+++ b/apps/client/src/locales/messages.pt.xlf
@@ -1078,7 +1078,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -1090,7 +1090,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -1345,6 +1345,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Máx
@@ -2358,7 +2366,7 @@
Mensalmente
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -2366,7 +2374,7 @@
Topo
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -2374,7 +2382,7 @@
Fundo
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -2382,7 +2390,7 @@
Evolução do Portefólio
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -2390,7 +2398,7 @@
Cronograma de Investimento
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -3206,7 +3214,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -3218,7 +3226,7 @@
Cronograma de Dividendos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -3274,7 +3282,7 @@
Anualmente
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4002,7 +4010,7 @@
Série Atual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4010,7 +4018,7 @@
Série mais Longa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -5852,11 +5860,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5884,7 +5892,7 @@
Desempenho absoluto de ativos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5892,7 +5900,7 @@
Desempenho de ativos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5900,7 +5908,7 @@
Desempenho absoluto da moeda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5908,7 +5916,7 @@
Desempenho da moeda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7366,12 +7374,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
AI prompt has been copied to the clipboard
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7451,7 +7467,7 @@
Open Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7522,6 +7538,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Armenia
diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf
index bd1389a49..cdbfaec8f 100644
--- a/apps/client/src/locales/messages.tr.xlf
+++ b/apps/client/src/locales/messages.tr.xlf
@@ -1663,7 +1663,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -1675,7 +1675,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -2018,6 +2018,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Maks.
@@ -3595,7 +3603,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -3623,7 +3631,7 @@
Aylık
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -3631,7 +3639,7 @@
Yıllık
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -3639,7 +3647,7 @@
Üst
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -3647,7 +3655,7 @@
Alt
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -3655,7 +3663,7 @@
Portföyün Gelişimi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -3663,7 +3671,7 @@
Yatırım Zaman Çizelgesi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -3671,7 +3679,7 @@
Güncel Seri
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -3679,7 +3687,7 @@
En Uzun Seri
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -3687,7 +3695,7 @@
Temettü Zaman Çizelgesi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -5852,11 +5860,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5884,7 +5892,7 @@
Mutlak Varlık Performansı
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5892,7 +5900,7 @@
Varlık Performansı
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5900,7 +5908,7 @@
Mutlak Para Performansı
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5908,7 +5916,7 @@
Para Performansı
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7366,12 +7374,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
Yapay zeka istemi panoya kopyalandı
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7451,7 +7467,7 @@
Duck.ai’yi aç
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7522,6 +7538,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Ermenistan
diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf
index 7ad8133b3..a7d0d1ca3 100644
--- a/apps/client/src/locales/messages.uk.xlf
+++ b/apps/client/src/locales/messages.uk.xlf
@@ -2215,7 +2215,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -2227,7 +2227,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -2606,6 +2606,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
Максимум
@@ -4816,7 +4824,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -4836,11 +4844,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -4860,7 +4868,7 @@
Щомісячно
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -4868,7 +4876,7 @@
Щорічно
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4884,7 +4892,7 @@
Абсолютна прибутковість активів
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -4892,7 +4900,7 @@
Прибутковість активів
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -4900,7 +4908,7 @@
Абсолютна прибутковість валюти
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -4908,7 +4916,7 @@
Прибутковість валюти
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -4916,7 +4924,7 @@
Топ
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -4924,7 +4932,7 @@
Низ
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -4932,7 +4940,7 @@
Еволюція портфеля
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -4940,7 +4948,7 @@
Інвестиційний графік
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -4948,7 +4956,7 @@
Поточна серія
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4956,7 +4964,7 @@
Найдовша серія
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -4964,7 +4972,7 @@
Графік дивідендів
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -7374,12 +7382,20 @@
174
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
Запит AI скопійовано в буфер обміну
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7451,7 +7467,7 @@
Open Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7522,6 +7538,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
Armenia
diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf
index d91a8d438..f339f807e 100644
--- a/apps/client/src/locales/messages.xlf
+++ b/apps/client/src/locales/messages.xlf
@@ -1689,7 +1689,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -1700,7 +1700,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -2004,6 +2004,13 @@
409
+
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
@@ -3786,7 +3793,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -3811,63 +3818,63 @@
Monthly
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
Yearly
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
Top
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
Bottom
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
Portfolio Evolution
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
Investment Timeline
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
Current Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
Longest Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
Dividend Timeline
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -5341,7 +5348,7 @@
Absolute Currency Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5355,7 +5362,7 @@
Absolute Asset Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5370,11 +5377,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5392,14 +5399,14 @@
Asset Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
Currency Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -6712,11 +6719,18 @@
146
+
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -6786,7 +6800,7 @@
Open Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -6851,6 +6865,13 @@
97
+
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf
index f8af582de..c941fa2f2 100644
--- a/apps/client/src/locales/messages.zh.xlf
+++ b/apps/client/src/locales/messages.zh.xlf
@@ -1816,7 +1816,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 257
@@ -1828,7 +1828,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 276
@@ -2159,6 +2159,14 @@
409
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 134
+
+
Max
最大限度
@@ -4120,7 +4128,7 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 75
+ 76
libs/ui/src/lib/i18n.ts
@@ -4148,7 +4156,7 @@
每月
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 90
+ 91
@@ -4156,7 +4164,7 @@
每年
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 91
+ 92
@@ -4164,7 +4172,7 @@
顶部
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 303
@@ -4172,7 +4180,7 @@
底部
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 352
@@ -4180,7 +4188,7 @@
投资组合演变
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 405
@@ -4188,7 +4196,7 @@
投资时间表
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 432
@@ -4196,7 +4204,7 @@
当前连胜
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 453
@@ -4204,7 +4212,7 @@
最长连续纪录
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 462
@@ -4212,7 +4220,7 @@
股息时间表
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 489
@@ -5845,7 +5853,7 @@
绝对货币表现
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 209
@@ -5861,7 +5869,7 @@
绝对资产回报
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 166
@@ -5877,11 +5885,11 @@
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 80
+ 81
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 96
+ 97
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -5901,7 +5909,7 @@
资产回报
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 188
@@ -5909,7 +5917,7 @@
货币表现
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 234
@@ -7367,12 +7375,20 @@
146
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 115
+
+
AI prompt has been copied to the clipboard
AI 提示已复制到剪贴板
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 199
+ 201
@@ -7452,7 +7468,7 @@
打开 Duck.ai
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
- 200
+ 202
@@ -7523,6 +7539,14 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 94
+
+
Armenia
亚美尼亚
diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts
index 7cf93691c..ad747d94e 100644
--- a/libs/common/src/lib/interfaces/index.ts
+++ b/libs/common/src/lib/interfaces/index.ts
@@ -34,7 +34,6 @@ import type { PortfolioPerformance } from './portfolio-performance.interface';
import type { PortfolioPosition } from './portfolio-position.interface';
import type { PortfolioReportRule } from './portfolio-report-rule.interface';
import type { PortfolioSummary } from './portfolio-summary.interface';
-import type { Position } from './position.interface';
import type { Product } from './product';
import type { AccessTokenResponse } from './responses/access-token-response.interface';
import type { AccountBalancesResponse } from './responses/account-balances-response.interface';
@@ -172,7 +171,6 @@ export {
PortfolioReportResponse,
PortfolioReportRule,
PortfolioSummary,
- Position,
Product,
PublicKeyCredentialCreationOptionsJSON,
PublicKeyCredentialRequestOptionsJSON,
diff --git a/libs/common/src/lib/interfaces/portfolio-position.interface.ts b/libs/common/src/lib/interfaces/portfolio-position.interface.ts
index e277ba468..67a2f3e77 100644
--- a/libs/common/src/lib/interfaces/portfolio-position.interface.ts
+++ b/libs/common/src/lib/interfaces/portfolio-position.interface.ts
@@ -7,6 +7,7 @@ import { Holding } from './holding.interface';
import { Sector } from './sector.interface';
export interface PortfolioPosition {
+ activitiesCount: number;
allocationInPercentage: number;
assetClass?: AssetClass;
assetClassLabel?: string;
@@ -38,7 +39,10 @@ export interface PortfolioPosition {
sectors: Sector[];
symbol: string;
tags?: Tag[];
+
+ /** @deprecated use activitiesCount instead */
transactionCount: number;
+
type?: string;
url?: string;
valueInBaseCurrency?: number;
diff --git a/libs/common/src/lib/interfaces/position.interface.ts b/libs/common/src/lib/interfaces/position.interface.ts
deleted file mode 100644
index d1f74380b..000000000
--- a/libs/common/src/lib/interfaces/position.interface.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { MarketState } from '@ghostfolio/common/types';
-
-import { AssetClass, AssetSubClass, DataSource } from '@prisma/client';
-
-export interface Position {
- assetClass: AssetClass;
- assetSubClass: AssetSubClass;
- averagePrice: number;
- currency: string;
- dataSource: DataSource;
- firstBuyDate: string;
- grossPerformance?: number;
- grossPerformancePercentage?: number;
- investment: number;
- investmentInOriginalCurrency?: number;
- marketPrice?: number;
- marketState?: MarketState;
- name?: string;
- netPerformance?: number;
- netPerformancePercentage?: number;
- netPerformancePercentageWithCurrencyEffect?: number;
- netPerformanceWithCurrencyEffect?: number;
- quantity: number;
- symbol: string;
- transactionCount: number;
- url?: string;
-}
diff --git a/libs/common/src/lib/interfaces/responses/accounts-response.interface.ts b/libs/common/src/lib/interfaces/responses/accounts-response.interface.ts
index 0a6af978f..1891b9cbb 100644
--- a/libs/common/src/lib/interfaces/responses/accounts-response.interface.ts
+++ b/libs/common/src/lib/interfaces/responses/accounts-response.interface.ts
@@ -2,9 +2,12 @@ import { AccountWithValue } from '@ghostfolio/common/types';
export interface AccountsResponse {
accounts: AccountWithValue[];
+ activitiesCount: number;
totalBalanceInBaseCurrency: number;
totalDividendInBaseCurrency: number;
totalInterestInBaseCurrency: number;
totalValueInBaseCurrency: number;
+
+ /** @deprecated use activitiesCount instead */
transactionCount: number;
}
diff --git a/libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts b/libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts
index 95c1c3689..76bc7dc02 100644
--- a/libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts
+++ b/libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts
@@ -11,11 +11,11 @@ export interface PortfolioHoldingResponse {
activitiesCount: number;
averagePrice: number;
dataProviderInfo: DataProviderInfo;
+ dateOfFirstActivity: string;
dividendInBaseCurrency: number;
dividendYieldPercent: number;
dividendYieldPercentWithCurrencyEffect: number;
feeInBaseCurrency: number;
- firstBuyDate: string;
grossPerformance: number;
grossPerformancePercent: number;
grossPerformancePercentWithCurrencyEffect: number;
diff --git a/libs/common/src/lib/models/timeline-position.ts b/libs/common/src/lib/models/timeline-position.ts
index 8eae56cf7..244d6595e 100644
--- a/libs/common/src/lib/models/timeline-position.ts
+++ b/libs/common/src/lib/models/timeline-position.ts
@@ -9,12 +9,15 @@ import { Big } from 'big.js';
import { Transform, Type } from 'class-transformer';
export class TimelinePosition {
+ activitiesCount: number;
+
@Transform(transformToBig, { toClassOnly: true })
@Type(() => Big)
averagePrice: Big;
currency: string;
dataSource: DataSource;
+ dateOfFirstActivity: string;
@Transform(transformToBig, { toClassOnly: true })
@Type(() => Big)
@@ -32,6 +35,7 @@ export class TimelinePosition {
@Type(() => Big)
feeInBaseCurrency: Big;
+ /** @deprecated use dateOfFirstActivity instead */
firstBuyDate: string;
@Transform(transformToBig, { toClassOnly: true })
@@ -92,6 +96,7 @@ export class TimelinePosition {
@Type(() => Big)
timeWeightedInvestmentWithCurrencyEffect: Big;
+ /** @deprecated use activitiesCount instead */
transactionCount: number;
@Transform(transformToBig, { toClassOnly: true })
diff --git a/libs/common/src/lib/types/account-with-value.type.ts b/libs/common/src/lib/types/account-with-value.type.ts
index 08af86454..7f5fe79ba 100644
--- a/libs/common/src/lib/types/account-with-value.type.ts
+++ b/libs/common/src/lib/types/account-with-value.type.ts
@@ -1,12 +1,16 @@
import { Account as AccountModel, Platform } from '@prisma/client';
export type AccountWithValue = AccountModel & {
+ activitiesCount: number;
allocationInPercentage: number;
balanceInBaseCurrency: number;
dividendInBaseCurrency: number;
interestInBaseCurrency: number;
platform?: Platform;
+
+ /** @deprecated use activitiesCount instead */
transactionCount: number;
+
value: number;
valueInBaseCurrency: number;
};
diff --git a/libs/ui/src/lib/environment/environment.interface.ts b/libs/ui/src/lib/environment/environment.interface.ts
index 9cb279515..bdd867324 100644
--- a/libs/ui/src/lib/environment/environment.interface.ts
+++ b/libs/ui/src/lib/environment/environment.interface.ts
@@ -1,5 +1,4 @@
export interface GfEnvironment {
lastPublish: string | null;
production: boolean;
- stripePublicKey: string;
}
diff --git a/libs/ui/src/lib/mocks/holdings.ts b/libs/ui/src/lib/mocks/holdings.ts
index 6e8485c82..0f30b3e6f 100644
--- a/libs/ui/src/lib/mocks/holdings.ts
+++ b/libs/ui/src/lib/mocks/holdings.ts
@@ -2,6 +2,7 @@ import { PortfolioPosition } from '@ghostfolio/common/interfaces';
export const holdings: PortfolioPosition[] = [
{
+ activitiesCount: 1,
allocationInPercentage: 0.042990776363386086,
assetClass: 'EQUITY' as any,
assetClassLabel: 'Equity',
@@ -45,6 +46,7 @@ export const holdings: PortfolioPosition[] = [
valueInBaseCurrency: 12230
},
{
+ activitiesCount: 2,
allocationInPercentage: 0.02377401948293552,
assetClass: 'EQUITY' as any,
assetClassLabel: 'Equity',
@@ -88,6 +90,7 @@ export const holdings: PortfolioPosition[] = [
valueInBaseCurrency: 6763.224181360202
},
{
+ activitiesCount: 1,
allocationInPercentage: 0.08038536990007467,
assetClass: 'EQUITY' as any,
assetClassLabel: 'Equity',
@@ -131,6 +134,7 @@ export const holdings: PortfolioPosition[] = [
valueInBaseCurrency: 22868
},
{
+ activitiesCount: 1,
allocationInPercentage: 0.19216416482928922,
assetClass: 'LIQUIDITY' as any,
assetClassLabel: 'Liquidity',
@@ -162,6 +166,7 @@ export const holdings: PortfolioPosition[] = [
valueInBaseCurrency: 54666.7898248
},
{
+ activitiesCount: 1,
allocationInPercentage: 0.04307127421937313,
assetClass: 'EQUITY' as any,
assetClassLabel: 'Equity',
@@ -205,6 +210,7 @@ export const holdings: PortfolioPosition[] = [
valueInBaseCurrency: 12252.9
},
{
+ activitiesCount: 1,
allocationInPercentage: 0.18762679306394897,
assetClass: 'EQUITY' as any,
assetClassLabel: 'Equity',
@@ -248,6 +254,7 @@ export const holdings: PortfolioPosition[] = [
valueInBaseCurrency: 53376
},
{
+ activitiesCount: 5,
allocationInPercentage: 0.053051250766657634,
assetClass: 'EQUITY' as any,
assetClassLabel: 'Equity',
diff --git a/package-lock.json b/package-lock.json
index b8e9295ed..f863292cc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "ghostfolio",
- "version": "2.231.0",
+ "version": "2.233.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ghostfolio",
- "version": "2.231.0",
+ "version": "2.233.0",
"hasInstallScript": true,
"license": "AGPL-3.0",
"dependencies": {
@@ -141,7 +141,7 @@
"jest-environment-jsdom": "30.2.0",
"jest-preset-angular": "16.0.0",
"nx": "22.3.3",
- "prettier": "3.7.4",
+ "prettier": "3.8.0",
"prettier-plugin-organize-attributes": "1.0.0",
"prisma": "6.19.0",
"react": "18.2.0",
@@ -28255,9 +28255,9 @@
}
},
"node_modules/prettier": {
- "version": "3.7.4",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz",
- "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==",
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.0.tgz",
+ "integrity": "sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==",
"dev": true,
"license": "MIT",
"bin": {
diff --git a/package.json b/package.json
index 0b5a28deb..940c674c6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ghostfolio",
- "version": "2.231.0",
+ "version": "2.233.0",
"homepage": "https://ghostfol.io",
"license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio",
@@ -185,7 +185,7 @@
"jest-environment-jsdom": "30.2.0",
"jest-preset-angular": "16.0.0",
"nx": "22.3.3",
- "prettier": "3.7.4",
+ "prettier": "3.8.0",
"prettier-plugin-organize-attributes": "1.0.0",
"prisma": "6.19.0",
"react": "18.2.0",