Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/ghostfolio/commit/ef272360fbf4728e7ddd5171272bb4b727089a3a
You should set ROOT_URL correctly, otherwise the web may not work correctly.
3 changed files with
28 additions and
2 deletions
@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Added a dedicated page for the account registration
- Rendered the average buy prices in the position detail chart (useful for recurring transactions)
### Changed
@ -20,6 +20,7 @@ import {
getYear ,
isAfter ,
isSameDay ,
parse ,
parseISO ,
setDate ,
setMonth ,
@ -215,6 +216,8 @@ export class PortfolioService {
transactionCount
} = portfolio . getPositions ( new Date ( ) ) [ aSymbol ] ;
const orders = portfolio . getOrders ( aSymbol ) ;
const historicalData = await this . dataProviderService . getHistorical (
[ aSymbol ] ,
'day' ,
@ -227,6 +230,7 @@ export class PortfolioService {
}
const historicalDataArray : HistoricalDataItem [ ] = [ ] ;
let currentAveragePrice : number ;
let maxPrice = marketPrice ;
let minPrice = marketPrice ;
@ -234,9 +238,24 @@ export class PortfolioService {
for ( const [ date , { marketPrice } ] of Object . entries (
historicalData [ aSymbol ]
) ) {
const currentDate = parse ( date , 'yyyy-MM-dd' , new Date ( ) ) ;
if (
isSameDay ( currentDate , parseISO ( orders [ 0 ] ? . getDate ( ) ) ) ||
isAfter ( currentDate , parseISO ( orders [ 0 ] ? . getDate ( ) ) )
) {
// Get snapshot of first day of month
const snapshot = portfolio . get ( setDate ( currentDate , 1 ) ) [ 0 ]
. positions [ aSymbol ] ;
orders . shift ( ) ;
if ( snapshot ? . averagePrice ) {
currentAveragePrice = snapshot ? . averagePrice ;
}
}
historicalDataArray . push ( {
averagePrice ,
date ,
averagePrice : currentAveragePrice ,
value : marketPrice
} ) ;
@ -486,7 +486,13 @@ export class Portfolio implements PortfolioInterface {
. reduce ( ( previous , current ) = > previous + current , 0 ) ;
}
public getOrders() {
public getOrders ( aSymbol? : string ) {
if ( aSymbol ) {
return this . orders . filter ( ( order ) = > {
return order . getSymbol ( ) === aSymbol ;
} ) ;
}
return this . orders ;
}