@vibek/cli 0.1.1 → 0.1.3

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 CHANGED
@@ -1,10 +1,16 @@
1
- # Vibek CLI 用户指南
1
+ # Vibek
2
2
 
3
- Vibek 是一个面向个人的 CTP 量化交易工具,提供后台行情与交易服务、策略管理、离线回测,
3
+ Vibek 是一个个人自用的 CTP 量化交易项目,提供后台行情与交易服务、策略管理、离线回测,
4
4
  以及浏览器中的 AI 策略工作台。npm 包安装后注册全局命令 `vibek`。
5
5
 
6
- > Vibek 会连接真实期货账户。首次使用请保持 `live_enabled = false`,先完成配置校验、
7
- > Paper 模式运行和风险参数检查,再考虑启用实盘。
6
+ ## 项目状态
7
+
8
+ **本项目正在开发和测试中,尚未作为稳定产品发布。** 功能、命令、配置和数据格式可能继续调整,
9
+ 不承诺向后兼容性、持续可用性或交易数据的完整与正确。该 npm 包主要用于个人环境中的开发、研究和验证,
10
+ 不建议直接用于他人的生产或实盘交易环境。
11
+
12
+ Vibek 可能连接真实期货账户,但不构成投资建议,也不对交易损失负责。使用者应自行评估并承担风险;
13
+ 首次使用应先在 CTP 测试环境、Paper 模式和离线回测中完成充分验证;Live 策略必须显式加载并启动。
8
14
 
9
15
  ## 运行环境
10
16
 
@@ -44,32 +50,29 @@ vibek --default-config > ~/.config/vibek/config.toml
44
50
  ${EDITOR:-vi} ~/.config/vibek/config.toml
45
51
  ```
46
52
 
47
- 填写账号时,账号表名必须是 `<broker_id>-<user>`。下面是一份最小起步配置:
53
+ 账号名由 `broker_id-user` 自动生成,不需要手工重复填写。下面是一份单账号最小起步配置:
48
54
 
49
55
  ```toml
50
- version = 1
51
- active_account = "9999-account"
52
-
53
- [accounts."9999-account".identity]
56
+ [[accounts]]
54
57
  broker_id = "9999"
55
58
  user = "account"
56
59
 
57
- [accounts."9999-account".ctp]
60
+ [accounts.ctp]
58
61
  market_front = "tcp://行情前置地址:端口"
59
62
  trader_front = "tcp://交易前置地址:端口"
60
63
  app_id = "你的-app-id"
61
64
  production_mode = true
62
65
 
63
- [accounts."9999-account".trading]
64
- live_enabled = false
66
+ [accounts.trading]
65
67
  max_order_volume = 1
66
68
  max_position = 2
67
69
  max_active_orders = 2
68
70
  allow_short = true
69
71
  ```
70
72
 
71
- `production_mode` 选择 CTP API 的生产/评测模式;它不等于允许实盘交易。
72
- `live_enabled` 是独立的实盘总闸,默认应保持关闭。
73
+ `production_mode` 选择 CTP API 的生产/评测模式;它不决定策略使用 Paper 还是 Live。
74
+ 只有一个 `[[accounts]]` 时会自动选中;配置多个账号时才需要在文件顶部填写
75
+ `active_account = "<broker_id>-<user>"`。
73
76
 
74
77
  ### 2. 校验配置
75
78
 
@@ -170,7 +173,7 @@ vibek strategy unload <策略实例ID>
170
173
  vibek backtest ./my-strategy.ts --help
171
174
  ```
172
175
 
173
- Live 模式必须显式使用 `--mode live`,并同时通过账号配置中的 `live_enabled`、委托限制和持仓核对。
176
+ Live 模式必须显式使用 `--mode live`、显式启动,并通过委托限制和持仓核对。
174
177
  不要用尚未在 Paper 和回测中验证的策略直接连接实盘。
175
178
 
176
179
  ## 配置和数据位置
@@ -186,16 +189,22 @@ Live 模式必须显式使用 `--mode live`,并同时通过账号配置中的
186
189
 
187
190
  ## 升级与回退
188
191
 
189
- 实盘机器建议安装明确版本,不要自动跟随 `latest`:
192
+ `vibek update` 将官方 npm 应用更新到 `latest` 指向的稳定版本。它不会更新 gateway,也不会停止或
193
+ 重启正在运行的 daemon;请在维护时段显式完成后续步骤:
190
194
 
191
195
  ```bash
192
- bun install -g @vibek/cli@0.1.0
196
+ vibek update
193
197
  vibek --version
194
198
  vibek gateway
195
199
  vibek daemon restart
196
200
  ```
197
201
 
198
- 回退时安装旧的 npm 版本,再用 `vibek gateway <version>` 激活对应 gateway,最后重启 daemon。
202
+ 实盘机器需要固定或回退版本时,不要使用 `vibek update`,而是安装明确版本,再用
203
+ `vibek gateway <version>` 激活对应 gateway,最后重启 daemon:
204
+
205
+ ```bash
206
+ bun install -g @vibek/cli@0.1.0
207
+ ```
199
208
 
200
209
  ## 排查问题
201
210
 
@@ -1,58 +1,91 @@
1
- # Vibek configuration
2
- # 复制到平台配置目录,或运行 `vibek --default-config` 输出同等模板。
3
- # 修改后运行 `vibek config` 校验;daemon 配置重启后生效。
4
- version = 1
1
+ # Vibek 配置模板
2
+ # 默认路径: Linux/macOS ~/.config/vibek/config.toml; Windows %APPDATA%\vibek\config.toml
3
+ # # 的字段当前未启用;保留注释即使用程序默认值。
4
+ # 修改后运行 vibek config 校验;daemon 相关修改需重启后生效。
5
+ # 交易密码和 CTP 授权码不要写入本文件;vibek daemon start/restart 会在终端询问。
5
6
 
7
+ # 当前账号: 单账号自动选中;多账号时取消下一行注释,值为 broker_id-user。
6
8
  # active_account = "9999-account"
7
9
 
10
+ # 本机数据根目录,保存 gateway、账号数据库、日志、策略状态和 AI 设置。
8
11
  [storage]
9
12
  # data_root = "~/.vibek"
10
13
 
14
+ # 本机服务端口。两个端口必须不同,服务仅监听本机。
11
15
  [server]
16
+ # daemon 控制 API 和行情 WebSocket 端口。
12
17
  # daemon_port = 3111
18
+ # Web 工作台端口。
13
19
  # webui_port = 3211
14
20
 
21
+ # 网络代理。目前只用于 Telegram 通知,不影响 CTP 行情和交易连接。
15
22
  [network]
16
23
  # telegram_proxy = "http://127.0.0.1:7890"
17
24
 
18
- # [accounts."9999-account".identity]
25
+ # 账号身份与 CTP 连接。使用 daemon 时必须取消以下必填行的注释并填写。
26
+ # broker_id 和 user 组合为账号名 broker_id-user;添加账号时复制整组账号及其子表。
27
+ # [[accounts]]
28
+ # 期货公司提供的 CTP BrokerID,不是期货公司中文名称。
19
29
  # broker_id = "9999"
30
+ # CTP 用户号/投资者代码,通常是期货资金账号。
20
31
  # user = "account"
21
32
 
22
- # [accounts."9999-account".ctp]
33
+ # [accounts.ctp]
34
+ # 期货公司提供的行情和交易前置,格式必须是 tcp://主机:端口。
23
35
  # market_front = "tcp://host:port"
24
36
  # trader_front = "tcp://host:port"
37
+ # 可选线路,格式为 描述@IP;供 vibek front test/use 测速和切换,端口沿用上方地址。
25
38
  # front_candidates = ["主线@1.2.3.4", "备用@1.2.3.5"]
39
+ # 期货公司为该 CTP 客户端分配的 AppID,不能自行编造。
26
40
  # app_id = "client-id"
41
+ # 可选,默认 true;按期货公司资料选择 CTP 生产/评测模式,不决定策略使用 Paper 还是 Live。
27
42
  # production_mode = true
28
43
 
29
- # [accounts."9999-account".logging]
30
- # level = "info" # trace | debug | info | warn | error
44
+ # 可选日志级别: trace | debug | info | warn | error。
45
+ # 未设置时,CTP 生产模式默认 info,评测模式默认 debug
46
+ # [accounts.logging]
47
+ # level = "info"
31
48
 
32
- # [accounts."9999-account".market]
49
+ # 可选行情存储与固定录制合约。
50
+ # [accounts.market]
51
+ # 留空使用账号默认数据库: <data-root>/accounts/<account>/vibek_bars.db。
33
52
  # db_path = ""
53
+ # 合约格式必须是 CODE.EXCHANGE;这里的合约会由 daemon 持续订阅并记录 1 分钟 K 线。
34
54
  # record_instruments = ["NI2609.SHFE", "IF2609.CFFEX"]
55
+ # 丢弃时间戳比本机时间超前超过该毫秒数的行情。
35
56
  # max_future_tick_ms = 5000
36
57
 
37
- # [accounts."9999-account".trading]
38
- # live_enabled = false
58
+ # Live 策略硬风控。mode=live 且显式启动后,委托仍必须通过以下限制。
59
+ # [accounts.trading]
60
+ # 单笔委托最大手数。
39
61
  # max_order_volume = 10
62
+ # 单个策略、单个方向的预计持仓上限,包含未成交开仓委托。
40
63
  # max_position = 20
64
+ # 单个策略允许同时存在的活动委托数。
41
65
  # max_active_orders = 5
66
+ # 是否允许开空仓;false 时仍允许平已有空仓。
42
67
  # allow_short = true
43
68
 
44
- # [accounts."9999-account".schedule]
69
+ # 北京时间交易窗口调度。启用后,daemon 按窗口自动连接、启停策略、撤单和断开。
70
+ # [accounts.schedule]
45
71
  # enabled = true
72
+ # 日盘和夜盘窗口的启动/停止锚点,格式为 HH:MM。
46
73
  # day_start = "08:45"
47
74
  # day_stop = "15:15"
48
75
  # night_start = "20:45"
49
76
  # night_stop = "02:35"
77
+ # 单个窗口最多启动尝试次数,以及首次重试等待毫秒数(后续指数退避)。
50
78
  # max_start_attempts = 4
51
79
  # retry_base_ms = 30000
80
+ # 调度器检查窗口状态的间隔毫秒数。
52
81
  # tick_ms = 30000
53
82
 
54
- # [accounts."9999-account".notifications]
83
+ # 可选通知。密钥会以明文保存在本文件中,不要提交到 Git 或放入共享目录。
84
+ # [accounts.notifications]
85
+ # 接收信号、调度和故障通知的 Bark key。
55
86
  # bark_key = ""
87
+ # 仅额外接收交易信号的 Bark key 列表。
56
88
  # bark_signal_keys = []
89
+ # Telegram 通知需同时填写 bot token 和 chat ID。
57
90
  # telegram_bot_token = ""
58
91
  # telegram_chat_id = ""