tvscreener
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesetvscreener
tvscreener
Use this skill for market queries with simple scripts first, then native Python when needed.
建议先使用简单脚本进行市场查询,必要时再使用原生Python代码。
Install
安装
bash
python3 -m pip install -U tvscreenerPython must be .
>=3.10bash
python3 -m pip install -U tvscreenerPython版本需≥3.10。
Quick commands (run from skill root)
快速命令(从技能根目录运行)
Use Python 3.10+ in your preferred environment (venv/pyenv/system Python).
bash
undefined在你偏好的环境(venv/pyenv/系统Python)中使用Python 3.10+版本。
bash
undefinedPreset single-symbol output (recommended)
预设单标的输出(推荐使用)
python3 scripts/query_symbol.py --symbol HKEX:700 --market HONGKONG
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'
--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'
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'
--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
undefinedpython3 scripts/discover_fields.py --keyword macd --limit 20
undefinedShell quoting notes
Shell引号使用说明
- Wrap and
--fieldsin single quotes.--filter - If you use interval syntax like , quoting is mandatory to avoid shell pipe parsing.
FIELD|60
- 请将和
--fields参数用单引号包裹。--filter - 如果你使用类似的区间语法,必须添加引号,避免被Shell解析为管道命令。
FIELD|60
Query rules
查询规则
- Core technical set (recommended): ,
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_14MOVING_AVERAGES_RATING - Interval fields syntax: /
FIELD|60(example:FIELD|240)RELATIVE_STRENGTH_INDEX_14|60- Current caveat: interval fields may fail in with
scripts/custom_query.pyattribute errors in some tvscreener versions.FieldWithInterval - Workaround: run without interval fields, or use for stable single-symbol technical snapshots.
scripts/query_symbol.py
- Current caveat: interval fields may fail in
- Filters: ,
=,!=,>,<,>=<=
- 推荐核心技术指标集合:,
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_14MOVING_AVERAGES_RATING - 带区间的字段语法:/
FIELD|60(示例:FIELD|240)RELATIVE_STRENGTH_INDEX_14|60- 当前注意事项:在部分tvscreener版本中,使用时,带区间的字段可能会触发
scripts/custom_query.py属性错误。FieldWithInterval - 解决方法:不使用带区间的字段,或使用获取稳定的单标的技术指标快照。
scripts/query_symbol.py
- 当前注意事项:在部分tvscreener版本中,使用
- 筛选条件支持:,
=,!=,>,<,>=<=
Troubleshooting
问题排查
ImportError: cannot import name 'Market' from 'tvscreener'- Usually caused by mismatched Python/site-packages or multiple Python environments.
- Fix: ensure commands and installation use the same Python (3.10+), then reinstall:
python3 -m pip install -U tvscreener
zsh: command not found: 60,...- Cause: unquoted interpreted as shell pipes.
FIELD|60 - Fix: single-quote the full string.
--fields
- Cause: unquoted
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,...- 原因:未加引号的被Shell解析为管道命令。
FIELD|60 - 修复方法:将整个字符串用单引号包裹。
--fields
- 原因:未加引号的
References
参考资料
- Workflow + patterns:
references/README_USAGE.md - API details:
references/api/screeners.mdreferences/api/fields.mdreferences/api/filters.mdreferences/api/enums.md
If scripts are insufficient, read references and write direct Python using tvscreener native API.
- 工作流及模式:
references/README_USAGE.md - API详情:
references/api/screeners.mdreferences/api/fields.mdreferences/api/filters.mdreferences/api/enums.md
如果脚本无法满足需求,请阅读参考资料并使用tvscreener原生API编写直接的Python代码。
Regression test
回归测试
bash
bash scripts/test_markets.shCovers Tencent (HK), Moutai (A), A-share ETF (510300), and BIDU (US).
bash
bash scripts/test_markets.sh测试覆盖腾讯(港股)、茅台(A股)、A股ETF(510300)及百度(美股)。