Skip to content

Commit 016e8fc

Browse files
committed
Merge branch 'develop' into PR/binance-chinees-fix
2 parents 44c4957 + a35eeb8 commit 016e8fc

File tree

47 files changed

+508
-1103
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+508
-1103
lines changed

pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@
8787
<module>xchange-idex</module>
8888
<module>xchange-independentreserve</module>
8989
<module>xchange-itbit</module>
90-
<module>xchange-koineks</module>
9190
<module>xchange-koinim</module>
9291
<module>xchange-kraken</module>
9392
<module>xchange-krakenfutures</module>

xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceAdapters.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,7 @@ public static FundingRate adaptFundingRate(BinanceFundingRate binanceFundingRate
675675
BigDecimal.valueOf(8),
676676
binanceFundingRate.getLastFundingRate().scale(),
677677
RoundingMode.HALF_EVEN))
678-
.fundingRate8h(binanceFundingRate.getLastFundingRate())
678+
.fundingRate(binanceFundingRate.getLastFundingRate())
679679
.instrument(binanceFundingRate.getInstrument())
680680
.fundingRateDate(binanceFundingRate.getNextFundingTime())
681681
.fundingRateEffectiveInMinutes(

xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFutures.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.knowm.xchange.binance.dto.BinanceException;
1111
import org.knowm.xchange.binance.dto.marketdata.BinanceAggTrades;
1212
import org.knowm.xchange.binance.dto.marketdata.BinanceFundingRate;
13+
import org.knowm.xchange.binance.dto.marketdata.BinanceFundingRateInfo;
1314
import org.knowm.xchange.binance.dto.marketdata.BinanceOrderbook;
1415
import org.knowm.xchange.binance.dto.marketdata.BinanceTicker24h;
1516
import org.knowm.xchange.binance.dto.meta.BinanceSystemStatus;
@@ -122,6 +123,15 @@ List<BinanceAggTrades> aggTrades(
122123
BinanceFundingRate fundingRate(@QueryParam("symbol") String symbol)
123124
throws IOException, BinanceException;
124125

126+
/**
127+
* @return BinanceFundingRateInfo
128+
* @throws IOException
129+
* @throws BinanceException
130+
*/
131+
@GET
132+
@Path("fapi/v1/fundingInfo")
133+
List<BinanceFundingRateInfo> fundingRateInfo() throws IOException, BinanceException;
134+
125135
/**
126136
* Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.<br>
127137
* If startTime and endTime are not sent, the most recent klines are returned.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.knowm.xchange.binance.dto.marketdata;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import java.math.BigDecimal;
5+
import lombok.Getter;
6+
import lombok.ToString;
7+
import org.knowm.xchange.binance.BinanceAdapters;
8+
import org.knowm.xchange.instrument.Instrument;
9+
10+
@Getter
11+
@ToString
12+
public class BinanceFundingRateInfo {
13+
private final Instrument instrument;
14+
private final BigDecimal adjustedFundingRateCap;
15+
private final BigDecimal adjustedFundingRateFloor;
16+
private final int fundingIntervalHours;
17+
18+
public BinanceFundingRateInfo(
19+
@JsonProperty("symbol") String symbol,
20+
@JsonProperty("adjustedFundingRateCap") BigDecimal adjustedFundingRateCap,
21+
@JsonProperty("adjustedFundingRateFloor") BigDecimal adjustedFundingRateFloor,
22+
@JsonProperty("fundingIntervalHours") int fundingIntervalHours) {
23+
this.instrument = BinanceAdapters.adaptSymbol(symbol, true);
24+
this.adjustedFundingRateCap = adjustedFundingRateCap;
25+
this.adjustedFundingRateFloor = adjustedFundingRateFloor;
26+
this.fundingIntervalHours = fundingIntervalHours;
27+
}
28+
}

xchange-binance/src/main/java/org/knowm/xchange/binance/service/BinanceMarketDataServiceRaw.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.knowm.xchange.binance.BinanceExchange;
1010
import org.knowm.xchange.binance.dto.marketdata.BinanceAggTrades;
1111
import org.knowm.xchange.binance.dto.marketdata.BinanceFundingRate;
12+
import org.knowm.xchange.binance.dto.marketdata.BinanceFundingRateInfo;
1213
import org.knowm.xchange.binance.dto.marketdata.BinanceKline;
1314
import org.knowm.xchange.binance.dto.marketdata.BinanceOrderbook;
1415
import org.knowm.xchange.binance.dto.marketdata.BinancePrice;
@@ -168,6 +169,12 @@ public BinanceFundingRate getBinanceFundingRate(Instrument instrument) throws IO
168169
.call();
169170
}
170171

172+
public List<BinanceFundingRateInfo> getBinanceFundingRateInfo() throws IOException {
173+
return decorateApiCall(() -> binanceFutures.fundingRateInfo())
174+
.withRetry(retry("fundingRate"))
175+
.call();
176+
}
177+
171178
public BinancePrice tickerPrice(CurrencyPair pair) throws IOException {
172179
return tickerAllPrices().stream()
173180
.filter(p -> p.getCurrencyPair().equals(pair))

xchange-bybit/src/main/java/org/knowm/xchange/bybit/dto/marketdata/tickers/BybitTicker.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import com.fasterxml.jackson.annotation.JsonProperty;
44
import java.math.BigDecimal;
55
import lombok.Data;
6+
import lombok.NoArgsConstructor;
67
import lombok.experimental.SuperBuilder;
78

89
@SuperBuilder
910
@Data
11+
@NoArgsConstructor
1012
public abstract class BybitTicker {
1113

1214
@JsonProperty("symbol")

xchange-bybit/src/main/java/org/knowm/xchange/bybit/dto/marketdata/tickers/linear/BybitLinearInverseTicker.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
package org.knowm.xchange.bybit.dto.marketdata.tickers.linear;
22

3+
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import com.fasterxml.jackson.annotation.JsonInclude.Include;
35
import com.fasterxml.jackson.annotation.JsonProperty;
46
import java.math.BigDecimal;
57
import java.util.Date;
8+
import lombok.EqualsAndHashCode;
69
import lombok.Value;
710
import lombok.experimental.SuperBuilder;
811
import lombok.extern.jackson.Jacksonized;
912
import org.knowm.xchange.bybit.dto.marketdata.tickers.BybitTicker;
1013

14+
@EqualsAndHashCode(callSuper = true)
1115
@SuperBuilder
1216
@Jacksonized
1317
@Value
18+
@JsonInclude(Include.NON_NULL)
1419
public class BybitLinearInverseTicker extends BybitTicker {
1520

1621
@JsonProperty("indexPrice")
@@ -54,4 +59,10 @@ public class BybitLinearInverseTicker extends BybitTicker {
5459

5560
@JsonProperty("deliveryTime")
5661
Date deliveryTime;
62+
63+
@JsonProperty("fundingIntervalHour")
64+
Integer fundingIntervalHour;
65+
66+
@JsonProperty("fundingCap")
67+
String fundingCap;
5768
}

xchange-core/src/main/java/org/knowm/xchange/dto/marketdata/FundingRate.java

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,35 @@
66
import java.util.Date;
77
import java.util.concurrent.TimeUnit;
88
import lombok.Getter;
9+
import lombok.NoArgsConstructor;
10+
import lombok.Setter;
911
import lombok.ToString;
1012
import org.knowm.xchange.instrument.Instrument;
1113

1214
@Getter
1315
@ToString
16+
@Setter
17+
@NoArgsConstructor
1418
public class FundingRate {
1519

16-
private final Instrument instrument;
17-
private final BigDecimal fundingRate1h;
18-
private final BigDecimal fundingRate8h;
19-
private final Date fundingRateDate;
20-
private final long fundingRateEffectiveInMinutes;
20+
private Instrument instrument;
21+
private BigDecimal fundingRate1h;
22+
private BigDecimal fundingRate;
23+
private FundingRateInterval fundingRateInterval;
24+
private Date fundingRateDate;
25+
private long fundingRateEffectiveInMinutes;
2126

2227
public FundingRate(
2328
@JsonProperty("instrument") Instrument instrument,
2429
@JsonProperty("fundingRate1h") BigDecimal fundingRate1h,
25-
@JsonProperty("fundingRate8h") BigDecimal fundingRate8h,
30+
@JsonProperty("fundingRate") BigDecimal fundingRate,
31+
@JsonProperty("fundingRateInterval") FundingRateInterval fundingRateInterval,
2632
@JsonProperty("fundingRateDate") Date fundingRateDate,
2733
@JsonProperty("fundingRateEffectiveInMinutes") long fundingRateEffectiveInMinutes) {
2834
this.instrument = instrument;
2935
this.fundingRate1h = fundingRate1h;
30-
this.fundingRate8h = fundingRate8h;
36+
this.fundingRate = fundingRate;
37+
this.fundingRateInterval = fundingRateInterval;
3138
this.fundingRateDate = fundingRateDate;
3239
this.fundingRateEffectiveInMinutes =
3340
(fundingRateEffectiveInMinutes == 0 && fundingRateDate != null)
@@ -39,7 +46,8 @@ public static class Builder {
3946

4047
protected Instrument instrument;
4148
protected BigDecimal fundingRate1h;
42-
protected BigDecimal fundingRate8h;
49+
protected BigDecimal fundingRate;
50+
protected FundingRateInterval fundingRateInterval;
4351
protected Date fundingRateDate;
4452
protected long fundingRateEffectiveInMinutes;
4553

@@ -55,9 +63,9 @@ public FundingRate.Builder fundingRate1h(BigDecimal fundingRate1h) {
5563
return this;
5664
}
5765

58-
public FundingRate.Builder fundingRate8h(BigDecimal fundingRate8h) {
66+
public FundingRate.Builder fundingRate(BigDecimal fundingRate) {
5967

60-
this.fundingRate8h = fundingRate8h;
68+
this.fundingRate = fundingRate;
6169
return this;
6270
}
6371

@@ -72,12 +80,18 @@ public FundingRate.Builder fundingRateEffectiveInMinutes(long fundingRateEffecti
7280
return this;
7381
}
7482

83+
public FundingRate.Builder fundingRateInterval(FundingRateInterval fundingRateInterval) {
84+
this.fundingRateInterval = fundingRateInterval;
85+
return this;
86+
}
87+
7588
public FundingRate build() {
7689

7790
return new FundingRate(
7891
instrument,
7992
fundingRate1h,
80-
fundingRate8h,
93+
fundingRate,
94+
fundingRateInterval,
8195
fundingRateDate,
8296
(fundingRateEffectiveInMinutes == 0 && fundingRateDate != null)
8397
? calculateFundingRateEffectiveInMinutes(fundingRateDate)
@@ -89,4 +103,18 @@ private static long calculateFundingRateEffectiveInMinutes(Date fundingRateDate)
89103
return TimeUnit.MILLISECONDS.toMinutes(
90104
fundingRateDate.getTime() - Date.from(Instant.now()).getTime());
91105
}
106+
107+
@Getter
108+
public enum FundingRateInterval {
109+
H1(1),
110+
H2(2),
111+
H4(4),
112+
H6(6),
113+
H8(8);
114+
private final int hours;
115+
116+
FundingRateInterval(int hours) {
117+
this.hours = hours;
118+
}
119+
}
92120
}

xchange-examples/pom.xml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -193,11 +193,7 @@
193193
<artifactId>xchange-itbit</artifactId>
194194
<version>${project.version}</version>
195195
</dependency>
196-
<dependency>
197-
<groupId>${project.groupId}</groupId>
198-
<artifactId>xchange-koineks</artifactId>
199-
<version>${project.version}</version>
200-
</dependency>
196+
201197
<dependency>
202198
<groupId>${project.groupId}</groupId>
203199
<artifactId>xchange-koinim</artifactId>

xchange-examples/src/main/java/org/knowm/xchange/examples/koineks/KoineksDemoUtils.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)