BOC Forex Monitor
Set up a configurable Bank of China foreign-exchange monitor with per-currency thresholds and price columns.
What this skill provides
- Fetch BOC forex data from https://www.boc.cn/sourcedb/whpj/
- Track any configured currency using any price column (现汇买入价/现钞买入价/现汇卖出价/现钞卖出价/中行折算价)
- Compare current values against a rolling baseline
- Skip monitoring during quiet hours (default 23:00-09:00 Asia/Shanghai)
- Trigger on per-currency configurable thresholds:
- Rise, drop, or both directions
- Configurable threshold values (default 0.5)
- Deduplicate notifications using local state files
- Support optional OpenClaw message delivery (for example Feishu)
Files in this skill
scripts/boc_forex_check.py: fetch + parse + compare + trigger generationscripts/boc_forex_cron_runner.py: stable cron entrypoint; runs the checker, formats output, deduplicates, and optionally sends a notificationreferences/configuration.md: configuration knobs and install patterns
Setup workflow
- Read
references/configuration.md. - Create
.openclaw-state/boc-forex-monitor-config.jsonin your workspace with your desired monitoring targets. - Copy both scripts into
<workspace>/scripts/. - Make both scripts executable.
- Create or update a cron job with the OpenClaw
crontool. - Prefer a short
agentTurnpayload that only executes the runner script and returns stdout verbatim. - Verify with a manual script run before claiming success.
Cron payload pattern
Use an isolated agentTurn job. Keep the prompt minimal.
Recommended payload message:
Workdir is <workspace>. Execute:
python3 scripts/boc_forex_cron_runner.py [--notify-channel <channel>] [--notify-target <target>] [--notify-account-id <id>]
Requirements:
1) Reply with stdout only.
2) Do not add explanation.
3) If stdout is empty, reply: ❌ 汇率检查执行失败
Recommended schedule
Use this cron schedule for every 5 minutes during local daytime trading-watch hours:
{ "kind": "cron", "expr": "*/5 9-22 * * *", "tz": "Asia/Shanghai" }
Validation
Before finishing:
- Run
python3 scripts/boc_forex_cron_runner.pyfrom the target workspace. - Confirm it returns one of:
✅ 汇率检查完成⏭️ 汇率检查跳过🔔 已触发阈值并发送...
- If notifications are enabled, verify dedupe state is written to
.openclaw-state/boc-forex-alert-notify-state.json.
Safety
- Never publish private recipient ids inside the skill bundle.
- Keep notification destinations as runtime parameters or environment variables.
- Do not send routine success messages to chat channels unless the user explicitly wants them.