新增: - references/cli-unicode-table-parsing.md - CLI 表格 ┃ vs │ Unicode 解析 - references/cron-wrapper-multi-token-pitfall.md - cron script 字段不支持空格 - references/generic-stock-query.md - 通用 stock_t.py 持仓查询 - references/longportapp-cn-endpoints.md - Python SDK 走 longportapp.cn vs CLI 走 longbridge.com - references/sdk-vs-cli-domain-routing.md - SDK/CLI 域名路由差异 - scripts/longbridge_cli_helper.py - SDK 兼容层, 内部走 CLI (绕 602315) - scripts/stock_t.py - 通用持仓查询脚本 (不限定股票) 修改: - longbridge-cli/SKILL.md + references/longbridge-602315-bypass.md - longbridge-python-sdk/SKILL.md: 增 cn endpoint 说明 - intraday-trading/SKILL.md 关键发现: 1. Python SDK 用 openapi.longportapp.cn (阿里云深圳), CLI 用 openapi.longbridge.com (AWS 香港) 2. 两个不同域名, 不同 endpoint, 都需 LONGBRIDGE_HTTP_URL=https://openapi.longbridge.com 强制覆盖 3. CLI 默认不读 HTTP_PROXY env, 必须用 proxychains4 OS 层拦截 4. 完整链路: LONGBRIDGE_HTTP_URL=.com + LONGBRIDGE_REGION=ap + proxychains4 + Clash 香港节点 5. Yahoo Finance 备用数据源 (CLI 拿不到 K线) 6. CLI 表格用 ┃ (header) 和 │ (data) 两种 Unicode 字符, parser 要兼容 订单实测: - RGTI.US 1股@15.40: 下单 1259694819492519936, 撤单成功 - 9988.HK 200股@112.70: Rejected (余额或限额) - 1810.HK 1200股@25.98: Rejected (同上) Co-Authored-By: Claude <noreply@anthropic.com>
2.4 KiB
2.4 KiB
note
| note |
|---|
| 2026-07-09 session - helper script for SDK-shaped access to longbridge CLI |
CLI Unicode 表格解析陷阱
问题: Longbridge CLI 的表格输出中,header 用的竖线和 data 行的竖线是不同字符:
- Header 边框:
┃(U+2503, BOX DRAWINGS DOUBLE VERTICAL) - Data 边框:
│(U+2502, BOX DRAWINGS LIGHT VERTICAL)
直接用 line.split('┃') 解析 → header 解析正常,data 行解析为空(因为 data 行没有 ┃ 只有 │)。
正解: 用 re.split('[┃│]', line) 同时处理两个字符。
import re
def split_row(line):
cells = re.split('[┃│]', line)
return [c.strip() for c in cells if c.strip()]
持仓表名换行问题
股票名称(长名称如 "Unitedhealth" / "Semicon Bear 3X")会在表格里换行,导致 parser 拿到空数据行。需要在 stock_positions() 里过滤空持仓:
- 跳过
标的为空 或持仓不是数字的行 - 避免
Position("Unitedhealth", 0, 0.0, 0)这种空对象
Buy_power 缺失
CLI balance 输出没有 buy_power 字段(只有 现金余额/净资产/最大融资额/剩余融资额/风险等级)。需要推算:
buy_power = cash + remaining_finance_amount
SDK 的 AccountBalance.buy_power 是实际可买入金额 = 现金 + 剩余融资额。total_cash 字段也对应现金余额。
Cancel 交互确认
longbridge cancel <id> 没有 -y 标志(longbridge cancel --help 显示没有此选项),交互式问 确认撤销订单 XXX? [y/N]。
绕开: echo 'y' | longbridge cancel <id> 或 expect 'y\n'。
Buy/sell 有 -y,但 cancel 没有。
参考实现
scripts/longbridge_cli_helper.py 提供 SDK 兼容接口:
account_balance()→[AccountBalance]stock_positions()→Channelssubmit_order(symbol, order_type, side, qty, time_in_force, price)→OrderResultcancel_order(order_id)→ None- enums:
OrderType.LO/MO,OrderSide.Buy/Sell,TimeInForceType.Day/GoodTilCanceled
每个函数都内部走:
proxychains4 -f ~/.proxychains/proxychains.conf \
~/.local/bin/longbridge --profile lb_real <cmd>
外加强制 env:
env['LONGBRIDGE_HTTP_URL'] = 'https://openapi.longbridge.com' # 走 .com 海外域
env['LONGBRIDGE_REGION'] = 'ap' # 绕过 is_cn 探测
env['LONGBRIDGE_TRADE_ENABLED'] = 'true' # 解除只读模式