Skip to content

Commit edffb81

Browse files
authored
feat: implement historical klines api (#1)
1 parent 78142cd commit edffb81

6 files changed

Lines changed: 51 additions & 0 deletions

File tree

src/main/java/com/binance/api/client/BinanceApiAsyncRestClient.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ public interface BinanceApiAsyncRestClient {
122122
*/
123123
void getCandlestickBars(String symbol, CandlestickInterval interval, Integer limit, Long startTime, Long endTime, BinanceApiCallback<List<Candlestick>> callback);
124124

125+
void getCandlestickHistoryBars(String symbol, CandlestickInterval interval, Integer limit, Long startTime,
126+
Long endTime, BinanceApiCallback<List<Candlestick>> callback);
127+
125128
/**
126129
* Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
127130
*

src/main/java/com/binance/api/client/BinanceApiRestClient.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ public interface BinanceApiRestClient {
105105
*/
106106
List<Candlestick> getCandlestickBars(String symbol, CandlestickInterval interval, Integer limit, Long startTime, Long endTime);
107107

108+
List<Candlestick> getCandlestickHistoryBars(String symbol, CandlestickInterval interval, Integer limit,
109+
Long startTime, Long endTime);
110+
108111
/**
109112
* Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
110113
*

src/main/java/com/binance/api/client/impl/BinanceApiAsyncRestClientImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ public void getCandlestickBars(String symbol, CandlestickInterval interval, Inte
101101
binanceApiService.getCandlestickBars(symbol, interval.getIntervalId(), limit, startTime, endTime).enqueue(new BinanceApiCallbackAdapter<>(callback));
102102
}
103103

104+
@Override
105+
public void getCandlestickHistoryBars(String symbol, CandlestickInterval interval, Integer limit, Long startTime,
106+
Long endTime, BinanceApiCallback<List<Candlestick>> callback) {
107+
binanceApiService.getCandlestickBars(symbol, interval.getIntervalId(), limit, startTime, endTime).enqueue(new BinanceApiCallbackAdapter<>(callback));
108+
}
109+
104110
@Override
105111
public void getCandlestickBars(String symbol, CandlestickInterval interval, BinanceApiCallback<List<Candlestick>> callback) {
106112
getCandlestickBars(symbol, interval, null, null, null, callback);

src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ public List<Candlestick> getCandlestickBars(String symbol, CandlestickInterval i
8484
binanceApiService.getCandlestickBars(symbol, interval.getIntervalId(), limit, startTime, endTime));
8585
}
8686

87+
@Override
88+
public List<Candlestick> getCandlestickHistoryBars(String symbol, CandlestickInterval interval, Integer limit,
89+
Long startTime, Long endTime) {
90+
return executeSync(
91+
binanceApiService.getCandlestickHistoryBars(symbol, interval.getIntervalId(), limit, startTime, endTime));
92+
}
93+
8794
@Override
8895
public List<Candlestick> getCandlestickBars(String symbol, CandlestickInterval interval) {
8996
return getCandlestickBars(symbol, interval, null, null, null);

src/main/java/com/binance/api/client/impl/BinanceApiService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ Call<List<AggTrade>> getAggTrades(@Query("symbol") String symbol, @Query("fromId
5757
Call<List<Candlestick>> getCandlestickBars(@Query("symbol") String symbol, @Query("interval") String interval, @Query("limit") Integer limit,
5858
@Query("startTime") Long startTime, @Query("endTime") Long endTime);
5959

60+
@GET("/api/v3/uiKlines")
61+
Call<List<Candlestick>> getCandlestickHistoryBars(@Query("symbol") String symbol,
62+
@Query("interval") String interval, @Query("limit") Integer limit,
63+
@Query("startTime") Long startTime, @Query("endTime") Long endTime);
64+
6065
@GET("/api/v1/ticker/24hr")
6166
Call<TickerStatistics> get24HrPriceStatistics(@Query("symbol") String symbol);
6267

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.binance.api.examples;
2+
3+
import com.binance.api.client.BinanceApiClientFactory;
4+
import com.binance.api.client.BinanceApiRestClient;
5+
import com.binance.api.client.domain.market.Candlestick;
6+
import com.binance.api.client.domain.market.CandlestickInterval;
7+
import java.util.List;
8+
9+
public class UIKLinesExample {
10+
11+
public static void main(String[] args) {
12+
new UIKLinesExample();
13+
}
14+
15+
public UIKLinesExample() {
16+
BinanceApiClientFactory factory = BinanceApiClientFactory.newInstance();
17+
BinanceApiRestClient restClient = factory.newRestClient();
18+
19+
List<Candlestick> result = restClient.getCandlestickHistoryBars("BTCUSDT", CandlestickInterval.FIVE_MINUTES, 168,
20+
null, null);
21+
22+
System.out.println(result.size());
23+
24+
result.stream()
25+
.forEach(System.out::println);
26+
}
27+
}

0 commit comments

Comments
 (0)