mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-20 01:10:49 +08:00
feat: multimodal image clients, workspaces, Tushare skill, test fixes
- Replace monolithic image_message_client with HTTP/OCR/legacy modules; tighten OpenAI transport + tool schemas for multimodal downgrade to OCR specialist path. - Add image/stock workspace prompts (META/SOUL/ROLE_SYSTEM); register experts; tweak specialist agent/direct loop/query_image_attachment. - Add bundled runtime/skills/tushare-finance (references, api_client, SKILL metadata). - Document OCR-related env vars; admin chat tweaks; README; weixin_install Ensure-OfficialPluginRuntimeDeps helper. - Tests: multimodal downgrade + OCR coverage, strict tool pairing in attachment replay guard, workspace contract skips _internal/_system dirs, router/trace/prompt guards. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
6307ade480
commit
d1bcc4debe
266 changed files with 57024 additions and 839 deletions
228
runtime/skills/tushare-finance/QUICK_REFERENCE.md
Normal file
228
runtime/skills/tushare-finance/QUICK_REFERENCE.md
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
# Tushare API 快速参考
|
||||
|
||||
本文档提供最常用的 Tushare API 接口和代码示例。
|
||||
|
||||
**作者**: [StanleyChanH](https://github.com/StanleyChanH)
|
||||
|
||||
## 股票数据
|
||||
|
||||
### 获取股票列表
|
||||
```python
|
||||
import tushare as ts
|
||||
pro = ts.pro_api()
|
||||
|
||||
# 获取所有正常上市的股票
|
||||
df = pro.stock_basic(list_status='L')
|
||||
|
||||
# 筛选特定交易所
|
||||
df_sz = pro.stock_basic(exchange='SZSE') # 深交所
|
||||
df_sh = pro.stock_basic(exchange='SSE') # 上交所
|
||||
```
|
||||
|
||||
### 获取日线行情
|
||||
```python
|
||||
# 单只股票
|
||||
df = pro.daily(ts_code='000001.SZ', start_date='20241201', end_date='20241231')
|
||||
|
||||
# 多只股票
|
||||
df = pro.daily(ts_code='000001.SZ,600000.SH', start_date='20241201', end_date='20241231')
|
||||
|
||||
# 某日所有股票
|
||||
df = pro.daily(trade_date='20241231')
|
||||
```
|
||||
|
||||
### 获取财务数据
|
||||
```python
|
||||
# 利润表
|
||||
df = pro.income(ts_code='600000.SH', start_date='20240101', end_date='20241231')
|
||||
|
||||
# 资产负债表
|
||||
df = pro.balancesheet(ts_code='600000.SH', start_date='20240101', end_date='20241231')
|
||||
|
||||
# 现金流量表
|
||||
df = pro.cashflow(ts_code='600000.SH', start_date='20240101', end_date='20241231')
|
||||
|
||||
# 财务指标
|
||||
df = pro.fina_indicator(ts_code='600000.SH', start_date='20240101', end_date='20241231')
|
||||
```
|
||||
|
||||
## 指数数据
|
||||
|
||||
### 获取指数列表
|
||||
```python
|
||||
df = pro.index_basic(market='SSE') # 上交所指数
|
||||
df = pro.index_basic(market='SZSE') # 深交所指数
|
||||
```
|
||||
|
||||
### 获取指数行情
|
||||
```python
|
||||
# 上证指数
|
||||
df = pro.index_daily(ts_code='000001.SH', start_date='20241201', end_date='20241231')
|
||||
|
||||
# 深证成指
|
||||
df = pro.index_daily(ts_code='399001.SZ', start_date='20241201', end_date='20241231')
|
||||
```
|
||||
|
||||
## 基金数据
|
||||
|
||||
### 获取基金列表
|
||||
```python
|
||||
df = pro.fund_basic(market='E') # 场内基金
|
||||
df = pro.fund_basic(market='O') # 场外基金
|
||||
```
|
||||
|
||||
### 获取基金净值
|
||||
```python
|
||||
df = pro.fund_nav(ts_code='000001.OF', start_date='20241201', end_date='20241231')
|
||||
```
|
||||
|
||||
## 宏观经济
|
||||
|
||||
### GDP 数据
|
||||
```python
|
||||
df = pro.gdp(start_q='2020011', end_q='2024044')
|
||||
```
|
||||
|
||||
### CPI 数据
|
||||
```python
|
||||
df = pro.cpi(start_date='20240101', end_date='20241231')
|
||||
```
|
||||
|
||||
### PMI 数据
|
||||
```python
|
||||
df = pro.pmi(start_date='20240101', end_date='20241231')
|
||||
```
|
||||
|
||||
### 利率数据
|
||||
```python
|
||||
# Shibor
|
||||
df = pro.shibor(start_date='20241201', end_date='20241231')
|
||||
|
||||
# LPR
|
||||
df = pro.lpr(start_date='20241201', end_date='20241231')
|
||||
```
|
||||
|
||||
## 港股美股
|
||||
|
||||
### 港股数据
|
||||
```python
|
||||
# 港股列表
|
||||
df = pro.hk_basic()
|
||||
|
||||
# 港股行情
|
||||
df = pro.hk_daily(ts_code='00700.HK', start_date='20241201', end_date='20241231')
|
||||
```
|
||||
|
||||
### 美股数据
|
||||
```python
|
||||
# 美股列表
|
||||
df = pro.us_basic()
|
||||
|
||||
# 美股行情
|
||||
df = pro.us_daily(ts_code='AAPL', start_date='20241201', end_date='20241231')
|
||||
```
|
||||
|
||||
## 常见查询模式
|
||||
|
||||
### 按日期范围查询
|
||||
```python
|
||||
df = pro.daily(
|
||||
ts_code='000001.SZ',
|
||||
start_date='20240101', # YYYYMMDD
|
||||
end_date='20241231'
|
||||
)
|
||||
```
|
||||
|
||||
### 按交易日查询
|
||||
```python
|
||||
df = pro.daily(trade_date='20241231')
|
||||
```
|
||||
|
||||
### 获取最新数据
|
||||
```python
|
||||
# 先获取最近的交易日
|
||||
import datetime
|
||||
today = datetime.datetime.now().strftime('%Y%m%d')
|
||||
df = pro.daily(trade_date=today)
|
||||
```
|
||||
|
||||
## 数据处理技巧
|
||||
|
||||
### 数据清洗
|
||||
```python
|
||||
# 去除停牌数据
|
||||
df = df[df['vol'] > 0]
|
||||
|
||||
# 排序
|
||||
df = df.sort_values('trade_date')
|
||||
|
||||
# 重置索引
|
||||
df = df.reset_index(drop=True)
|
||||
```
|
||||
|
||||
### 数据保存
|
||||
```python
|
||||
# 保存到 CSV
|
||||
df.to_csv('data.csv', index=False)
|
||||
|
||||
# 保存到 Excel
|
||||
df.to_excel('data.xlsx', index=False)
|
||||
```
|
||||
|
||||
## 错误处理
|
||||
|
||||
```python
|
||||
import tushare as ts
|
||||
|
||||
try:
|
||||
pro = ts.pro_api('your_token')
|
||||
df = pro.daily(ts_code='000001.SZ', start_date='20241201', end_date='20241231')
|
||||
print(df.head())
|
||||
except ts.errors.TushareException as e:
|
||||
print(f"Tushare API 错误: {e}")
|
||||
except Exception as e:
|
||||
print(f"错误: {e}")
|
||||
```
|
||||
|
||||
## 性能优化
|
||||
|
||||
### 批量获取
|
||||
```python
|
||||
# 一次获取多只股票
|
||||
stock_codes = ['000001.SZ', '600000.SH', '000002.SZ']
|
||||
df = pro.daily(ts_code=','.join(stock_codes), start_date='20241201', end_date='20241231')
|
||||
```
|
||||
|
||||
### 控制请求频率
|
||||
```python
|
||||
import time
|
||||
|
||||
for stock in stock_codes:
|
||||
df = pro.daily(ts_code=stock, start_date='20241201', end_date='20241231')
|
||||
time.sleep(0.3) # 避免超限
|
||||
```
|
||||
|
||||
## 常用字段说明
|
||||
|
||||
### 日线行情字段
|
||||
- `trade_date`: 交易日期
|
||||
- `ts_code`: 股票代码
|
||||
- `open`: 开盘价
|
||||
- `high`: 最高价
|
||||
- `low`: 最低价
|
||||
- `close`: 收盘价
|
||||
- `vol`: 成交量(手)
|
||||
- `amount`: 成交额(千元)
|
||||
|
||||
### 财务指标字段
|
||||
- `end_date`: 报告期
|
||||
- `roe`: 净资产收益率
|
||||
- `net_profit_margin`: 销售净利率
|
||||
- `gross_margin`: 销售毛利率
|
||||
- `debt_to_assets`: 资产负债率
|
||||
|
||||
## 更多接口
|
||||
|
||||
完整接口列表和详细说明请查看:
|
||||
- [接口文档索引](docs/README.md)
|
||||
- [Tushare 官方文档](https://tushare.pro/document/2)
|
||||
Loading…
Add table
Add a link
Reference in a new issue