Moodl/library/Binance/README.md

107 lines
3.2 KiB
Markdown
Raw Normal View History

# 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 orders 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.