@vibek/cli 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -215
- package/config.example.toml +0 -17
- package/index.js +1 -18
- package/package.json +2 -1
- package/vibek-package.json +1 -1
- package/webui/client.js +328 -22
- package/webui/styles.css +47 -7
- package/webui-quick-start.png +0 -0
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# Vibek
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
以及浏览器中的 AI 策略工作台。npm 包安装后注册全局命令 `vibek`。
|
|
3
|
+
面向个人使用的 CTP 量化交易 CLI 与 AI 策略工作台。
|
|
5
4
|
|
|
6
5
|
## 项目状态
|
|
7
6
|
|
|
@@ -12,232 +11,77 @@ Vibek 是一个个人自用的 CTP 量化交易项目,提供后台行情与交
|
|
|
12
11
|
Vibek 可能连接真实期货账户,但不构成投资建议,也不对交易损失负责。使用者应自行评估并承担风险;
|
|
13
12
|
首次使用应先在 CTP 测试环境、Paper 模式和离线回测中完成充分验证;Live 策略必须显式加载并启动。
|
|
14
13
|
|
|
15
|
-
## 运行环境
|
|
16
|
-
|
|
17
|
-
- [Bun](https://bun.sh/) 1.4.0 或更高版本
|
|
18
|
-
- Windows x64,或 Ubuntu 24.04 x86_64
|
|
19
|
-
- 可用的 CTP 账号、行情/交易前置地址和 App ID
|
|
20
|
-
- 使用 Web 工作台时需要本机浏览器
|
|
21
|
-
|
|
22
|
-
原生 CTP gateway 不包含在 npm 包中。Vibek 会通过 `vibek gateway` 下载并校验与当前应用兼容的版本。
|
|
23
|
-
|
|
24
14
|
## 安装
|
|
25
15
|
|
|
16
|
+
需要 [Bun](https://bun.sh/) 1.4.0 或更高版本:
|
|
17
|
+
|
|
26
18
|
```bash
|
|
27
19
|
bun install -g @vibek/cli
|
|
28
20
|
vibek --version
|
|
29
21
|
```
|
|
30
22
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
## 快速开始
|
|
34
|
-
|
|
35
|
-
### 1. 生成配置
|
|
36
|
-
|
|
37
|
-
Windows PowerShell:
|
|
38
|
-
|
|
39
|
-
```powershell
|
|
40
|
-
New-Item -ItemType Directory -Force "$env:APPDATA\vibek" | Out-Null
|
|
41
|
-
vibek --default-config | Set-Content -Encoding UTF8 "$env:APPDATA\vibek\config.toml"
|
|
42
|
-
notepad "$env:APPDATA\vibek\config.toml"
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Linux:
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
mkdir -p ~/.config/vibek
|
|
49
|
-
vibek --default-config > ~/.config/vibek/config.toml
|
|
50
|
-
${EDITOR:-vi} ~/.config/vibek/config.toml
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
账号名由 `broker_id-user` 自动生成。配置只支持一个账号:
|
|
54
|
-
|
|
55
|
-
```toml
|
|
56
|
-
[account]
|
|
57
|
-
broker_id = "9999"
|
|
58
|
-
user = "account"
|
|
59
|
-
|
|
60
|
-
[account.ctp]
|
|
61
|
-
market_front = "tcp://行情前置地址:端口"
|
|
62
|
-
trader_front = "tcp://交易前置地址:端口"
|
|
63
|
-
app_id = "你的-app-id"
|
|
64
|
-
production_mode = true
|
|
65
|
-
|
|
66
|
-
[account.market]
|
|
67
|
-
record_instruments = ["IC2609.CFFEX"]
|
|
68
|
-
tick_time_mode = "realtime"
|
|
69
|
-
|
|
70
|
-
[account.trading]
|
|
71
|
-
max_order_volume = 1
|
|
72
|
-
max_position = 2
|
|
73
|
-
max_active_open_orders = 2
|
|
74
|
-
|
|
75
|
-
[account.trading.daily_limits]
|
|
76
|
-
total_order_limit = 20000
|
|
77
|
-
total_cancel_limit = 10000
|
|
78
|
-
total_trade_limit = 10000
|
|
79
|
-
instrument_order_limit = 2000
|
|
80
|
-
instrument_cancel_limit = 1000
|
|
81
|
-
instrument_trade_limit = 1000
|
|
82
|
-
|
|
83
|
-
[account.trading.duplicate_orders]
|
|
84
|
-
duplicate_order_limit = 10
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
`production_mode` 选择 CTP API 的生产/评测模式;它不决定策略使用 Paper 还是 Live。
|
|
88
|
-
SimNow 7x24 等回放行情前置需将 `tick_time_mode` 设为 `"replay"`;券商实时行情保持默认
|
|
89
|
-
`"realtime"`,以继续拒绝陈旧或明显超前的 tick。
|
|
90
|
-
换号时修改 `[account]`,然后执行 `vibek daemon restart`。
|
|
91
|
-
|
|
92
|
-
### 2. 校验配置
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
vibek config
|
|
96
|
-
vibek status
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
配置有未知字段、类型错误、账号引用错误或风控值越界时,`vibek config` 会直接指出问题。
|
|
100
|
-
|
|
101
|
-
### 3. 安装 CTP gateway
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
vibek gateway
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
该命令会安装或校验当前应用兼容的最新稳定 gateway。也可以安装明确版本或本地归档:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
vibek gateway 0.1.0
|
|
111
|
-
vibek gateway ./gateway.tar.gz
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### 4. 启动后台服务
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
vibek daemon start
|
|
118
|
-
vibek status
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
`daemon start` 会在终端中询问交易密码和 CTP 授权码。这些凭证只传给本次后台进程,
|
|
122
|
-
不会写入 `config.toml`。查看运行状态和日志:
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
vibek daemon status
|
|
126
|
-
vibek daemon logs --follow
|
|
127
|
-
vibek daemon stop
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### 5. 打开 Web 工作台
|
|
23
|
+
## 开始使用
|
|
131
24
|
|
|
132
25
|
```bash
|
|
133
26
|
vibek
|
|
134
27
|
```
|
|
135
28
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
vibek
|
|
165
|
-
vibek
|
|
166
|
-
vibek
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
vibek
|
|
179
|
-
vibek
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
vibek
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
离线回测接受 mock 或 CSV 数据,并要求明确提供合约乘数、保证金和手续费参数:
|
|
191
|
-
|
|
192
|
-
```bash
|
|
193
|
-
vibek backtest ./my-strategy.ts --help
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
Live 模式必须显式使用 `--mode live`、显式启动,并通过委托限制和持仓核对。
|
|
197
|
-
不要用尚未在 Paper 和回测中验证的策略直接连接实盘。
|
|
198
|
-
|
|
199
|
-
## 配置和数据位置
|
|
200
|
-
|
|
201
|
-
| 内容 | Windows | Linux |
|
|
202
|
-
| --- | --- | --- |
|
|
203
|
-
| 配置文件 | `%APPDATA%\vibek\config.toml` | `~/.config/vibek/config.toml` |
|
|
204
|
-
| 默认数据根 | `%USERPROFILE%\.vibek` | `~/.vibek` |
|
|
205
|
-
| 账号数据 | `<数据根>\accounts\<账号>` | `<数据根>/accounts/<账号>` |
|
|
206
|
-
|
|
207
|
-
可在配置的 `[storage]` 中修改 `data_root`。数据库、日志、策略产物和 gateway 都位于数据根目录,
|
|
208
|
-
不会写入 npm 包安装目录。
|
|
209
|
-
|
|
210
|
-
## 升级与回退
|
|
211
|
-
|
|
212
|
-
`vibek update` 将官方 npm 应用更新到 `latest` 指向的稳定版本。它不会更新 gateway,也不会停止或
|
|
213
|
-
重启正在运行的 daemon;请在维护时段显式完成后续步骤:
|
|
214
|
-
|
|
215
|
-
```bash
|
|
216
|
-
vibek update
|
|
217
|
-
vibek --version
|
|
218
|
-
vibek gateway
|
|
219
|
-
vibek daemon restart
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
实盘机器需要固定或回退版本时,不要使用 `vibek update`,而是安装明确版本,再用
|
|
223
|
-
`vibek gateway <version>` 激活对应 gateway,最后重启 daemon:
|
|
224
|
-
|
|
225
|
-
```bash
|
|
226
|
-
bun install -g @vibek/cli@0.1.0
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
## 排查问题
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
vibek config # 检查配置文件和当前账号
|
|
233
|
-
vibek gateway # 校验 gateway 安装
|
|
234
|
-
vibek front check # 检查 CTP 网络连通性
|
|
235
|
-
vibek daemon status # 检查后台进程
|
|
236
|
-
vibek daemon logs --follow # 查看运行日志
|
|
237
|
-
vibek --help # 查看全部命令
|
|
238
|
-
vibek help <command> # 查看某个命令的帮助
|
|
29
|
+
WebUI 默认打开“快速开始”,其中包含安装、配置、gateway、daemon、策略、风控和排障说明。
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
## 全部指令
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
vibek — 面向个人的 CTP 量化交易与 AI 策略工作台
|
|
37
|
+
|
|
38
|
+
用法:
|
|
39
|
+
vibek [options]
|
|
40
|
+
vibek config
|
|
41
|
+
vibek web [options]
|
|
42
|
+
vibek status
|
|
43
|
+
vibek risk [options]
|
|
44
|
+
vibek update
|
|
45
|
+
vibek gateway [source]
|
|
46
|
+
vibek positions
|
|
47
|
+
vibek backtest <file> [options]
|
|
48
|
+
vibek account
|
|
49
|
+
vibek daemon [command]
|
|
50
|
+
vibek strategy [command]
|
|
51
|
+
vibek front [command]
|
|
52
|
+
vibek contract <vt-symbol>
|
|
53
|
+
vibek orders [options]
|
|
54
|
+
vibek trades [options]
|
|
55
|
+
|
|
56
|
+
命令:
|
|
57
|
+
vibek 默认启动 Web 工作台
|
|
58
|
+
vibek config 显示并校验 config.toml
|
|
59
|
+
vibek web [options] 启动 AI 策略 Web 工作台
|
|
60
|
+
vibek status 显示账号和系统运行概况
|
|
61
|
+
vibek risk [options] 显示每日风险统计
|
|
62
|
+
vibek update 更新 Vibek 应用到最新稳定版
|
|
63
|
+
vibek gateway [source] 安装或更新 CTP gateway
|
|
64
|
+
vibek positions 查询实时持仓
|
|
65
|
+
vibek backtest <file> [options] 离线回测策略
|
|
66
|
+
vibek account 查询柜台资金
|
|
67
|
+
vibek daemon [command] 管理后台 daemon
|
|
68
|
+
vibek strategy [command] 部署和控制策略实例
|
|
69
|
+
vibek front [command] 检测和切换 CTP 前置
|
|
70
|
+
vibek contract <vt-symbol> 查询合约规格和当前账户手续费率
|
|
71
|
+
vibek orders [options] 查询当前交易日委托
|
|
72
|
+
vibek trades [options] 查询当前交易日成交
|
|
73
|
+
|
|
74
|
+
选项:
|
|
75
|
+
--json 输出稳定 JSON
|
|
76
|
+
--default-config 输出完整默认配置模板
|
|
77
|
+
-V, --version 显示版本
|
|
78
|
+
-h, --help 显示帮助
|
|
79
|
+
|
|
80
|
+
配置:vibek config
|
|
81
|
+
数据:storage.data_root(默认 ~/.vibek)
|
|
82
|
+
帮助:vibek help <command>
|
|
239
83
|
```
|
|
240
84
|
|
|
241
85
|
## License
|
|
242
86
|
|
|
243
|
-
|
|
87
|
+
MIT License, Copyright (c) 2026 Vibek contributors.
|
package/config.example.toml
CHANGED
|
@@ -19,26 +19,11 @@ tick_time_mode = "realtime"
|
|
|
19
19
|
max_future_tick_ms = 5000
|
|
20
20
|
|
|
21
21
|
[account.trading]
|
|
22
|
-
# 单次策略发单请求允许的最大手数,开仓和平仓都受此限制(整数 1..10000)。
|
|
23
|
-
# 超过上限时整笔拒绝,不会自动拆成多笔;应结合合约流动性、盘口深度、
|
|
24
|
-
# 账户资金和策略正常单笔手数设置,用来拦截参数异常造成的大单。
|
|
25
22
|
max_order_volume = 10
|
|
26
|
-
|
|
27
|
-
# 单个策略、单个方向允许的最大预计持仓手数(整数 1..100000)。
|
|
28
|
-
# 预计持仓 = 该方向今仓 + 昨仓 + 活动开仓委托剩余量 + 本次开仓量;多空分别计算。
|
|
29
|
-
# 该值不是账户级总仓位,也不按合约乘数或保证金折算;应按每个合约的实际敞口
|
|
30
|
-
# 选择可承受的手数。平仓不受此上限限制。
|
|
31
23
|
max_position = 20
|
|
32
|
-
|
|
33
|
-
# 单个策略允许同时存在的活动开仓物理委托笔数(整数 1..1000)。
|
|
34
|
-
# 提交中、未成交、部分成交均占一笔,与每笔手数无关;全部成交、撤单或拒单后释放。
|
|
35
|
-
# 达到上限后只拒绝新开仓,合法平仓仍然允许;应按策略正常并发挂单数设置,
|
|
36
|
-
# 给撤单确认延迟留出余量,同时避免故障策略在盘口堆积大量开仓单。
|
|
37
24
|
max_active_open_orders = 5
|
|
38
25
|
|
|
39
26
|
[account.trading.daily_limits]
|
|
40
|
-
# 当前 CTP TradingDay 内的计数上限。所有策略合并统计,但 Paper 与 Live 相互隔离。
|
|
41
|
-
# 达到任一上限后只拒绝新的开仓请求;合法平仓和撤单始终允许并继续计数。
|
|
42
27
|
total_order_limit = 20000
|
|
43
28
|
total_cancel_limit = 10000
|
|
44
29
|
total_trade_limit = 10000
|
|
@@ -47,8 +32,6 @@ instrument_cancel_limit = 1000
|
|
|
47
32
|
instrument_trade_limit = 1000
|
|
48
33
|
|
|
49
34
|
[account.trading.duplicate_orders]
|
|
50
|
-
# 相同合约、方向、开平、取整后价格和手数的开仓请求按 TradingDay 累计。
|
|
51
|
-
# 前 9 次允许,第 10 次及之后拒绝;策略 ID 不参与区分。
|
|
52
35
|
duplicate_order_limit = 10
|
|
53
36
|
|
|
54
37
|
[account.schedule]
|