安装与下载
1 ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install iran-finance-markets-monitor
2 手动安装
将技能文件夹复制到以下位置之一
~/.openclaw/skills/
{'/skills/'}
优先级:工作区 › 全局 › 内置
3 提示词安装
将此提示词复制到 Openclaw 即可自动安装。
请帮我使用 Clawhub 安装 skill-iran-finance-markets-monitor。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
基本信息
iran-finance-markets-monitor
安装指南
- ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install iran-finance-markets-monitor - 手动安装
将技能文件夹复制到以下位置之一
全局模式
~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置 - 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 iran-finance-markets-monitor。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
下载技能 (.zip)
什么是
伊朗金融市场监测器是一个 Openclaw Skills 工作流,用于收集伊朗外汇、黄金、硬币和加密货币市场的快照。数据可用时,它可以涵盖 USD/IRR 或 USD/Toman、EUR、AED、18K 黄金、Emami 硬币、Nima、USDT/Toman、精选加密资产以及 Fear & Greed。
此技能优先考虑数据来源可追溯性和完整性,而非覆盖面:每个已填充的数值都必须有来源,缺失值保持为 null,并且会报告来源故障,同时保留来自独立来源的数据。它提供中立的市场背景信息,而非投资建议、预测或交易信号。
应用场景
准备伊朗外汇、黄金、硬币和加密货币市场的最新快照。
创建包含伊朗历日期和德黑兰制作时间的波斯语市场报告。
比较 Nobitex、Wallex 和 Bitpin 等交易所提供的 USDT/Toman 报价。
检查收集到的价格是否存在本地化数字解析、新鲜度、合理范围和对账问题。
当某个来源不可用时生成部分结果,并清楚记录其故障。
运行离线测试,或在其他集成中使用解析和验证辅助函数,但不得声称已获取实时价格。
工作原理
确认所需的时间范围、市场范围、货币单位和报告语言。如果未指定,则使用最新可用快照和波斯语。
在更改来源选择器或解读 TGJU 表格之前,先查阅 references/market-data-sources.md。
使用随附的监测器收集可用的市场数据,并将每个来源独立处理,以免一个来源故障导致其他来源的成功结果被丢弃。
规范化波斯数字和阿拉伯数字,谨慎解析数值,并在适当时仅将里亚尔转换为托曼一次。
检查数值范围、数据新鲜度、来源响应和交易所报价对账情况。被拒绝或不可用的数值保持为 null,并记录错误或警告。
使用 templates/market-report-fa.txt 生成报告,将缺失值显示为 —,并附上有用的来源或故障说明。
简要、中立地总结市场走势、离散程度和数据质量,不提供买入或卖出建议。
配置指南
在仓库根目录安装随附的依赖项,然后运行监测器以检查输出或保存带日期的 JSON 文件。运行测试套件以检查可用的辅助函数和集成。
python3 -m pip install -r skills/iran-finance-markets-monitor/requirements.txt
python3 skills/iran-finance-markets-monitor/scripts/iran_market_watcher.py --stdout-only
python3 skills/iran-finance-markets-monitor/scripts/iran_market_watcher.py --output-dir ./data/market
python3 -m pytest skills/iran-finance-markets-monitor/tests -q
对于受限或离线环境,仅使用测试和纯辅助函数。如果无法访问网络或缺少必需依赖项,请勿声称已收集实时价格。如果缺少 jdatetime,请安装随附的依赖项;不得近似推算伊朗历日期。
数据架构
监测器会输出一个 JSON 快照,其结构如下:
字段 内容
schema_version 输出架构标识符。
date_gregorian, date_jalali 公历和伊朗历日期。
timestamp_tehran 使用 Asia/Tehran IANA 时区的 ISO-8601 时间戳。
status 未记录错误时为 ok;否则为 partial。
crypto 可用时包含 BTC、ETH、USDT/Toman、精选山寨币、Fear & Greed 和总市值。
iran_fx_gold 伊朗自由市场 USD、EUR、AED、18K 黄金、Emami 硬币和 Nima 占位值。
news 最多三条附来源链接的内容;仅当 TGJU 新闻为空时才以 RSS 作为备用来源。
errors 包含故障来源、类型和详情的结构化记录。
warnings 非致命的缺失项或数据质量说明。
每个已填充的数值字段都必须包含来源标识符。缺失或被拒绝的数值保持为 null,来源单位会保留在溯源信息中。TGJU 数值通常以里亚尔为单位;只有明确除以 10 后才能以托曼显示。监测器脚本为 scripts/iran_market_watcher.py,其中包含可复用的辅助函数,例如 normalize_digits、parse_number、rial_to_toman、validate_range、validate_freshness 和 parse_table_row。波斯语报告模板为 templates/market-report-fa.txt;带日期的 JSON 文件可写入所选输出目录。
高级特性
独立收集各来源的数据;即使加密货币数据收集失败,也会保留成功获取的外汇或黄金数据,反之亦然。
支持波斯数字和阿拉伯数字规范化,以及谨慎的本地化数字解析。
应用宽泛的合理性范围和新鲜度检查;除非明确请求历史数据,否则 TGJU 日期必须是当天至两天前。
验证 USDT 交易所报价,包括有效的买入价和卖出价、价差不超过 0.5%,以及跨交易所离散度不超过 0.5%。
检查 CoinGecko 和 Fear & Greed 响应是否具有成功的 HTTP 状态码以及基本数值合理性。
对速率限制或超时进行有限次数的重试,随后保留部分输出并记录故障。
提供纯解析和验证辅助函数,供测试和集成使用,包括离线工作流。
生成了解来源的波斯语报告,将 null 值显示为 —,并附上带日期的标题和数据质量说明。
name: iran-finance-markets-monitor description: "Use whenever a user asks to monitor, collect, validate, compare, summarize, or report Iranian financial markets, including USD/IRR or USD/Toman, EUR, AED, gold, Emami coin, Nima, USDT/Toman, crypto prices, Fear & Greed, TGJU, Nobitex, Wallex, Bitpin, or a Persian market report. Collect provenance-rich partial data, never invent missing values, and report source failures explicitly." version: 1.0.1
Iranian Finance Markets Monitor
Use this skill to produce neutral, auditable snapshots and Persian-language market reports. It is a data-collection and explanation workflow, not investment advice or a trading signal.
Safety and integrity rules
Never provide personalized investment advice, guaranteed predictions, or fabricated prices.
Preserve the original unit in provenance. TGJU values are commonly Rial; display Iranian retail values in Toman only after explicit division by 10.
Every populated numeric field needs a source identifier. A missing value must remain null and its failure must appear in errors or warnings.
Treat each source independently: a TGJU outage must not erase CoinGecko data, and a crypto outage must not erase FX/gold data.
Clearly distinguish observed data, calculated values, validation failures, and neutral interpretation.
Workflow
Confirm the requested time window, market scope, currency unit, and desired output language. If unspecified, use the latest available snapshot and Persian for the report.
Read references/market-data-sources.md before changing selectors or interpreting TGJU tables. Table positions are operational hints, not proof that a page has not changed.
For live collection, install requirements.txt and run the bundled watcher with --stdout-only for inspection or --output-dir for a dated JSON artifact.
Normalize Persian and Arabic digits, parse numbers conservatively, convert Rial to Toman exactly once, and apply range/freshness/reconciliation gates.
Return partial data when a source fails. Never substitute a guessed value, stale value, or unrelated source.
Generate the Persian report from templates/market-report-fa.txt; use — for null values and include the source/failure note when useful.
Add a short neutral summary describing direction, dispersion, and data quality—not a buy/sell recommendation.
Data contract
The watcher emits JSON with:
schema_version, date_gregorian, date_jalali, and an ISO-8601 timestamp_tehran.
status: ok only when no errors were recorded; otherwise partial.
crypto: BTC, ETH, USDT/Toman, selected alts, Fear & Greed, and total market cap.
iran_fx_gold: free USD, EUR, AED, 18K gold, Emami coin, and Nima placeholder.
news: at most three links, with source and URL; RSS is fallback-only when TGJU news is empty.
errors: structured source, type, and detail records; warnings: non-fatal omissions.
Use the pure helpers in scripts/iran_market_watcher.py for tests and integrations: normalize_digits, parse_number, rial_to_toman, validate_range, validate_freshness, and parse_table_row.
Validation gates
Localized numeric parsing must support Persian/Arabic digits and separators.
Price ranges are broad sanity bounds, not forecasts; rejected values stay null.
TGJU date fields are accepted only for today through two days old unless the user explicitly requests historical data.
USDT exchange quotes require valid buy/sell prices, each quote spread no greater than 0.5%, and cross-exchange dispersion no greater than 0.5%.
CoinGecko and Fear & Greed responses require successful HTTP status and basic numeric sanity checks.
Use Tehran’s IANA timezone (Asia/Tehran), not a permanently hard-coded UTC offset.
Commands
From the repository root:
python3 -m pip install -r skills/iran-finance-markets-monitor/requirements.txt
python3 skills/iran-finance-markets-monitor/scripts/iran_market_watcher.py --stdout-only
python3 skills/iran-finance-markets-monitor/scripts/iran_market_watcher.py --output-dir ./data/market
python3 -m pytest skills/iran-finance-markets-monitor/tests -q
For restricted/offline environments, run the tests and pure helpers only. Do not claim that live prices were collected when network access or dependencies are unavailable.
Reporting template
Use the bundled Persian template and fill missing values with —. Include:
Jalali date and Tehran preparation time.
BTC, ETH, USDT/Toman, and Fear & Greed where available.
Free USD, EUR, AED, Emami coin, and 18K gold where available.
One to three dated/source-linked headlines, with RSS marked as fallback.
A two- or three-sentence neutral market summary and a data-quality note.
Troubleshooting
jdatetime is required: install the bundled requirements; Jalali dates must not be approximated.
Few or changed TGJU tables: record a scrape/schema error and inspect the source reference; do not silently shift indices.
Rate limiting or timeout: retry is bounded, then preserve partial output and record the failure.
Persian values parse as null: test normalize_digits and parse_number with the exact source text before changing selectors.
工程与架构记忆
沙盒实施标准操作规程(SOP-DEV-001)