关于 tvscreener
tvscreener 是用于市场查询的 Skill,面向需要通过脚本或 Python 获取证券数据的人。它支持按市场、字段和筛选条件查询,也提供单个证券的技术指标快照。
主要功能
- 01按市场和证券代码查询
- 02自选字段与筛选条件
- 03支持技术指标字段
- 04提供单证券查询脚本
- 05可使用原生 Python API
适用场景
- 01查询单只证券的技术指标
- 02按条件筛选市场标的
- 03运行带自定义字段的市场查询
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ninehills/ skills --skill tvscreener安装后在 Claude Code 中输入/tvscreener确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/README_USAGE.mdreferences/api/enums.mdfields.mdfilters.mdscreeners.mdscripts/custom_query.pydiscover_fields.pyquery_symbol.pyrun_query.shtest_markets.sh详细介绍
tvscreener
需要查询市场数据时,先使用简单脚本;必要时再使用原生 Python。
安装
python3 -m pip install -U tvscreener
Python 版本必须为 >=3.10。
快速命令(在技能根目录中运行)
在你偏好的环境(venv/pyenv/系统 Python)中使用 Python 3.10+。
# Preset single-symbol output (recommended)
python3 scripts/query_symbol.py --symbol HKEX:700 --market HONGKONG
# Custom query (fields + filters)
bash scripts/run_query.sh \
--market CHINA \
--symbol SHSE:600519 \
--fields 'NAME,PRICE,CHANGE_PERCENT,VOLUME,RELATIVE_STRENGTH_INDEX_14,MACD_LEVEL_12_26,MACD_SIGNAL_12_26,MACD_HIST,SIMPLE_MOVING_AVERAGE_20,SIMPLE_MOVING_AVERAGE_50,SIMPLE_MOVING_AVERAGE_200,EXPONENTIAL_MOVING_AVERAGE_20,EXPONENTIAL_MOVING_AVERAGE_50,EXPONENTIAL_MOVING_AVERAGE_200,BOLLINGER_UPPER_BAND_20,BOLLINGER_LOWER_BAND_20,STOCHASTIC_PERCENTK_14_3_3,STOCHASTIC_PERCENTD_14_3_3,AVERAGE_TRUE_RANGE_14,MOVING_AVERAGES_RATING' \
--filter 'NAME=600519'
# Field discovery
python3 scripts/discover_fields.py --keyword macd --limit 20
Shell 引号说明
- 请用单引号括起
--fields和--filter。 - 如果使用
FIELD|60这类区间语法,必须加引号,以避免 Shell 将其解析为管道。
查询规则
- 核心技术指标集(推荐):
PRICE、CHANGE_PERCENT、VOLUME、RELATIVE_STRENGTH_INDEX_14、MACD_LEVEL_12_26、MACD_SIGNAL_12_26、MACD_HIST、SIMPLE_MOVING_AVERAGE_20/50/200、EXPONENTIAL_MOVING_AVERAGE_20/50/200、BOLLINGER_UPPER_BAND_20、BOLLINGER_LOWER_BAND_20、STOCHASTIC_PERCENTK_14_3_3、STOCHASTIC_PERCENTD_14_3_3、AVERAGE_TRUE_RANGE_14、MOVING_AVERAGES_RATING - 区间字段语法:
FIELD|60/FIELD|240(例如:RELATIVE_STRENGTH_INDEX_14|60)- 当前注意事项:在某些 tvscreener 版本中,
scripts/custom_query.py的区间字段可能因FieldWithInterval属性错误而无法使用。 - 解决方法:不使用区间字段运行,或使用
scripts/query_symbol.py获取稳定的单个标的技术快照。
- 当前注意事项:在某些 tvscreener 版本中,
- 筛选条件:
=、!=、>、<、>=、<=
故障排除
ImportError: cannot import name 'Market' from 'tvscreener'- 通常由 Python/site-packages 不匹配或存在多个 Python 环境导致。
- 解决方法:确保命令和安装使用同一 Python(3.10+),然后重新安装:
python3 -m pip install -U tvscreener
zsh: command not found: 60,...- 原因:未加引号的
FIELD|60被解析为 Shell 管道。 - 解决方法:用单引号括起完整的
--fields字符串。
- 原因:未加引号的
参考资料
- 工作流和常见模式:
references/README_USAGE.md - API 详情:
references/api/screeners.mdreferences/api/fields.mdreferences/api/filters.mdreferences/api/enums.md
如果脚本无法满足需求,请阅读参考资料,并使用 tvscreener 原生 API 编写直接调用 Python。
回归测试
bash scripts/test_markets.sh
涵盖腾讯(港股)、茅台(A 股)、A 股 ETF(510300)和 BIDU(美股)。
评论
支持 Markdown