diff --git a/apps/api/src/app/benchmark/benchmark.service.ts b/apps/api/src/app/benchmark/benchmark.service.ts index d43b528c7..7160cf1a0 100644 --- a/apps/api/src/app/benchmark/benchmark.service.ts +++ b/apps/api/src/app/benchmark/benchmark.service.ts @@ -140,11 +140,11 @@ export class BenchmarkService { performances: { allTimeHigh: { date: allTimeHigh?.date || new Date(), - performancePercent: performancePercentFromAllTimeHigh, - trend50d: benchmarkTrends[index].trend50d, - trend200d: benchmarkTrends[index].trend200d + performancePercent: performancePercentFromAllTimeHigh } - } + }, + trend50d: benchmarkTrends[index].trend50d, + trend200d: benchmarkTrends[index].trend200d }; }); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index ecab8ae5c..0ca83e3ba 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -32,27 +32,32 @@ export function calculateBenchmarkTrend({ const hasEnoughData = historicalData.length >= 2 * days; if (!hasEnoughData) { - return null; + return 'UNKNOWN'; } - const latestDataAverage = calculateMovingAverage({ + const recentPeriodAverage = calculateMovingAverage({ days, prices: historicalData.slice(0, days).map(({ marketPrice }) => { return new Big(marketPrice); }) }); - const oldDataAverage = calculateMovingAverage({ + + const pastPeriodAverage = calculateMovingAverage({ days, prices: historicalData.slice(days, 2 * days).map(({ marketPrice }) => { return new Big(marketPrice); }) }); - return latestDataAverage > oldDataAverage - ? 'UP' - : latestDataAverage < oldDataAverage - ? 'DOWN' - : 'NEUTRAL'; + if (recentPeriodAverage > pastPeriodAverage) { + return 'UP'; + } + + if (recentPeriodAverage < pastPeriodAverage) { + return 'DOWN'; + } + + return 'NEUTRAL'; } export function calculateMovingAverage({ diff --git a/libs/common/src/lib/interfaces/benchmark.interface.ts b/libs/common/src/lib/interfaces/benchmark.interface.ts index d95ae7868..2124173fd 100644 --- a/libs/common/src/lib/interfaces/benchmark.interface.ts +++ b/libs/common/src/lib/interfaces/benchmark.interface.ts @@ -9,8 +9,8 @@ export interface Benchmark { allTimeHigh: { date: Date; performancePercent: number; - trend50d: BenchmarkTrend; - trend200d: BenchmarkTrend; }; }; + trend50d: BenchmarkTrend; + trend200d: BenchmarkTrend; } diff --git a/libs/common/src/lib/types/benchmark-trend.type.ts b/libs/common/src/lib/types/benchmark-trend.type.ts index 70aaba90e..b437d388a 100644 --- a/libs/common/src/lib/types/benchmark-trend.type.ts +++ b/libs/common/src/lib/types/benchmark-trend.type.ts @@ -1 +1 @@ -export type BenchmarkTrend = 'DOWN' | 'NEUTRAL' | 'UP'; +export type BenchmarkTrend = 'DOWN' | 'NEUTRAL' | 'UNKNOWN' | 'UP';