mcpField
T
tvscreener

tvscreener

github.com/ninehills数据与数据库27765 次安装18 周前更新
代码仓库

关于 tvscreener

tvscreener 是用于市场查询的 Skill,面向需要通过脚本或 Python 获取证券数据的人。它支持按市场、字段和筛选条件查询,也提供单个证券的技术指标快照。

主要功能

  1. 01按市场和证券代码查询
  2. 02自选字段与筛选条件
  3. 03支持技术指标字段
  4. 04提供单证券查询脚本
  5. 05可使用原生 Python API

适用场景

  1. 01查询单只证券的技术指标
  2. 02按条件筛选市场标的
  3. 03运行带自定义字段的市场查询

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ninehills/skills --skill tvscreener

安装后在 Claude Code 中输入/tvscreener确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
README_USAGE.md
references/api/
enums.md
fields.md
filters.md
screeners.md
scripts/
custom_query.py
discover_fields.py
query_symbol.py
run_query.sh
test_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 获取稳定的单个标的技术快照。
  • 筛选条件:=、!=、>、<、>=、<=

故障排除

  • 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.md
    • references/api/fields.md
    • references/api/filters.md
    • references/api/enums.md

如果脚本无法满足需求,请阅读参考资料,并使用 tvscreener 原生 API 编写直接调用 Python。

回归测试

bash scripts/test_markets.sh

涵盖腾讯(港股)、茅台(A 股)、A 股 ETF(510300)和 BIDU(美股)。

评论

支持 Markdown