1 package org.oxerr.okcoin.examples.rest;
2
3 import java.io.IOException;
4 import java.util.Arrays;
5
6 import org.knowm.xchange.Exchange;
7 import org.knowm.xchange.ExchangeFactory;
8 import org.knowm.xchange.ExchangeSpecification;
9 import org.knowm.xchange.dto.trade.OpenOrders;
10 import org.knowm.xchange.service.trade.TradeService;
11 import org.oxerr.okcoin.rest.OKCoinException;
12 import org.oxerr.okcoin.rest.OKCoinExchange;
13 import org.oxerr.okcoin.rest.dto.OrderHistory;
14 import org.oxerr.okcoin.rest.dto.OrderResult;
15 import org.oxerr.okcoin.rest.service.OKCoinTradeServiceRaw;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18
19
20
21
22 public class OrderInfoDemo {
23
24 private final Logger log = LoggerFactory.getLogger(TradeDemo.class);
25
26 private final TradeService tradeService;
27 private final OKCoinTradeServiceRaw rawTradeService;
28
29 public OrderInfoDemo(Exchange exchange) {
30 tradeService = exchange.getTradeService();
31 rawTradeService = (OKCoinTradeServiceRaw) tradeService;
32 }
33
34 public void getOpenOrders() throws IOException {
35 OpenOrders openOrders = tradeService.getOpenOrders();
36 log.info("open orders: {}", openOrders);
37 openOrders.getOpenOrders().stream().forEach(
38 o -> log.info("{} {} {} {} {}@{}",
39 o.getCurrencyPair(),
40 o.getId(), o.getTimestamp(),
41 o.getType(), o.getTradableAmount(), o.getLimitPrice()));
42
43 }
44
45 public void getUnfilledOrders() throws OKCoinException, IOException {
46 String symbol = "btc_cny";
47 OrderResult result = rawTradeService.getOrder(symbol, -1);
48 log.info("unfilled orders: {}", result);
49 Arrays.stream(result.getOrders()).forEach(
50 o -> log.info("{} {} {} {}@{}, filled: {}, avg px: {}",
51 o.getOrderId(), o.getCreateDate(),
52 o.getType(), o.getAmount(), o.getPrice(),
53 o.getDealAmount(), o.getAvgPrice()));
54 }
55
56 public void getOrders() throws OKCoinException, IOException {
57 OrderResult result = rawTradeService.getOrders("btc_cny", 0,
58 new long[] { 295510436L });
59 log.info("order result: {}", result);
60 }
61
62 public void getOrderHistory() throws OKCoinException, IOException {
63 OrderHistory history = rawTradeService.getOrderHistory("btc_cny", 0, 1, 2);
64 log.info("order history: {}", history);
65
66 Arrays.stream(history.getOrders()).forEach(
67 o -> log.info("{} {} {} {}@{}, filled: {}, avg px: {}",
68 o.getOrderId(), o.getCreateDate(),
69 o.getType(), o.getAmount(), o.getPrice(),
70 o.getDealAmount(), o.getAvgPrice()));
71 }
72
73 public static void main(String[] args) throws OKCoinException, IOException {
74 String apiKey = args[0], secretKey = args[1];
75
76 ExchangeSpecification spec = new ExchangeSpecification(OKCoinExchange.class);
77 spec.setApiKey(apiKey);
78 spec.setSecretKey(secretKey);
79
80 Exchange domesticExchange = ExchangeFactory.INSTANCE.createExchange(spec);
81 OrderInfoDemo orderInfoDemo = new OrderInfoDemo(domesticExchange);
82
83 orderInfoDemo.getOpenOrders();
84 orderInfoDemo.getUnfilledOrders();
85 orderInfoDemo.getOrders();
86 orderInfoDemo.getOrderHistory();
87 }
88
89 }