diff --git a/src/main/kotlin/net/bobinski/backend/AnalysisEndpoint.kt b/src/main/kotlin/net/bobinski/backend/AnalysisEndpoint.kt index 3cef4ba..48b5eec 100644 --- a/src/main/kotlin/net/bobinski/backend/AnalysisEndpoint.kt +++ b/src/main/kotlin/net/bobinski/backend/AnalysisEndpoint.kt @@ -44,13 +44,19 @@ object AnalysisEndpoint { name = checkNotNull(info.name), date = LocalDate.now(Clock.systemUTC()).toKotlinLocalDate(), lastPrice = CalculateLastPrice(history), - gain = Analysis.Gain(monthly = Double.NaN, quarterly = Double.NaN, yearly = Double.NaN) - .takeIf { lacking } - ?: Analysis.Gain( - monthly = CalculateGain.monthly(history), - quarterly = CalculateGain.quarterly(history), - yearly = CalculateGain.yearly(history) - ), + gain = Analysis.Gain( + daily = Double.NaN, + weekly = Double.NaN, + monthly = Double.NaN, + quarterly = Double.NaN, + yearly = Double.NaN + ).takeIf { lacking } ?: Analysis.Gain( + daily = CalculateGain.daily(history), + weekly = CalculateGain.weekly(history), + monthly = CalculateGain.monthly(history), + quarterly = CalculateGain.quarterly(history), + yearly = CalculateGain.yearly(history) + ), rsi = Analysis.Rsi(daily = Double.NaN, weekly = Double.NaN, monthly = Double.NaN) .takeIf { lacking } ?: Analysis.Rsi( diff --git a/src/main/kotlin/net/bobinski/data/Analysis.kt b/src/main/kotlin/net/bobinski/data/Analysis.kt index 4faf6de..c9bde2f 100644 --- a/src/main/kotlin/net/bobinski/data/Analysis.kt +++ b/src/main/kotlin/net/bobinski/data/Analysis.kt @@ -21,6 +21,8 @@ data class Analysis( @Serializable data class Gain( + val daily: Double, + val weekly: Double, val monthly: Double, val quarterly: Double, val yearly: Double diff --git a/src/main/kotlin/net/bobinski/logic/CalculateGain.kt b/src/main/kotlin/net/bobinski/logic/CalculateGain.kt index 6c7d2eb..3e5869d 100644 --- a/src/main/kotlin/net/bobinski/logic/CalculateGain.kt +++ b/src/main/kotlin/net/bobinski/logic/CalculateGain.kt @@ -7,6 +7,12 @@ import java.time.LocalDate object CalculateGain { + fun daily(data: Collection) = + calculateFor(data, LocalDate.now(Clock.systemUTC()).minusDays(1)) + + fun weekly(data: Collection) = + calculateFor(data, LocalDate.now(Clock.systemUTC()).minusWeeks(1)) + fun monthly(data: Collection) = calculateFor(data, LocalDate.now(Clock.systemUTC()).minusMonths(1))