# exchange-sdk
**Repository Path**: silently9527/exchange-sdk
## Basic Information
- **Project Name**: exchange-sdk
- **Description**: 作为长期混迹在合约市场的老韭菜来说,已不能满足与手动下单来亏钱,必须得通过脚本来加速,为了达到这个目的就产生了项目。目前封装的主要是合约的API接口,不支持现货交易。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-08-16
- **Last Updated**: 2024-09-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ExchangeSdk
作为长期混迹在合约市场的老韭菜来说,已不能满足与手动下单来亏钱,必须得通过脚本来加速,为了达到这个目的就产生了项目。目前封装的主要是合约的API接口,不支持现货交易。
## 知识星球: [Herman's Notes](https://t.zsxq.com/h2EIR)
加微信silently9527, 免费加入知识星球;欢迎加入进来一起交流使用脚本快速亏钱秘诀
## Features
1. 抽象出了交易所合约的通用接口
2. 支持的交易所:binance, okex, kucoin
3. 支持 Rest接口 和 WebSocket
## How to install
1. 克隆下仓库代码执行`mvn install`
2. maven依赖添加到自己的项目
```xml
org.herman
exchange-sdk
1.0-SNAPSHOT
```
## How to use
- `FutureRestApiClient`: 主要抽象出了合约的RestApi接口
- `FutureSubscriptionClient`: 主要抽象出了合约的WebSocket接口
- `FutureApiInternalFactory`: 封装了创建各个交易所FutureRestApiClient和FutureSubscriptionClient的工具类
#### Examples
1. 使用rest接口查询出Binance的标记价格
```java
final FutureRestApiClient restApiClient = FutureApiInternalFactory
.getInstance()
.createBinanceFutureRestApiClient(Constants.Future.BINANCE_REST_API_BASE_URL, "xxx", "xxx");
final List markPrice = restApiClient.getMarkPrice("BTCUSDT");
System.out.println(markPrice);
```
输出:
```
[MarkPrice[symbol=BTCUSDT,markPrice=57738.69215152,time=1723775413000]]
```
2. 使用WebSocket监听Binance的标记价格
```java
final FutureSubscriptionClient subscriptionClient = FutureApiInternalFactory
.getInstance()
.createBinanceFutureSubscriptionClient(Constants.Future.BINANCE_WS_API_BASE_URL, "xxx", "xxx");
subscriptionClient.subscribeMarkPriceEvent("BTCUSDT",
markPriceEvent -> {
//订阅成功后的回调
System.out.println(markPriceEvent);
},
e -> {
//异常后的执行逻辑
e.printStackTrace();
}
);
```
## 博客地址
[https://herman7z.site](https://herman7z.site)
