This commit is contained in:
2026-05-03 18:05:32 +02:00
parent 29ebf6b123
commit 3e994995d7
8 changed files with 1765 additions and 145 deletions

View File

@@ -80,14 +80,23 @@ impl KbPairCandleAggregationService {
let mut seen = std::collections::HashSet::<(i64, i64, i64)>::new();
let mut results = std::vec::Vec::new();
for trade_event in &trade_events {
let event_time_option =
kb_extract_trade_event_unix_time(self.database.as_ref(), trade_event).await?;
let event_time_option_result =
kb_extract_trade_event_unix_time(self.database.as_ref(), trade_event).await;
let event_time_option = match event_time_option_result {
Ok(event_time_option) => event_time_option,
Err(error) => return Err(error),
};
let event_time_unix = match event_time_option {
Some(event_time_unix) => event_time_unix,
None => continue,
};
for timeframe_seconds in &materialized_timeframes {
let bucket_start_unix = kb_bucket_start_unix(event_time_unix, *timeframe_seconds)?;
let bucket_start_unix_result =
kb_bucket_start_unix(event_time_unix, *timeframe_seconds);
let bucket_start_unix = match bucket_start_unix_result {
Ok(bucket_start_unix) => bucket_start_unix,
Err(error) => return Err(error),
};
let dedupe_key = (trade_event.pair_id, *timeframe_seconds, bucket_start_unix);
if seen.contains(&dedupe_key) {
continue;
@@ -199,7 +208,12 @@ pub(crate) async fn kb_build_candle_from_trade_events(
if trade_event.pair_id != pair_id {
continue;
}
let event_time_option = kb_extract_trade_event_unix_time(database, trade_event).await?;
let event_time_option_result =
kb_extract_trade_event_unix_time(database, trade_event).await;
let event_time_option = match event_time_option_result {
Ok(event_time_option) => event_time_option,
Err(error) => return Err(error),
};
let event_time_unix = match event_time_option {
Some(event_time_unix) => event_time_unix,
None => continue,