View Javadoc
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   * Demonstration of getting order info.
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  }