Files
Hermes-Skills/longbridge-cli/references/cron-wrapper-multi-token-pitfall.md
mikeandClaude 32d5d7dc0b feat(longbridge): complete 602315 bypass + CLI helper + stock_t脚本
新增:
- 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>
2026-07-09 18:19:58 +08:00

3.0 KiB

note
note
2026-07-09 session - cron script 字段限制 + CLI-path auto-exec

Cron script 字段不接受多 token 命令

问题: cronjob action=update script="proxychains4 -f /path/conf python3 /path/script.py" 不会工作——cron 把整个 string 当成单个可执行文件路径,报 Script not found: /home/openclaw/.../proxychains4 -f /path/conf python3 /path/script.py

正解: 包 shell wrapper,然后 script 指向 wrapper:

# 错误 - cron 把整行当文件路径
script: "proxychains4 -f /path/conf python3 /path/script.py"
# → Script not found

# 正确 - 包成 .sh wrapper
cat > ~/.hermes/scripts/foo_cron.sh << 'EOF'
#!/bin/bash
exec proxychains4 -f /path/conf python3 /path/script.py
EOF
chmod +x ~/.hermes/scripts/foo_cron.sh
script: "foo_cron.sh"  # 只写文件名,不带空格

Cron 嵌套变量在 bash 中展开

如果 wrapper 内部用变量嵌套:

PROXY="proxychains4 -f /path/conf"
CLI="$PROXY ~/.local/bin/longbridge ..."  # 嵌套变量

某些 bash 环境下 proxychainscan't load process....: No such file or directory,因为 $PROXY 没正确扩展。避开:

exec proxychains4 -f /path/conf ~/.local/bin/longbridge ...

永远把 proxychains4 写在命令最前面,不要用变量包它

4 个长桥交易 cron wrapper 模式 (current state 2026-07-09)

  • hk_intraday_monitor_cron.shpython3 ~/.hermes/scripts/hk_intraday_cli.py (CLI 路径,自动下单 )
  • us_intraday_monitor_cron.shpython3 ~/.hermes/scripts/us_intraday_cli.py (CLI 路径,自动下单 )
  • hk_intraday_close_cron.sh → 只读监控 + 推 QQ(没有自动平仓逻辑)
  • us_intraday_close_cron.sh → 只读监控 + 推 QQ

模板 (CLI 路径 auto-exec):

#!/bin/bash
export LONGBRIDGE_HTTP_URL=https://openapi.longbridge.com
export LONGBRIDGE_REGION=ap
export LONGBRIDGE_TRADE_ENABLED=true
export PROXYCHAINS_CONF=/home/openclaw/.proxychains/proxychains.conf  # 告诉 helper 已在 proxychains 里

proxychains4 -f ~/.proxychains/proxychains.conf \
  python3 ~/.hermes/scripts/hk_intraday_cli.py

hk_intraday_cli.py / us_intraday_cli.py 内部通过 longbridge_cli_helper.py (sys.modules fake) 替换 SDK,实际走 CLI 三件套下单。订单已实测:

  • 9988.HK 200股 @ $112.70 (订单 1259698560325140480)
  • 1810.HK 1200股 @ $25.98 (订单 1259699156675493888)

Auto-execution via CLI helper (2026-07-09 验证)

hk_intraday_cli.py / us_intraday_cli.py 不依赖 Python SDK,而是通过 longbridge_cli_helper.py 注入:

import longbridge_cli_helper as _helper
sys.modules['longport'] = type(sys)('longport')
sys.modules['longport'].openapi = _helper

之后脚本里的 from longport import openapi 实际拿到的是 helper,所有 SDK 调用走 CLI → 走 .com 海外域 → 不触发 602315。

前提: cron wrapper 必须设 PROXYCHAINS_CONF env var,让 helper 不再嵌套 proxychains(否则双重 proxychains 卡死)。