Skip to content

Commit 6293ba4

Browse files
版本 1.1.1
完善 README 将 insertOrder 与 cancelOrder 变更为 suspend 方法
1 parent 4a2d839 commit 6293ba4

File tree

2 files changed

+59
-15
lines changed

2 files changed

+59
-15
lines changed

README.md

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,50 @@
1919
## 已有的接口实现
2020
* [KTrader-Broker-CTP](https://github.com/ktrader-tech/ktrader-broker-ctp) CTP 实现(中国期货 & 期权)
2121

22+
## 接口速览
23+
带有文档注释的全内容版本参见 [BrokerApi.kt](https://github.com/ktrader-tech/ktrader-broker-api/blob/master/lib/src/main/kotlin/org/rationalityfrontline/ktrader/broker/api/BrokerApi.kt)
24+
```kotlin
25+
abstract class BrokerApi(val config: Map<String, Any>, val kEvent: KEvent) {
26+
abstract val name: String
27+
abstract val version: String
28+
abstract val account: String
29+
abstract val mdConnected: Boolean
30+
abstract val tdConnected: Boolean
31+
val createTime: LocalDateTime = LocalDateTime.now()
32+
val sourceId: String get() = "${name}_${account}_${hashCode()}"
33+
34+
abstract suspend fun connect(connectMd: Boolean = true, connectTd: Boolean = true, extras: Map<String, Any>? = null)
35+
abstract suspend fun close()
36+
open fun getTradingDay(): LocalDate
37+
abstract suspend fun subscribeMarketData(codes: Collection<String>, extras: Map<String, Any>? = null)
38+
open suspend fun subscribeMarketData(code: String, extras: Map<String, Any>? = null)
39+
abstract suspend fun unsubscribeMarketData(codes: Collection<String>, extras: Map<String, Any>? = null)
40+
open suspend fun unsubscribeMarketData(code: String, extras: Map<String, Any>? = null)
41+
abstract suspend fun subscribeAllMarketData(extras: Map<String, Any>? = null)
42+
abstract suspend fun unsubscribeAllMarketData(extras: Map<String, Any>? = null)
43+
abstract suspend fun querySubscriptions(useCache: Boolean = true, extras: Map<String, Any>? = null): List<String>
44+
abstract suspend fun queryLastTick(code: String, useCache: Boolean = true, extras: Map<String, Any>? = null): Tick?
45+
abstract suspend fun querySecurity(code: String, useCache: Boolean = true, extras: Map<String, Any>? = null): Security?
46+
abstract suspend fun queryAllSecurities(useCache: Boolean = true, extras: Map<String, Any>? = null): List<Security>
47+
abstract suspend fun queryAssets(useCache: Boolean = true, extras: Map<String, Any>? = null): Assets
48+
abstract suspend fun queryPosition(code: String, direction: Direction, useCache: Boolean = true, extras: Map<String, Any>? = null): Position?
49+
abstract suspend fun queryPositions(code: String? = null, useCache: Boolean = true, extras: Map<String, Any>? = null): List<Position>
50+
abstract suspend fun queryOrder(orderId: String, useCache: Boolean = true, extras: Map<String, Any>? = null): Order?
51+
abstract suspend fun queryOrders(code: String? = null, onlyUnfinished: Boolean = true, useCache: Boolean = true, extras: Map<String, Any>? = null): List<Order>
52+
abstract suspend fun queryTrade(tradeId: String, useCache: Boolean = true, extras: Map<String, Any>? = null): Trade?
53+
abstract suspend fun queryTrades(code: String? = null, orderId: String? = null, useCache: Boolean = true, extras: Map<String, Any>? = null): List<Trade>
54+
abstract suspend fun insertOrder(code: String, price: Double, volume: Int, direction: Direction, offset: OrderOffset, orderType: OrderType = OrderType.LIMIT, extras: Map<String, Any>? = null): Order
55+
abstract suspend fun cancelOrder(orderId: String, extras: Map<String, Any>? = null)
56+
open suspend fun cancelAllOrders(extras: Map<String, Any>? = null)
57+
open suspend fun prepareFeeCalculation(codes: Collection<String>? = null, extras: Map<String, Any>? = null)
58+
open fun calculatePosition(position: Position, extras: Map<String, Any>? = null)
59+
open fun calculateOrder(order: Order, extras: Map<String, Any>? = null)
60+
open fun calculateTrade(trade: Trade, extras: Map<String, Any>? = null)
61+
open fun customRequest(method: String, params: Map<String, Any>? = null): Any
62+
open suspend fun customSuspendRequest(method: String, params: Map<String, Any>? = null): Any
63+
}
64+
```
65+
2266
## Download
2367

2468
**Gradle:**
@@ -29,7 +73,7 @@ repositories {
2973
}
3074

3175
dependencies {
32-
implementation("org.rationalityfrontline.ktrader:ktrader-broker-api:1.1.0")
76+
implementation("org.rationalityfrontline.ktrader:ktrader-broker-api:1.1.1")
3377
}
3478
```
3579

@@ -39,7 +83,7 @@ dependencies {
3983
<dependency>
4084
<groupId>org.rationalityfrontline.ktrader</groupId>
4185
<artifactId>ktrader-broker-api</artifactId>
42-
<version>1.1.0</version>
86+
<version>1.1.1</version>
4387
</dependency>
4488
```
4589

lib/src/main/kotlin/org/rationalityfrontline/ktrader/broker/api/BrokerApi.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ abstract class BrokerApi(val config: Map<String, Any>, val kEvent: KEvent) {
2626
*/
2727
abstract val account: String
2828

29-
/**
30-
* 唯一标识该 [BrokerApi] 实例的字段,默认实现为 "${name}_${account}_${hashCode()}"
31-
*/
32-
open val sourceId: String get() = "${name}_${account}_${hashCode()}"
33-
3429
/**
3530
* 行情接口是否已连接
3631
*/
@@ -46,6 +41,11 @@ abstract class BrokerApi(val config: Map<String, Any>, val kEvent: KEvent) {
4641
*/
4742
val createTime: LocalDateTime = LocalDateTime.now()
4843

44+
/**
45+
* 唯一标识该 [BrokerApi] 实例的字段,默认实现为 "${name}_${account}_${hashCode()}"
46+
*/
47+
val sourceId: String get() = "${name}_${account}_${hashCode()}"
48+
4949
/**
5050
* 连接服务器并完成用户登录
5151
* @param connectMd 是否连接行情接口,默认为 true
@@ -208,7 +208,7 @@ abstract class BrokerApi(val config: Map<String, Any>, val kEvent: KEvent) {
208208
* @param extras 额外的参数,默认为 null
209209
* @return 产生的订单
210210
*/
211-
abstract fun insertOrder(
211+
abstract suspend fun insertOrder(
212212
code: String, price: Double, volume: Int, direction: Direction, offset: OrderOffset,
213213
orderType: OrderType = OrderType.LIMIT, extras: Map<String, Any>? = null
214214
): Order
@@ -218,7 +218,7 @@ abstract class BrokerApi(val config: Map<String, Any>, val kEvent: KEvent) {
218218
* @param orderId 要撤的订单的 ID
219219
* @param extras 额外的参数,默认为 null
220220
*/
221-
abstract fun cancelOrder(orderId: String, extras: Map<String, Any>? = null)
221+
abstract suspend fun cancelOrder(orderId: String, extras: Map<String, Any>? = null)
222222

223223
/**
224224
* 撤单所有未完成订单
@@ -255,17 +255,17 @@ abstract class BrokerApi(val config: Map<String, Any>, val kEvent: KEvent) {
255255
open fun calculateTrade(trade: Trade, extras: Map<String, Any>? = null) {}
256256

257257
/**
258-
* 自定义的挂起请求,参见 [Broker.customMethods]
258+
* 自定义的请求,参见 [Broker.customMethods]
259259
*/
260-
open suspend fun customSuspendRequest(method: String, params: Map<String, Any>? = null): Any {
261-
throw IllegalArgumentException("Unsupported suspend custom method:$method")
260+
open fun customRequest(method: String, params: Map<String, Any>? = null): Any {
261+
throw IllegalArgumentException("Unsupported custom method:$method")
262262
}
263263

264264
/**
265-
* 自定义的请求,参见 [Broker.customMethods]
265+
* 自定义的耗时请求,参见 [Broker.customMethods]
266266
*/
267-
open fun customRequest(method: String, params: Map<String, Any>? = null): Any {
268-
throw IllegalArgumentException("Unsupported custom method:$method")
267+
open suspend fun customSuspendRequest(method: String, params: Map<String, Any>? = null): Any {
268+
throw IllegalArgumentException("Unsupported suspend custom method:$method")
269269
}
270270

271271
override fun toString(): String {

0 commit comments

Comments
 (0)