@vibek/cli 0.1.0

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/.env.example ADDED
@@ -0,0 +1,9 @@
1
+ # Vibek 的持久配置位于平台配置目录中的 config.toml:
2
+ # Linux/macOS: ~/.config/vibek/config.toml
3
+ # Windows: %APPDATA%\vibek\config.toml
4
+ #
5
+ # 仅在需要使用另一份配置文件(例如隔离的开发实例)时设置:
6
+ # VIBEK_CONFIG_PATH=D:/path/to/config.toml
7
+ #
8
+ # VIBEK_PASS 与 VIBEK_AUTH_CODE 由 `vibek daemon start/restart` 每次交互输入,
9
+ # 不要写入 .env 或 config.toml。其他 VIBEK_* 变量仅供内部测试和子进程使用。
package/README.md ADDED
@@ -0,0 +1,210 @@
1
+ # Vibek CLI 用户指南
2
+
3
+ Vibek 是一个面向个人的 CTP 量化交易工具,提供后台行情与交易服务、策略管理、离线回测,
4
+ 以及浏览器中的 AI 策略工作台。npm 包安装后注册全局命令 `vibek`。
5
+
6
+ > Vibek 会连接真实期货账户。首次使用请保持 `live_enabled = false`,先完成配置校验、
7
+ > Paper 模式运行和风险参数检查,再考虑启用实盘。
8
+
9
+ ## 运行环境
10
+
11
+ - [Bun](https://bun.sh/) 1.4.0 或更高版本
12
+ - Windows x64,或 Ubuntu 24.04 x86_64
13
+ - 可用的 CTP 账号、行情/交易前置地址和 App ID
14
+ - 使用 Web 工作台时需要本机浏览器
15
+
16
+ 原生 CTP gateway 不包含在 npm 包中。Vibek 会通过 `vibek gateway` 下载并校验与当前应用兼容的版本。
17
+
18
+ ## 安装
19
+
20
+ ```bash
21
+ bun install -g @vibek/cli
22
+ vibek --version
23
+ ```
24
+
25
+ 如果终端找不到 `vibek`,请确认 Bun 的全局 bin 目录 `~/.bun/bin` 已加入 `PATH`。
26
+
27
+ ## 快速开始
28
+
29
+ ### 1. 生成配置
30
+
31
+ Windows PowerShell:
32
+
33
+ ```powershell
34
+ New-Item -ItemType Directory -Force "$env:APPDATA\vibek" | Out-Null
35
+ vibek --default-config | Set-Content -Encoding UTF8 "$env:APPDATA\vibek\config.toml"
36
+ notepad "$env:APPDATA\vibek\config.toml"
37
+ ```
38
+
39
+ Linux:
40
+
41
+ ```bash
42
+ mkdir -p ~/.config/vibek
43
+ vibek --default-config > ~/.config/vibek/config.toml
44
+ ${EDITOR:-vi} ~/.config/vibek/config.toml
45
+ ```
46
+
47
+ 填写账号时,账号表名必须是 `<broker_id>-<user>`。下面是一份最小起步配置:
48
+
49
+ ```toml
50
+ version = 1
51
+ active_account = "9999-account"
52
+
53
+ [accounts."9999-account".identity]
54
+ broker_id = "9999"
55
+ user = "account"
56
+
57
+ [accounts."9999-account".ctp]
58
+ market_front = "tcp://行情前置地址:端口"
59
+ trader_front = "tcp://交易前置地址:端口"
60
+ app_id = "你的-app-id"
61
+ production_mode = true
62
+
63
+ [accounts."9999-account".trading]
64
+ live_enabled = false
65
+ max_order_volume = 1
66
+ max_position = 2
67
+ max_active_orders = 2
68
+ allow_short = true
69
+ ```
70
+
71
+ `production_mode` 选择 CTP API 的生产/评测模式;它不等于允许实盘交易。
72
+ `live_enabled` 是独立的实盘总闸,默认应保持关闭。
73
+
74
+ ### 2. 校验配置
75
+
76
+ ```bash
77
+ vibek config
78
+ vibek account current
79
+ ```
80
+
81
+ 配置有未知字段、类型错误、账号引用错误或风控值越界时,`vibek config` 会直接指出问题。
82
+
83
+ ### 3. 安装 CTP gateway
84
+
85
+ ```bash
86
+ vibek gateway
87
+ ```
88
+
89
+ 该命令会安装或校验当前应用兼容的最新稳定 gateway。也可以安装明确版本或本地归档:
90
+
91
+ ```bash
92
+ vibek gateway 0.1.0
93
+ vibek gateway ./gateway.tar.gz
94
+ ```
95
+
96
+ ### 4. 启动后台服务
97
+
98
+ ```bash
99
+ vibek daemon start
100
+ vibek status
101
+ ```
102
+
103
+ `daemon start` 会在终端中询问交易密码和 CTP 授权码。这些凭证只传给本次后台进程,
104
+ 不会写入 `config.toml`。查看运行状态和日志:
105
+
106
+ ```bash
107
+ vibek daemon status
108
+ vibek daemon logs --follow
109
+ vibek daemon stop
110
+ ```
111
+
112
+ ### 5. 打开 Web 工作台
113
+
114
+ ```bash
115
+ vibek
116
+ ```
117
+
118
+ 无参数运行等价于 `vibek web`。命令会启动本机 Web 工作台并打印浏览器地址;默认端口为 `3211`:
119
+
120
+ ```bash
121
+ vibek web --port 3211
122
+ ```
123
+
124
+ Web 工作台本身不会自动启动交易 daemon。需要行情、账户或策略运行能力时,请先执行
125
+ `vibek daemon start`。
126
+
127
+ ## 常用命令
128
+
129
+ | 命令 | 用途 |
130
+ | --- | --- |
131
+ | `vibek status` | 汇总账号、daemon、行情、交易连接和策略状态 |
132
+ | `vibek account list` | 列出本机配置的账号 |
133
+ | `vibek account use <名称>` | 切换当前账号 |
134
+ | `vibek account show` | 查询当前柜台资金 |
135
+ | `vibek positions` | 查询实时持仓 |
136
+ | `vibek orders` | 查询当前交易日委托 |
137
+ | `vibek trades` | 查询当前交易日成交 |
138
+ | `vibek contract <合约>` | 查询合约规格和当前账户手续费率 |
139
+ | `vibek front test` | 测试候选 CTP 前置并按稳定性、延迟排名 |
140
+ | `vibek front check` | 检查当前行情和交易前置 |
141
+ | `vibek daemon restart` | 重新输入凭证并重启后台服务 |
142
+
143
+ 查询命令默认输出终端表格。需要脚本消费时可添加全局 `--json`:
144
+
145
+ ```bash
146
+ vibek positions --json
147
+ vibek --json status
148
+ ```
149
+
150
+ ## 策略与回测
151
+
152
+ 先在 Paper 模式加载策略:
153
+
154
+ ```bash
155
+ vibek strategy load ./my-strategy.ts --mode paper
156
+ vibek strategy list
157
+ vibek strategy start <策略实例ID>
158
+ ```
159
+
160
+ 停止或卸载策略:
161
+
162
+ ```bash
163
+ vibek strategy stop <策略实例ID>
164
+ vibek strategy unload <策略实例ID>
165
+ ```
166
+
167
+ 离线回测接受 mock 或 CSV 数据,并要求明确提供合约乘数、保证金和手续费参数:
168
+
169
+ ```bash
170
+ vibek backtest ./my-strategy.ts --help
171
+ ```
172
+
173
+ Live 模式必须显式使用 `--mode live`,并同时通过账号配置中的 `live_enabled`、委托限制和持仓核对。
174
+ 不要用尚未在 Paper 和回测中验证的策略直接连接实盘。
175
+
176
+ ## 配置和数据位置
177
+
178
+ | 内容 | Windows | Linux |
179
+ | --- | --- | --- |
180
+ | 配置文件 | `%APPDATA%\vibek\config.toml` | `~/.config/vibek/config.toml` |
181
+ | 默认数据根 | `%USERPROFILE%\.vibek` | `~/.vibek` |
182
+ | 账号数据 | `<数据根>\accounts\<账号>` | `<数据根>/accounts/<账号>` |
183
+
184
+ 可在配置的 `[storage]` 中修改 `data_root`。数据库、日志、策略产物和 gateway 都位于数据根目录,
185
+ 不会写入 npm 包安装目录。
186
+
187
+ ## 升级与回退
188
+
189
+ 实盘机器建议安装明确版本,不要自动跟随 `latest`:
190
+
191
+ ```bash
192
+ bun install -g @vibek/cli@0.1.0
193
+ vibek --version
194
+ vibek gateway
195
+ vibek daemon restart
196
+ ```
197
+
198
+ 回退时安装旧的 npm 版本,再用 `vibek gateway <version>` 激活对应 gateway,最后重启 daemon。
199
+
200
+ ## 排查问题
201
+
202
+ ```bash
203
+ vibek config # 检查配置文件和当前账号
204
+ vibek gateway # 校验 gateway 安装
205
+ vibek front check # 检查 CTP 网络连通性
206
+ vibek daemon status # 检查后台进程
207
+ vibek daemon logs --follow # 查看运行日志
208
+ vibek --help # 查看全部命令
209
+ vibek help <command> # 查看某个命令的帮助
210
+ ```
@@ -0,0 +1,58 @@
1
+ # Vibek configuration
2
+ # 复制到平台配置目录,或运行 `vibek --default-config` 输出同等模板。
3
+ # 修改后运行 `vibek config` 校验;daemon 配置重启后生效。
4
+ version = 1
5
+
6
+ # active_account = "9999-account"
7
+
8
+ [storage]
9
+ # data_root = "~/.vibek"
10
+
11
+ [server]
12
+ # daemon_port = 3111
13
+ # webui_port = 3211
14
+
15
+ [network]
16
+ # telegram_proxy = "http://127.0.0.1:7890"
17
+
18
+ # [accounts."9999-account".identity]
19
+ # broker_id = "9999"
20
+ # user = "account"
21
+
22
+ # [accounts."9999-account".ctp]
23
+ # market_front = "tcp://host:port"
24
+ # trader_front = "tcp://host:port"
25
+ # front_candidates = ["主线@1.2.3.4", "备用@1.2.3.5"]
26
+ # app_id = "client-id"
27
+ # production_mode = true
28
+
29
+ # [accounts."9999-account".logging]
30
+ # level = "info" # trace | debug | info | warn | error
31
+
32
+ # [accounts."9999-account".market]
33
+ # db_path = ""
34
+ # record_instruments = ["NI2609.SHFE", "IF2609.CFFEX"]
35
+ # max_future_tick_ms = 5000
36
+
37
+ # [accounts."9999-account".trading]
38
+ # live_enabled = false
39
+ # max_order_volume = 10
40
+ # max_position = 20
41
+ # max_active_orders = 5
42
+ # allow_short = true
43
+
44
+ # [accounts."9999-account".schedule]
45
+ # enabled = true
46
+ # day_start = "08:45"
47
+ # day_stop = "15:15"
48
+ # night_start = "20:45"
49
+ # night_stop = "02:35"
50
+ # max_start_attempts = 4
51
+ # retry_base_ms = 30000
52
+ # tick_ms = 30000
53
+
54
+ # [accounts."9999-account".notifications]
55
+ # bark_key = ""
56
+ # bark_signal_keys = []
57
+ # telegram_bot_token = ""
58
+ # telegram_chat_id = ""