Search in sources :

Example 1 with Trades

use of org.knowm.xchange.dto.marketdata.Trades in project XChange by knowm.

the class BitsoAdapters method adaptTrades.

/**
 * Adapts a Transaction[] to a Trades Object
 *
 * @param transactions The Bitso transactions
 * @param currencyPair (e.g. BTC/MXN)
 * @return The XChange Trades
 */
public static Trades adaptTrades(BitsoTransaction[] transactions, CurrencyPair currencyPair) {
    List<Trade> trades = new ArrayList<>();
    long lastTradeId = 0;
    for (BitsoTransaction tx : transactions) {
        Order.OrderType type;
        switch(tx.getSide()) {
            case "buy":
                type = Order.OrderType.ASK;
                break;
            case "sell":
                type = Order.OrderType.BID;
                break;
            default:
                type = null;
        }
        final long tradeId = tx.getTid();
        if (tradeId > lastTradeId) {
            lastTradeId = tradeId;
        }
        trades.add(new Trade.Builder().type(type).originalAmount(tx.getAmount()).currencyPair(currencyPair).price(tx.getPrice()).timestamp(DateUtils.fromMillisUtc(tx.getDate() * 1000L)).id(String.valueOf(tradeId)).build());
    }
    return new Trades(trades, lastTradeId, TradeSortType.SortByID);
}
Also used : Order(org.knowm.xchange.dto.Order) LimitOrder(org.knowm.xchange.dto.trade.LimitOrder) UserTrade(org.knowm.xchange.dto.trade.UserTrade) Trade(org.knowm.xchange.dto.marketdata.Trade) BitsoTransaction(org.knowm.xchange.bitso.dto.marketdata.BitsoTransaction) UserTrades(org.knowm.xchange.dto.trade.UserTrades) Trades(org.knowm.xchange.dto.marketdata.Trades) ArrayList(java.util.ArrayList)

Example 2 with Trades

use of org.knowm.xchange.dto.marketdata.Trades in project XChange by knowm.

the class BitstampAdapters method adaptTrades.

/**
 * Adapts a Transaction[] to a Trades Object
 *
 * @param transactions The Bitstamp transactions
 * @param currencyPair (e.g. BTC/USD)
 * @return The XChange Trades
 */
public static Trades adaptTrades(BitstampTransaction[] transactions, CurrencyPair currencyPair) {
    List<Trade> trades = new ArrayList<>();
    long lastTradeId = 0;
    for (BitstampTransaction tx : transactions) {
        final long tradeId = tx.getTid();
        if (tradeId > lastTradeId) {
            lastTradeId = tradeId;
        }
        trades.add(adaptTrade(tx, currencyPair, 1000));
    }
    return new Trades(trades, lastTradeId, TradeSortType.SortByID);
}
Also used : UserTrade(org.knowm.xchange.dto.trade.UserTrade) Trade(org.knowm.xchange.dto.marketdata.Trade) UserTrades(org.knowm.xchange.dto.trade.UserTrades) Trades(org.knowm.xchange.dto.marketdata.Trades) ArrayList(java.util.ArrayList) BitstampTransaction(org.knowm.xchange.bitstamp.dto.marketdata.BitstampTransaction)

Example 3 with Trades

use of org.knowm.xchange.dto.marketdata.Trades in project XChange by knowm.

the class BitstampAdapterTest method testTradesAdapter.

@Test
public void testTradesAdapter() throws IOException {
    // Read in the JSON from the example resources
    InputStream is = BitstampAdapterTest.class.getResourceAsStream("/org/knowm/xchange/bitstamp/dto/marketdata/example-trades-data.json");
    // Use Jackson to parse it
    ObjectMapper mapper = new ObjectMapper();
    BitstampTransaction[] transactions = mapper.readValue(is, BitstampTransaction[].class);
    Trades trades = BitstampAdapters.adaptTrades(transactions, CurrencyPair.BTC_USD);
    assertThat(trades.getTrades().size()).isEqualTo(125);
    assertThat(trades.getlastID()).isEqualTo(122260);
    // verify all fields filled
    assertThat(trades.getTrades().get(0).getId()).isEqualTo("121984");
    assertThat(trades.getTrades().get(0).getPrice().toString()).isEqualTo("13.14");
    assertThat(trades.getTrades().get(0).getType()).isEqualTo(OrderType.BID);
    assertThat(trades.getTrades().get(0).getOriginalAmount()).isEqualTo(new BigDecimal("10.11643836"));
    assertThat(trades.getTrades().get(0).getCurrencyPair()).isEqualTo(CurrencyPair.BTC_USD);
}
Also used : UserTrades(org.knowm.xchange.dto.trade.UserTrades) Trades(org.knowm.xchange.dto.marketdata.Trades) InputStream(java.io.InputStream) BitstampTransaction(org.knowm.xchange.bitstamp.dto.marketdata.BitstampTransaction) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 4 with Trades

use of org.knowm.xchange.dto.marketdata.Trades in project XChange by knowm.

the class CoinfloorPublicTradesIntegration method fetchTransactionTest.

@Test
public void fetchTransactionTest() throws IOException {
    Exchange exchange = ExchangeFactory.INSTANCE.createExchange(CoinfloorExchange.class);
    MarketDataService service = exchange.getMarketDataService();
    Trades trades = service.getTrades(CurrencyPair.BTC_GBP, CoinfloorInterval.HOUR);
    assertThat(trades.getTrades()).isNotEmpty();
    int tradeCount = trades.getTrades().size();
    Trade mostRecentTrade = trades.getTrades().get(tradeCount - 1);
    assertThat(mostRecentTrade.getPrice()).isGreaterThan(BigDecimal.ZERO);
    assertThat(mostRecentTrade.getOriginalAmount()).isGreaterThan(BigDecimal.ZERO);
    assertThat(trades.getlastID()).isEqualTo(Long.parseLong(mostRecentTrade.getId()));
}
Also used : CoinfloorExchange(org.knowm.xchange.coinfloor.CoinfloorExchange) Exchange(org.knowm.xchange.Exchange) Trade(org.knowm.xchange.dto.marketdata.Trade) Trades(org.knowm.xchange.dto.marketdata.Trades) MarketDataService(org.knowm.xchange.service.marketdata.MarketDataService) Test(org.junit.Test)

Example 5 with Trades

use of org.knowm.xchange.dto.marketdata.Trades in project XChange by knowm.

the class OkCoinTradesDemo method generic.

private static void generic(Exchange okcoinExchange) throws IOException {
    // Interested in the public market data feed (no authentication)
    MarketDataService marketDataService = okcoinExchange.getMarketDataService();
    // Get the latest trade data for BTC_CNY
    Trades trades = marketDataService.getTrades(CurrencyPair.BTC_USD, FuturesContract.ThisWeek);
    System.out.println(trades);
    System.out.println("Trades(0): " + trades.getTrades().get(0).toString());
    System.out.println("Trades size: " + trades.getTrades().size());
    // Get the latest trades data for BTC_CNY for the past couple of trades
    trades = marketDataService.getTrades(CurrencyPair.BTC_CNY, trades.getlastID() - 10);
    System.out.println(trades);
    System.out.println("Trades size: " + trades.getTrades().size());
}
Also used : Trades(org.knowm.xchange.dto.marketdata.Trades) MarketDataService(org.knowm.xchange.service.marketdata.MarketDataService)

Aggregations

Trades (org.knowm.xchange.dto.marketdata.Trades)127 Trade (org.knowm.xchange.dto.marketdata.Trade)59 ArrayList (java.util.ArrayList)41 Test (org.junit.Test)41 UserTrade (org.knowm.xchange.dto.trade.UserTrade)36 UserTrades (org.knowm.xchange.dto.trade.UserTrades)30 MarketDataService (org.knowm.xchange.service.marketdata.MarketDataService)25 Exchange (org.knowm.xchange.Exchange)23 CurrencyPair (org.knowm.xchange.currency.CurrencyPair)23 BigDecimal (java.math.BigDecimal)20 Date (java.util.Date)17 OrderBook (org.knowm.xchange.dto.marketdata.OrderBook)15 Ticker (org.knowm.xchange.dto.marketdata.Ticker)15 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)13 OrderType (org.knowm.xchange.dto.Order.OrderType)12 InputStream (java.io.InputStream)10 LimitOrder (org.knowm.xchange.dto.trade.LimitOrder)9 List (java.util.List)7 TradeService (org.knowm.xchange.service.trade.TradeService)7 Order (org.knowm.xchange.dto.Order)6