Skip to content

Commit bc82147

Browse files
committed
[bitmex] implement getTicker
1 parent 99e7852 commit bc82147

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

xchange-bitmex/src/main/java/org/knowm/xchange/bitmex/service/BitmexMarketDataService.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
package org.knowm.xchange.bitmex.service;
22

33
import java.io.IOException;
4+
import java.math.BigDecimal;
5+
import java.text.DateFormat;
6+
import java.text.ParseException;
7+
import java.text.SimpleDateFormat;
48
import java.util.Arrays;
9+
import java.util.List;
510

611
import org.knowm.xchange.Exchange;
712
import org.knowm.xchange.bitmex.BitmexAdapters;
813
import org.knowm.xchange.bitmex.BitmexPrompt;
14+
import org.knowm.xchange.bitmex.dto.account.BitmexTicker;
915
import org.knowm.xchange.currency.CurrencyPair;
1016
import org.knowm.xchange.dto.marketdata.OrderBook;
1117
import org.knowm.xchange.dto.marketdata.Ticker;
1218
import org.knowm.xchange.dto.marketdata.Trades;
1319
import org.knowm.xchange.exceptions.ExchangeException;
14-
import org.knowm.xchange.exceptions.NotYetImplementedForExchangeException;
1520
import org.knowm.xchange.service.marketdata.MarketDataService;
1621

1722
/**
@@ -37,7 +42,25 @@ public BitmexMarketDataService(Exchange exchange) {
3742
@Override
3843
public Ticker getTicker(CurrencyPair currencyPair, Object... args) throws IOException {
3944

40-
throw new NotYetImplementedForExchangeException();
45+
List<BitmexTicker> bitmexTickers = getTicker(currencyPair.base.toString() + currencyPair.counter.toString());
46+
BitmexTicker bitmexTicker = bitmexTickers.get(0);
47+
48+
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
49+
50+
Ticker ticker = null;
51+
52+
try {
53+
ticker = new Ticker.Builder().currencyPair(currencyPair).open(bitmexTicker.getOpenValue())
54+
.last(bitmexTicker.getLastPrice()).bid(bitmexTicker.getBidPrice()).ask(bitmexTicker.getAskPrice())
55+
.high(bitmexTicker.getHighPrice()).low(bitmexTicker.getLowPrice())
56+
.vwap(new BigDecimal(bitmexTicker.getVwap())).volume(bitmexTicker.getVolume()).quoteVolume(null)
57+
.timestamp(format.parse(bitmexTicker.getTimestamp())).build();
58+
} catch (ParseException e) {
59+
60+
return null;
61+
}
62+
63+
return ticker;
4164
}
4265

4366
@Override

0 commit comments

Comments
 (0)