107 lines
3.2 KiB
Markdown
107 lines
3.2 KiB
Markdown
# Java client for [Binance API](https://www.binance.com/restapipub.html)
|
||
|
||
## Synopsis
|
||
Client for accessing Binance API using Java. An [async](src/main/java/com/github/johnsiu/binance/httpclients/AsyncBinanceClient.java) and a [sync](src/main/java/com/github/johnsiu/binance/httpclients/BinanceClient.java) versions of the client are available.
|
||
|
||
## Installation
|
||
|
||
Add the bintray repo to the pom of your maven project:
|
||
|
||
```xml
|
||
<repositories>
|
||
<repository>
|
||
<id>bintray-johnsiu-maven-repo</id>
|
||
<url>https://dl.bintray.com/johnsiu/maven-repo</url>
|
||
</repository>
|
||
</repositories>
|
||
```
|
||
then, add the dependency:
|
||
```xml
|
||
<dependency>
|
||
<groupId>com.github.johnsiu</groupId>
|
||
<artifactId>binance-java-client</artifactId>
|
||
<version>1.0.1</version>
|
||
</dependency>
|
||
```
|
||
|
||
## Usage
|
||
|
||
### Creating an instance of the async client using Guice
|
||
```java
|
||
Injector injector = Guice.createInjector(new BinanceClientModule());
|
||
AsyncBinanceClient asyncClient = injector.getInstance(AsyncBinanceClient.class);
|
||
```
|
||
### Creating an instance of the sync client using Guice
|
||
```java
|
||
Injector injector = Guice.createInjector(new BinanceClientModule());
|
||
BinanceClient client = injector.getInstance(BinanceClient.class);
|
||
```
|
||
|
||
### Getting latest price of a symbol
|
||
```java
|
||
Ticker ticker = client.getTicker("ETHBTC"));
|
||
double price = ticker.getLastPrice();
|
||
```
|
||
### Getting depth of a symbol
|
||
```java
|
||
Depth depth = client.getDepth("ETHBTC"));
|
||
```
|
||
### Placing a LIMIT order
|
||
```java
|
||
Keys keys = new Keys("YOUR_API_KEY", "YOUR_SECRET_KEY");
|
||
double quantity = 1;
|
||
double price = 0.020041;
|
||
Order order = client.placeLimitOrder(keys, "MCOETH", OrderSide.BUY, TimeInForce.GTC, quantity, price);
|
||
```
|
||
|
||
### Placing a MARKET order
|
||
```java
|
||
double quantity = 1;
|
||
Order order = client.placeMarketOrder(keys, "MCOETH", OrderSide.SELL, quantity);
|
||
```
|
||
### Checking an order’s status
|
||
```java
|
||
OrderStatus orderStatus = client.checkOrderStatus(keys, order);
|
||
```
|
||
|
||
### Cancelling an order
|
||
```java
|
||
CancelOrder cancelOrder = client.cancelOrder(keys, order);
|
||
// or
|
||
CancelOrder cancelOrder = client.cancelOrder(keys, orderStatus);
|
||
|
||
```
|
||
|
||
### Getting a list of open orders
|
||
```java
|
||
List<OrderStatus> openOrders = client.getOpenOrders(keys, "MCOETH");
|
||
```
|
||
|
||
### Getting a list of current position
|
||
```java
|
||
Account account = client.getAccount(keys);
|
||
Map<String, Balance> balances = account.getBalances();
|
||
```
|
||
|
||
### Exception handling
|
||
```java
|
||
try {
|
||
Depth depth = client.getDepth("invalid symbol"));
|
||
} catch (ClientErrorException e) {
|
||
int httpStatusCode = e.getHttpStatusCode();
|
||
String errorCode = e.getErrorDetails().getCode();
|
||
String errorMessage = e.getErrorDetails().getMsg();
|
||
}
|
||
```
|
||
|
||
## Contributing
|
||
|
||
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
|
||
|
||
## Versioning
|
||
|
||
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/johnsiu/binance-java-client/tags).
|
||
|
||
## License
|
||
|
||
This project is released into the public domain - see the [UNLICENSE](UNLICENSE) file for details. |