BitSoulStockSkill
BitSoul旗下all-in-one的A股市场综合skill,提供股票筛选策略,内置上百种行业常见量化指标, 基于MOE混合因子专家模型的股票买卖点计算判断,个股风险判定,关键指标计算,数据回测,提供准确全面且免费的股票价格与股票历史信息,板块信息与相关交易数据,提供大v交易观察等信息聚合功能 Skill: BitSoulStockSkill Owner: wangzhi43 Summary: BitSoul旗下all-in-one的A股市场综合skill,提供股票筛选策略,内置上百种行业常见量化指标, 基于MOE混合因子专家模型的股票买卖点计算判断,个股风险判定,关键指标计算,数据回测,提供准确全面且免费的股票价格与股票历史信息,板块信息与相关交易数据,提供大v交易观察等信息聚合功能 Tags: latest:1.0.30 Version history: v1.0.30 | 2026-03-21T14:11:47.695Z | auto - 强化买卖信号输出规范,新增分步输出结构(汇总表、专家评分明细、关键细节、操作建议、免责声明),并强制执行,禁止简化格式。 - 明确了买卖信号处理后,每个环节(专家评分、关键细节等)的展示要点和细节要求。 - 其他功能说明和接口调用规则与上一版保持一致。 - 本次为文档改进,不含
Rank
62
Safety
84
Downloads
5.0k
Updated
Oct 9, 2026
Version
1.0.30
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 5K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 5K downloadsadoption · observed Oct 9, 2026
- Latest release
- 1.0.30release · observed Mar 21, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s1792ymbk7nz9w3tt7dnqyezz583hvp0:bitsoul-stock-quantization- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-wangzhi43-bitsoul-stock-quantization/snapshot"
Documentation
CLAWHUB
160,000 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: BitSoulStockSkill
description: BitSoul旗下all-in-one的A股市场综合skill,提供股票筛选策略,内置上百种行业常见量化指标, 基于MOE混合因子专家模型的股票买卖点计算判断,个股风险判定,关键指标计算,数据回测,提供准确全面且免费的股票价格与股票历史信息,板块信息与相关交易数据,提供大v交易观察等信息聚合功能
version: 1.0.0
metadata:
openclaw:
emoji: "📈"
homepage: https://www.aicodingyard.com
requires:
env:
- BITSOUL_TOKEN
bins:
- python3
optional:
env:
- BITSOUL_TOKEN_ENV_FILE
- BITSOUL_CACHE_DIR
pythonPackages:
- pandas
- numpy
- requests
- sqlalchemy
network:
- info.aicodingyard.com
- https://finance.sina.com.cn/
primaryEnv: BITSOUL_TOKEN
---
# 简介
炒股龙虾的最佳搭档,best stock partner forever
## 核心优势
1. 免费稳定且每周更新的A股交易数据:为个股分析、买卖点计算、收益/回撤计算提供坚实的数据基础
2. 基于MOE混合因子专家模型的股票买卖点计算判断
3. 个股风险判定
4. 关键指标计算
5. 数据回测
6. 提供准确全面且免费的股票价格与股票历史信息
7. 板块信息与相关交易数据
8. 提供大V交易观察等信息聚合功能
# Token 配置
本 skill 需要有效的 `BITSOUL_TOKEN` 才能使用功能
token 可前往 <https://www.aicodingyard.com> 免费注册申请,并配置在外部运行环境中
## 必需的环境变量
* `BITSOUL_TOKEN`:用户令牌,用于远程服务器权限验证
## 可选的环境变量
* `BITSOUL_TOKEN_ENV_FILE`:指向包含 `BITSOUL_TOKEN` 的 env 文件
## 配置方式
1. **方式一:直接设置环境变量**
```bash
export BITSOUL_TOKEN="你的令牌"
```
2. **方式二:使用 env 文件**
```bash
export BITSOUL_TOKEN_ENV_FILE="/path/to/token.env"
```
其中 `token.env` 文件内容格式为:
```
BITSOUL_TOKEN=你的令牌
```
**注意**:如果同时设置了环境变量和 env 文件,环境变量优先。
## 运行时描述:
- 从环境变量读取 `BITSOUL_TOKEN`
- 只有在显式提供 `BITSOUL_TOKEN_ENV_FILE` 时,才会从文件中读取 `BITSOUL_TOKEN`
- 根据用户的自然语言,参考references/API_FOR_LLM.md 调用对应接口
- 对“分析 / 估值 / 基本面 / 趋势 / 风险”等请求自动切到综合分析, 需要moe因子计算,返回详细信息
- 对“交易观察 / 技术分析 / 均线 / 动量 / RSI / KDJ / 布林线 / MACD”等请求需要进行moe因子计算,同时需要调用calculate_metrics进行数据回测
- 返回结构化 JSON;查询场景优先给原始数据,分析场景给结论和支撑数据
- 任何返回的股票数据,都应包括个股的完整信息,不应遗漏任何字段
## 安全与运行边界
- 技能所需环境变量已经在本文件 frontmatter 中显式声明
- 策略回测、因子挖矿、实时行情查询等功能会访问 `info.aicodingyard.com` 服务器
- 技能只读取声明过的 token 相关环境变量,以及显式指定的 env 文件路径
- 技能不会主动扫描其他本地凭证文件,也不会写入 token 缓存文件
## 安装
使用前先安装 Python 依赖:
```bash
pip install -r assets/requirements.txt
```
首次安装需要执行初始化操作,在设置好BITSOUL_TOKEN后,请运行scripts/data_fetcher.py
# 注意事项
* api接口文档主要参考 references/API_FOR_LLM.md 对应的代码文件是scripts/stock_api.py 和 scripts/define.py
* **凭证说明**:本skill需要用户Token用于数据访问权限验证。Token通过环境变量 `BITSOUL_TOKEN` 或 `BITSOUL_TOKEN_ENV_FILE` 传入。Token在数据访问时需要保持有效(请自行确保token未过期)。
* **缓存目录**:`BITSOUL_CACHE_DIR`,可选,用于指定缓存目录和数据存储路径。默认值为系统临时目录下的 `BitSoulStockSkill` 子目录
* **因子挖矿**:用户说"因子挖矿"、"挖矿"、"随机挖因子"、"碰碰运气"、"随机推荐"、"挖金矿"、"随机策略"时,直接调用 `api.random_alpha_backtest()`,禁止自己写回测逻辑。返回结果调用 `print(result['summary_text'])` 输出,禁止自行整理摘要。
* **因子挖矿结束后**:在 `print(result['summary_text'])` 之后,用自然语言向用户逐一解释本次使用的每个因子是什么含义、在策略中起什么作用。解释来源是 `result['factor_descriptions']`,格式示例:`alpha022:高价量5日相关的5日变化 × 收盘波动率,用于衡量量价相关动量的衰减程度,在本次策略中作为选股因子使用。`
* **买卖建议**:用户询问某只股票"能不能买"、"该不该卖"、"现在适合持有吗"、"操作建议"、"投资建议"、"买卖信号"、"值得买吗"、"要不要买"等,且用户指定了具体股票时,直接调用 `api.get_trade_signal(code)`,禁止自己计算指标做判断。
* **股票显示格式**:任何场_meta.json
{
"ownerId": "kn7ezkxj6j18dq286j7v4j15e98394vy",
"slug": "bitsoul-stock-quantization",
"version": "1.0.30",
"publishedAt": 1774102307695
}references/API_FOR_LLM.md
# StockApi 接口文档
`StockApi` 是项目对外提供的唯一数据与回测接口,封装了股票基础信息查询、K线数据获取、技术指标计算、性能指标计算和回测工具函数。
```python
from stock_api import StockApi
api = StockApi()
```
---
## 目录
1. [初始化](#初始化)
2. [股票基础信息](#股票基础信息)
3. [价格行情](#价格行情)
4. [技术指标(带缓存)](#技术指标带缓存)
5. [性能指标](#性能指标)
6. [回测工具](#回测工具)
7. [回测引擎控制](#回测引擎控制)
8. [策略辅助函数](#策略辅助函数)
9. [数据库维护](#数据库维护)
10. [实时行情 (爬虫)](#实时行情-爬虫)
---
## 初始化
### 初始化 StockApi,自动初始化技术指标缓存数据库
```python
api = StockApi()
# __init__(self)
```
---
## 股票基础信息
### 获取所有股票代码列表
```python
symbols = api.get_all_symbols()
# get_all_symbols() -> List[str]
```
| 返回 | 说明 |
|------|------|
| `List[str]` | 股票代码列表,格式如 `['000001.SZ', '600519.SH', ...]` |
---
### 根据股票代码获取股票基础信息
```python
info = api.get_symbol_basic_infomation('600519.SH')
# get_symbol_basic_infomation(ts_code: str) -> Optional[StockBasic]
```
| 参数 | 类型 | 说明 |
|------|------|------|
| `ts_code` | `str` | 股票代码,如 `000001.SZ` |
| 返回 | 说明 |
|------|------|
| `StockBasic` \| `None` | 股票基础信息,未查询到返回 `None` |
---
## 价格行情
### 查询每日基本面指标列表,支持按股票、日期、分页过滤
```python
# 查询某只股票全部历史基本面数据
basics = api.get_daily_basic(ts_codes=["000001.SZ"])
# 查询某天全市场基本面数据
basics = api.get_daily_basic(trade_date="2024-06-03")
# get_daily_basic(ts_codes=[], trade_date=None, start_date=None,
# end_date=None, limit=None, offset=0,
# order_by="trade_date ASC") -> List[DailyBasic]
```
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `ts_codes` | `List[str]` | `[]` | 按股票代码列表过滤,空表示不过滤 |
| `trade_date` | `str \| None` | `None` | 精确过滤交易日期,格式 `YYYY-MM-DD` |
| `start_date` | `str \| None` | `None` | 日期范围下限(含),格式 `YYYY-MM-DD` |
| `end_date` | `str \| None` | `None` | 日期范围上限(含),格式 `YYYY-MM-DD` |
| `limit` | `int \| None` | `None` | 返回最大记录数,`None` 表示不限 |
| `offset` | `int` | `0` | 分页偏移量 |
| `order_by` | `str` | `"trade_date ASC"` | 排序表达式 |
---
### 获取股票日线行情,按日期升序
```python
klines = api.get_daily_kline(['600519.SH'], '2026-01-01', '2026-03-01')
# get_daily_kline(symbols: List[str], start_date: str, end_date: str) -> List[DailyKline]
```
| 参数 | 类型 | 说明 |
|------|------|------|
| `symbols` | `List[str]` | 股票代码列表,空表示获取所有股票 |
| `start_date` | `str` | 起始日期,格式 `YYYY-MM-DD` |
| `end_date` | `str` | 结束日期,格式 `YYYY-MM-DD` |
---
### 获取股票周线行情,按日期升序
```python
klines = api.get_weekly_kline(['600519.SH'], '2026-01-01', '2026-03-01')
# get_weekly_kline(symbols: List[str], start_date: str, end_date: str) -> List[WeeklyKline]
```
---
### 获取股票月线行情,按日期升序
```python
klines = api.get_monthly_kline(['600519.SH'], '2026-01-01', '2026-03-01')
# get_monthly_kline(symbols: List[str], start_date: str, end_date: str) -> List[MonthlyKline]
```
---
### 获取指定股票的日线收盘价列表,按日期升序
```python
prices = api.get_daily_close_prices('600519.SH', '2026-01-01', '2026-03-01')
# get_daily_close_prices(code: str, start_date: str, end_date: str) -> List[float]
```
---
### 获取指定股票的日线开盘价列表
```python
prices = api.get_daily_open_prices('600519.SH', '2026-01-01', '2026-03-01')
# get_daily_open_prices(code: str, start_date: strscripts/moe_weights.json
{
"_comment": "MoE权重配置文件。通过 train_weights 命令跑回测优化后自动更新。",
"_version": 1,
"_trained_at": "2026-03-19 14:58:16",
"_train_period": "2025-09-01~2026-03-19",
"expert_weights": {
"technical": 0.35717595519629336,
"alpha": 0.36057193372593965,
"fundamental": 0.15416369933688986,
"behavior": 0.12808841174087712
},
"signal_thresholds": {
"buy": 0.7313263753423049,
"sell": 0.35
},
"technical": {
"sma5": 1.181801288003714,
"sma10": 0.7570724714871282,
"sma20": 1.0,
"sma60": 1.1118537267876476,
"ema5": 1.0,
"ema12": 1.0,
"ema20": 0.27926056566514107,
"ema26": 1.0,
"ema_cross": 0.6575509109292674,
"wma20": 1.0,
"tema20": 1.0,
"dema20": 0.8608835251864292,
"kama": 1.0,
"bbi": 0.8636807483782426,
"trix": 1.833969089253665,
"dmi": 1.0,
"sar": 0.8951085513864419,
"linearreg_slope": 1.3211429094664284,
"linearreg": 1.0923904719425455,
"linearreg_angle": 0.5262131258427737,
"linearreg_intercept": 0.9885568378088866,
"aroon": 0.7826516778972384,
"tsf": 1.0,
"ht_trendmode": 0.8814204448925165,
"ht_dcphase": 1.0,
"ht_sine": 1.0,
"rsi14": 0.8662579600815672,
"rsi6": 1.0,
"cci": 1.0,
"mom10": 0.7352808685133152,
"mom20": 1.0,
"roc10": 1.0,
"rocp10": 1.7929313995073208,
"rocr10": 1.0,
"roc_r": 2.064310646291524,
"willr": 1.0,
"cmo": 1.0,
"bias": 1.0371024748469209,
"psycho": 1.0,
"dpo": 1.0,
"mass": 1.0,
"kdj_j": 1.0,
"kdj_kd": 1.0,
"stoch_k": 1.1291875450945286,
"stochf_k": 1.0,
"stochrsi": 1.0,
"ultosc": 0.727829745700426,
"macd_hist": 0.6826161537737307,
"macd_cross": 0.9130399186907544,
"ppo_hist": 0.9136754128716245,
"adosc": 1.0,
"obv": 1.2333726939245337,
"ad": 1.0,
"mfi": 1.1649303644243527,
"vwap": 0.32248302163927334,
"volume_ratio": 1.6461768542684325,
"vr": 1.0,
"pvi": 0.9351558341111518,
"nvi": 1.0,
"ar": 1.6225854372575186,
"br": 0.7882101600971572,
"brar": 1.0,
"asi": 1.0,
"bb_pos": 1.0778193939643872,
"bb_signal": 1.201047760357908,
"bbands_pct": 1.0219943929294277,
"bbands_width": 1.0074095539385972,
"ma_channel": 0.25496657546761314,
"donchian": 0.053137051875268626,
"keltner": 1.0,
"xue_channel": 1.0487232147691394,
"midpoint": 0.3385211409278348,
"midprice": 1.0,
"atr": 1.0792445125369383,
"natr": 1.0,
"tr": 1.2644451626865996,
"trange": 0.2911803623562474,
"stddev": 1.0,
"var": 1.0,
"correl": 1.0,
"beta": 0.7630957463073703,
"ht_dcperiod": 1.2793115495425174,
"typical": 1.0,
"median": 1.0,
"wclose": 1.0,
"avgp": 1.0,
"ht_phasor": 1.0826827348531094,
"consec_rise": 1.1666511139322437,
"consec_fall": 1.0,
"bomb_board": 1.0,
"bomb_board_count": 1.0,
"consec_limit_up": 1.0
},
"alpha": {
"alpha001": 1.0,
"alpha002": 1.0,
"alpha003": 1.0,assets/config.json
{
"version": "1.0.0",
"base_url": "http://info.aicodingyard.com",
"http_timeout": 30
}activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/wangzhi43/skills/bitsoul-stock-quantization",
"sourceUrl": "https://clawhub.ai/wangzhi43/skills/bitsoul-stock-quantization",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T04:29:26.772Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-wangzhi43-bitsoul-stock-quantization/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-wangzhi43-bitsoul-stock-quantization/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T04:29:26.772Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "5K downloads",
"href": "https://clawhub.ai/wangzhi43/bitsoul-stock-quantization",
"sourceUrl": "https://clawhub.ai/wangzhi43/bitsoul-stock-quantization",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T04:29:26.772Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.30",
"href": "https://clawhub.ai/wangzhi43/bitsoul-stock-quantization",
"sourceUrl": "https://clawhub.ai/wangzhi43/bitsoul-stock-quantization",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-03-21T14:11:47.695Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-wangzhi43-bitsoul-stock-quantization/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-wangzhi43-bitsoul-stock-quantization/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.30",
"description": "- 强化买卖信号输出规范,新增分步输出结构(汇总表、专家评分明细、关键细节、操作建议、免责声明),并强制执行,禁止简化格式。 - 明确了买卖信号处理后,每个环节(专家评分、关键细节等)的展示要点和细节要求。 - 其他功能说明和接口调用规则与上一版保持一致。 - 本次为文档改进,不含产品接口或功能变更。",
"href": "https://clawhub.ai/wangzhi43/bitsoul-stock-quantization",
"sourceUrl": "https://clawhub.ai/wangzhi43/bitsoul-stock-quantization",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-03-21T14:11:47.695Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
