diff --git a/src/main.rs b/src/main.rs index 1504fd1..e3ad5a7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,11 +19,12 @@ async fn fetch_candles_until_now( mut start_time: NaiveDateTime, ) -> AppResult> { let mut result = vec![]; + let limit = 500; loop { println!("pulling candles from {start_time}"); let candles = poloniex_client - .get_historical_candles(pair, interval, start_time, Utc::now().naive_utc()) + .get_historical_candles(pair, interval, start_time, Utc::now().naive_utc(), limit) .await?; let Some(last_candle) = candles.last() else { @@ -46,7 +47,13 @@ async fn fetch_candles_until_now( break; } + let candles_count = candles.len(); + result.extend(candles); + + if candles_count < limit { + break; + } } Ok(result) diff --git a/src/poloniex.rs b/src/poloniex.rs index e7e09aa..95816ee 100644 --- a/src/poloniex.rs +++ b/src/poloniex.rs @@ -32,6 +32,7 @@ impl PoloniexClient { interval: CandleInterval, start_date: NaiveDateTime, end_date: NaiveDateTime, + limit: usize, ) -> AppResult> { let mut req = self .rest_base_url @@ -47,7 +48,7 @@ impl PoloniexClient { &end_date.and_utc().timestamp_millis().to_string(), ) .append_pair("interval", interval.as_ref()) - .append_pair("limit", "500"); + .append_pair("limit", &limit.to_string()); let result = reqwest::get(req).await?;