Skip to content

Commit ba484d7

Browse files
authored
Merge pull request #2214 from npomfret/develop
[dsx] fixed open order timestamp and cumulative amount
2 parents 517ac63 + e2ab4ec commit ba484d7

File tree

4 files changed

+61
-26
lines changed

4 files changed

+61
-26
lines changed

xchange-dsx/src/main/java/org/knowm/xchange/dsx/DSXAdapters.java

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
package org.knowm.xchange.dsx;
22

3-
import java.math.BigDecimal;
4-
import java.math.RoundingMode;
5-
import java.util.ArrayList;
6-
import java.util.Date;
7-
import java.util.HashMap;
8-
import java.util.List;
9-
import java.util.Map;
10-
import java.util.Map.Entry;
11-
import java.util.concurrent.TimeUnit;
12-
133
import org.knowm.xchange.currency.Currency;
144
import org.knowm.xchange.currency.CurrencyPair;
155
import org.knowm.xchange.dsx.dto.account.DSXAccountInfo;
@@ -40,6 +30,16 @@
4030
import org.slf4j.Logger;
4131
import org.slf4j.LoggerFactory;
4232

33+
import java.math.BigDecimal;
34+
import java.math.RoundingMode;
35+
import java.util.ArrayList;
36+
import java.util.Date;
37+
import java.util.HashMap;
38+
import java.util.List;
39+
import java.util.Map;
40+
import java.util.Map.Entry;
41+
import java.util.concurrent.TimeUnit;
42+
4343
/**
4444
* @author Mikhail Wall
4545
*/
@@ -133,16 +133,25 @@ public static OpenOrders adaptOrders(Map<Long, DSXOrder> dsxOrderMap) {
133133
OrderType orderType = dsxOrder.getType() == DSXOrder.Type.buy ? OrderType.BID : OrderType.ASK;
134134
BigDecimal price = dsxOrder.getRate();
135135
CurrencyPair currencyPair = adaptCurrencyPair(dsxOrder.getPair());
136-
137-
limitOrders.add(new LimitOrder(orderType, dsxOrder.getAmount(), currencyPair, Long.toString(id), null, price));
136+
Date timestamp = DateUtils.fromUnixTime(Long.valueOf(dsxOrder.getTimestampCreated()));
137+
138+
limitOrders.add(new LimitOrder(
139+
orderType,
140+
dsxOrder.getAmount(),
141+
dsxOrder.getAmount().subtract(dsxOrder.getRemainingVolume()),
142+
currencyPair,
143+
Long.toString(id),
144+
timestamp,
145+
price
146+
));
138147
}
139148
return new OpenOrders(limitOrders);
140149
}
141150

142151
public static UserTrades adaptTradeHistory(Map<Long, DSXTradeHistoryResult> tradeHistory) {
143152

144153
List<UserTrade> trades = new ArrayList<>(tradeHistory.size());
145-
for (Map.Entry<Long, DSXTradeHistoryResult> entry : tradeHistory.entrySet()) {
154+
for (Entry<Long, DSXTradeHistoryResult> entry : tradeHistory.entrySet()) {
146155
DSXTradeHistoryResult result = entry.getValue();
147156
OrderType type = result.getType() == DSXTradeHistoryResult.Type.buy ? OrderType.BID : OrderType.ASK;
148157
BigDecimal price = result.getRate();
@@ -193,7 +202,7 @@ public static ExchangeMetaData toMetaData(DSXExchangeInfo dsxExchangeInfo, DSXMe
193202
Map<Currency, CurrencyMetaData> currencies = new HashMap<>();
194203

195204
if (dsxExchangeInfo != null) {
196-
for (Map.Entry<String, DSXPairInfo> e : dsxExchangeInfo.getPairs().entrySet()) {
205+
for (Entry<String, DSXPairInfo> e : dsxExchangeInfo.getPairs().entrySet()) {
197206
CurrencyPair pair = adaptCurrencyPair(e.getKey());
198207
CurrencyPairMetaData marketMetaData = toMarketMetaData(e.getValue());
199208
currencyPairs.put(pair, marketMetaData);

xchange-dsx/src/main/java/org/knowm/xchange/dsx/dto/trade/DSXOrder.java

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package org.knowm.xchange.dsx.dto.trade;
22

3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
35
import java.math.BigDecimal;
46
import java.text.MessageFormat;
57

6-
import com.fasterxml.jackson.annotation.JsonProperty;
7-
88
/**
99
* @author Mikhail Wall
1010
*/
@@ -14,20 +14,36 @@ public class DSXOrder {
1414
private final String pair;
1515
private final Type type;
1616
private final BigDecimal volume;
17+
private final BigDecimal remainingVolume;
1718
private final BigDecimal rate;
1819
private final int status;
1920
private final OrderType orderType;
21+
private final String timestampCreated;
2022

21-
public DSXOrder(@JsonProperty("pair") String pair, @JsonProperty("type") Type type, @JsonProperty("volume") BigDecimal volume,
22-
@JsonProperty("rate") BigDecimal rate, @JsonProperty("status") int status,
23-
@JsonProperty("orderType") OrderType orderType) {
23+
public DSXOrder(@JsonProperty("pair") String pair, @JsonProperty("type") Type type, @JsonProperty("volume") BigDecimal volume, @JsonProperty("remainingVolume") BigDecimal remainingVolume,
24+
@JsonProperty("rate") BigDecimal rate, @JsonProperty("status") int status,
25+
@JsonProperty("orderType") OrderType orderType, @JsonProperty("timestampCreated") String timestampCreated) {
2426

2527
this.pair = pair;
2628
this.type = type;
2729
this.volume = volume;
30+
this.remainingVolume = remainingVolume;
2831
this.rate = rate;
2932
this.status = status;
3033
this.orderType = orderType;
34+
this.timestampCreated = timestampCreated;
35+
}
36+
37+
public BigDecimal getVolume() {
38+
return volume;
39+
}
40+
41+
public BigDecimal getRemainingVolume() {
42+
return remainingVolume;
43+
}
44+
45+
public String getTimestampCreated() {
46+
return timestampCreated;
3147
}
3248

3349
public String getPair() {
@@ -54,10 +70,18 @@ public OrderType getOrderType() {
5470
return orderType;
5571
}
5672

73+
@Override
5774
public String toString() {
58-
59-
return MessageFormat.format("DSXOrder[pair=''{0}'', type={1}, volume={2}, rate={3}, status={4}, orderType={5}",
60-
pair, type, volume, rate, status, orderType);
75+
return "DSXOrder{" +
76+
"pair='" + pair + '\'' +
77+
", type=" + type +
78+
", volume=" + volume +
79+
", remainingVolume=" + remainingVolume +
80+
", rate=" + rate +
81+
", status=" + status +
82+
", orderType=" + orderType +
83+
", timestampCreated='" + timestampCreated + '\'' +
84+
'}';
6185
}
6286

6387
public enum Type {

xchange-dsx/src/main/java/org/knowm/xchange/dsx/service/DSXTradeService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.knowm.xchange.dsx.service;
22

33
import java.io.IOException;
4+
import java.math.BigDecimal;
45
import java.util.Collection;
56
import java.util.Date;
67
import java.util.Map;
@@ -82,8 +83,8 @@ public String placeLimitOrder(LimitOrder limitOrder) throws IOException {
8283

8384
String pair = DSXAdapters.getPair(limitOrder.getCurrencyPair());
8485

85-
DSXOrder dsxOrder = new DSXOrder(pair, type, limitOrder.getOriginalAmount(), limitOrder.getLimitPrice(),
86-
3, DSXOrder.OrderType.limit);
86+
DSXOrder dsxOrder = new DSXOrder(pair, type, limitOrder.getOriginalAmount(), limitOrder.getOriginalAmount(), limitOrder.getLimitPrice(),
87+
3, DSXOrder.OrderType.limit, null);
8788

8889
DSXTradeResult result = tradeDSX(dsxOrder);
8990
return Long.toString(result.getOrderId());

xchange-examples/src/main/java/org/knowm/xchange/examples/dsx/trade/DSXTradeDemo.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private static void rawCancelAllOrders(Exchange exchange) throws IOException {
6262

6363
DSXOrder.Type type = DSXOrder.Type.buy;
6464
String pair = "btcusd";
65-
DSXOrder dsxOrder = new DSXOrder(pair, type, new BigDecimal("0.01"), new BigDecimal("900"), 0, DSXOrder.OrderType.limit);
65+
DSXOrder dsxOrder = new DSXOrder(pair, type, new BigDecimal("0.01"), new BigDecimal("900"), new BigDecimal("900"), 0, DSXOrder.OrderType.limit, null);
6666

6767
DSXTradeResult result = null;
6868
DSXTradeResult result1 = null;
@@ -100,7 +100,8 @@ private static void raw(Exchange exchange) throws IOException {
100100
// place buy order
101101
DSXOrder.Type type = DSXOrder.Type.buy;
102102
String pair = "btcusd";
103-
DSXOrder dsxOrder = new DSXOrder(pair, type, new BigDecimal("0.1"), new BigDecimal("900"), 0, DSXOrder.OrderType.limit);
103+
DSXOrder dsxOrder = new DSXOrder(pair, type, new BigDecimal("0.1"), new BigDecimal("900"), new BigDecimal("900"), 0, DSXOrder.OrderType
104+
.limit, null);
104105

105106
DSXTradeResult result = null;
106107
try {

0 commit comments

Comments
 (0)