Browse Source

Refactoring

pull/2575/head
Thomas 2 years ago
parent
commit
44e09bdb63
  1. 8
      apps/api/src/app/benchmark/benchmark.service.ts
  2. 21
      libs/common/src/lib/helper.ts
  3. 4
      libs/common/src/lib/interfaces/benchmark.interface.ts
  4. 2
      libs/common/src/lib/types/benchmark-trend.type.ts

8
apps/api/src/app/benchmark/benchmark.service.ts

@ -140,11 +140,11 @@ export class BenchmarkService {
performances: { performances: {
allTimeHigh: { allTimeHigh: {
date: allTimeHigh?.date || new Date(), date: allTimeHigh?.date || new Date(),
performancePercent: performancePercentFromAllTimeHigh, performancePercent: performancePercentFromAllTimeHigh
trend50d: benchmarkTrends[index].trend50d,
trend200d: benchmarkTrends[index].trend200d
} }
} },
trend50d: benchmarkTrends[index].trend50d,
trend200d: benchmarkTrends[index].trend200d
}; };
}); });

21
libs/common/src/lib/helper.ts

@ -32,27 +32,32 @@ export function calculateBenchmarkTrend({
const hasEnoughData = historicalData.length >= 2 * days; const hasEnoughData = historicalData.length >= 2 * days;
if (!hasEnoughData) { if (!hasEnoughData) {
return null; return 'UNKNOWN';
} }
const latestDataAverage = calculateMovingAverage({ const recentPeriodAverage = calculateMovingAverage({
days, days,
prices: historicalData.slice(0, days).map(({ marketPrice }) => { prices: historicalData.slice(0, days).map(({ marketPrice }) => {
return new Big(marketPrice); return new Big(marketPrice);
}) })
}); });
const oldDataAverage = calculateMovingAverage({
const pastPeriodAverage = calculateMovingAverage({
days, days,
prices: historicalData.slice(days, 2 * days).map(({ marketPrice }) => { prices: historicalData.slice(days, 2 * days).map(({ marketPrice }) => {
return new Big(marketPrice); return new Big(marketPrice);
}) })
}); });
return latestDataAverage > oldDataAverage if (recentPeriodAverage > pastPeriodAverage) {
? 'UP' return 'UP';
: latestDataAverage < oldDataAverage }
? 'DOWN'
: 'NEUTRAL'; if (recentPeriodAverage < pastPeriodAverage) {
return 'DOWN';
}
return 'NEUTRAL';
} }
export function calculateMovingAverage({ export function calculateMovingAverage({

4
libs/common/src/lib/interfaces/benchmark.interface.ts

@ -9,8 +9,8 @@ export interface Benchmark {
allTimeHigh: { allTimeHigh: {
date: Date; date: Date;
performancePercent: number; performancePercent: number;
trend50d: BenchmarkTrend;
trend200d: BenchmarkTrend;
}; };
}; };
trend50d: BenchmarkTrend;
trend200d: BenchmarkTrend;
} }

2
libs/common/src/lib/types/benchmark-trend.type.ts

@ -1 +1 @@
export type BenchmarkTrend = 'DOWN' | 'NEUTRAL' | 'UP'; export type BenchmarkTrend = 'DOWN' | 'NEUTRAL' | 'UNKNOWN' | 'UP';

Loading…
Cancel
Save