360 Secure SkillHub
360 安全技能中心

astock-cache

提供通用 Key-Value 缓存与 K 线 parquet 缓存,含 cache_set/get/delete/clear、cached 装饰器和 kline_get_or_fetch 智能读取(缓存优先、缺失才拉取)。缓存写入用户主目录,可大幅缩短全市场筛选耗时。含清除缓存操作;不含行情数据源、定时调度与交易功能。

ZICXR
热度 0.00
最近更新 2026-10-19 00:51:08
分类:效率依赖:代码执行 / 读写文件应用场景:数据处理 / 财务 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add zicxr/a-stock-skills/astock-cache
Metadata
name
astock-cache
description
磁盘缓存 + K线 parquet。当用户跑全市场筛选每次都要等 30 分钟时,Claude 应使用此 Skill。K线缓存到 ~/.astock_skills/cache/kline/ 目录,5 秒 vs 30 分钟,差 360 倍。

astock-cache

何时使用

  • 全市场筛选太慢 (每次 30 分钟)
  • 反复拉同一只股票 K 线
  • 跑 screener 跑 2 遍
  • 想要"盘后更新一次,白天用一天"

🚀 快速上手

# 看缓存多少了
python main.py kline-stats

# 跑一次全市场 K 线更新 (15-30 分钟, 但之后都是 5 秒)
python daily_update.py

# 单独看某只股票
python main.py kline-stats
# {"count": 5028, "size_mb": 18.4}

提供能力

通用 Key-Value 缓存

  • cache_set/get/delete/clear
  • cached(key, ttl) 装饰器
  • 存储: ~/.astock_skills/cache/*.pkl

K 线 parquet 缓存 (新,推荐)

  • kline_save(code, df, days) 存 parquet
  • kline_load(code, days, max_age_hours) 读
  • kline_get_or_fetch(code, fetch_fn, days) 智能模式
  • 存储: ~/.astock_skills/cache/kline/{code}_{days}d.parquet

screener 集成示例

from skills.01-infra.astock-cache.main import kline_get_or_fetch
from skills.01-infra.astock-data-source.main import get_kline

def smart_kline(code, days=60):
    """优先读缓存, 缓存没有才拉网络"""
    return kline_get_or_fetch(code, get_kline, days=days)

# 第一次慢 (拉网络), 之后 5 秒
df = smart_kline("601991", 60)

性能

场景 无缓存 有缓存 加速比
单股 60 日 K 线 1.2s 0.05s 24x
全市场 5028 只 60 日 30min 5s 360x

依赖

pandas>=1.5.0
pyarrow>=10.0.0  # parquet 引擎