作者:Jackey (Aiknighterrant)
发布日期:2026年4月16日
标签:OpenClaw, 股票分析, Python, 实时数据, AI助手
大家好!我是Jackey,一名OpenClaw开发者和AI助手爱好者。今天我要分享一个我最近开发的股票实时分析技能的完整教程。这个技能可以让你的OpenClaw助手具备专业的股票分析能力,支持自动触发、实时数据获取、完整基本面分析和风险评估。
stock-real-time-analysis/
├── README.md # 项目说明文档
├── SKILL.md # OpenClaw技能文档
├── openclaw.skill.json # OpenClaw技能配置
├── requirements.txt # Python依赖包
├── setup.py # 安装脚本
├── stock_real_time_analyzer.py # 核心分析器 (33KB)
├── skill_interface.py # 技能接口 (8KB)
├── test_efficient_analyzer.py # 测试套件 (8KB)
├── LICENSE # MIT许可证
├── .gitignore # Git忽略文件
├── CHANGELOG.md # 更新日志
└── examples/ # 使用示例
├── basic_usage.py # 基础使用示例
└── advanced_analysis.py # 高级分析示例
class OptimizedRealTimeStockAnalyzer:
"""优化版实时股票分析器"""
def __init__(self, cache_ttl=300):
self.cache_ttl = cache_ttl # 5分钟缓存
self.cache = {}
self.stock_mapping = {
'中芯国际': '688981',
'贵州茅台': '600519',
'五粮液': '000858',
'长飞光纤': '601869',
# ... 更多股票
}
def analyze_stock_efficient(self, stock_input):
"""高效分析股票"""
# 1. 输入识别和清理
stock_code = self.identify_stock_code(stock_input)
# 2. 检查缓存
if self.is_cached(stock_code):
return self.get_cached_result(stock_code)
# 3. 获取实时数据
real_time_data = self.get_real_time_quote_single(stock_code)
financial_data = self.get_financial_data_efficient(stock_code)
# 4. 计算分析指标
analysis_result = self.calculate_analysis_metrics(
real_time_data, financial_data
)
# 5. 缓存结果
self.cache_result(stock_code, analysis_result)
return analysis_result
class StockAnalysisSkill:
"""股票分析技能接口"""
def __init__(self):
self.analyzer = OptimizedRealTimeStockAnalyzer()
# 触发模式定义
self.trigger_patterns = {
# 股票代码模式
r'^[0-9]{6}$': 'A股代码', # 6位数字
r'^[0-9]{5}$': '港股代码', # 5位数字
# 股票名称模式
r'^(长飞光纤|贵州茅台|五粮液|中芯国际|...)$': '股票名称',
# 股票简称模式
r'^(茅台|平安|招行|中信|...)$': '股票简称',
}
def is_stock_input(self, user_input):
"""判断是否为股票输入"""
cleaned_input = user_input.strip()
for pattern, pattern_type in self.trigger_patterns.items():
if re.match(pattern, cleaned_input):
return True
return False
def get_real_time_quote_single(self, stock_code):
"""只获取指定股票的实时数据"""
try:
# 使用akshare获取单个股票数据
stock_data = ak.stock_zh_a_spot_em()
# 精准查找目标股票
target_stock = stock_data[stock_data['代码'] == stock_code]
if not target_stock.empty:
return self.extract_quote_data(target_stock.iloc[0])
return None
except Exception as e:
# 降级策略:使用备用数据源
return self.get_fallback_data(stock_code)
def cache_result(self, stock_code, result):
"""缓存分析结果"""
cache_key = f"stock_analysis_{stock_code}"
self.cache[cache_key] = {
'data': result,
'timestamp': time.time(),
'expires_at': time.time() + self.cache_ttl
}
# 清理过期缓存
self.clean_expired_cache()
# 克隆仓库
git clone https://github.com/Aiknighterrant/stock-real-time-analysis.git
cd stock-real-time-analysis
# 安装依赖
pip install -r requirements.txt
# 测试安装
python -c "from stock_real_time_analyzer import OptimizedRealTimeStockAnalyzer; print('✅ 安装成功')"
# 安装到系统
python setup.py install
# 或者开发模式
python setup.py develop
{
"name": "stock-real-time-analysis",
"version": "1.0.0",
"description": "股票实时分析技能",
"autoTrigger": true,
"priority": 80,
"supportedStocks": [
"中芯国际", "贵州茅台", "五粮液", "长飞光纤",
"宁德时代", "比亚迪", "中国平安", "招商银行"
]
}
# 在OpenClaw中直接输入
中芯国际
688981
茅台
stock-real-time-analysisOpenClaw股票实时分析技能# 初始化Git仓库
git init
git add .
git commit -m "Initial commit: v1.0.0"
# 设置远程仓库
git remote add origin https://github.com/Aiknighterrant/stock-real-time-analysis.git
# 推送代码
git push -u origin main
v1.0.0Stock Real-Time Analysis Skill v1.0.0from stock_real_time_analyzer import OptimizedRealTimeStockAnalyzer
# 创建分析器
analyzer = OptimizedRealTimeStockAnalyzer()
# 分析中芯国际
result = analyzer.analyze_stock_efficient("中芯国际")
if 'error' not in result:
print(f"✅ 分析成功")
print(f" 股票: {result['stock_name']} ({result['stock_code']})")
print(f" 当前价格: ¥{result['valuation']['current_price']:.2f}")
print(f" 涨跌幅: {result['valuation']['change_percent']:+.2f}%")
print(f" PE: {result['valuation']['pe']:.1f}倍")
def analyze_multiple_stocks(stock_list):
"""批量分析多只股票"""
analyzer = OptimizedRealTimeStockAnalyzer()
results = []
for stock in stock_list:
result = analyzer.analyze_stock_efficient(stock)
if 'error' not in result:
results.append(result)
# 按PE排序
sorted_results = sorted(results, key=lambda x: x['valuation']['pe'])
print("🏆 PE排名 (低到高):")
for i, r in enumerate(sorted_results, 1):
print(f" {i}. {r['stock_name']}: {r['valuation']['pe']:.1f}倍")
return results
def add_new_stock(self, stock_name, stock_code):
"""添加新股票到支持列表"""
self.stock_mapping[stock_name] = stock_code
# 更新正则模式
new_pattern = r'^(' + '|'.join(self.stock_mapping.keys()) + ')$'
self.trigger_patterns[new_pattern] = '股票名称'
# 更新OpenClaw配置
self.update_openclaw_config()
def add_technical_indicators(self, stock_code):
"""添加技术分析指标"""
# 获取历史数据
historical_data = self.get_historical_data(stock_code)
# 计算技术指标
indicators = {
'macd': self.calculate_macd(historical_data),
'rsi': self.calculate_rsi(historical_data),
'bollinger_bands': self.calculate_bollinger_bands(historical_data)
}
return indicators
| 指标 | 优化前 | 优化后 | 改进 |
|---|---|---|---|
| 响应时间 | 26秒 | 2-3秒 | 90%+ |
| 网络请求 | 5501次 | 1次 | 99.98% |
| 内存使用 | 高 | 低 | 显著减少 |
| 用户体验 | 需要等待 | 即时响应 | 大幅提升 |
# 测试数据获取时间
获取全部A股数据: 26.3秒
获取单只股票数据: 1.8秒
# 分析处理时间
完整分析处理: 0.7秒
总响应时间: 2.5秒
制作这个完整的股票实时分析技能,大约消耗了 17-20 积分。
| 开发阶段 | 对话轮次 | 估算 tokens | 初步估算积分 | 实际估算积分 | |———|———|————|————-|————-| | 需求分析 | 10-15轮 | 5,000-7,500 | 5-7.5积分 | ~15,000积分 | | 代码开发 | 20-25轮 | 10,000-12,500 | 10-12.5积分 | ~25,000积分 | | 测试验证 | 10-15轮 | 5,000-7,500 | 5-7.5积分 | ~5,000积分 | | 文档编写 | 10-15轮 | 5,000-7,500 | 5-7.5积分 | ~5,000积分 | | 系统开销 | - | 2,500-5,000 | - | ~5,000积分 | | 总计 | 50-70轮 | 27,500-40,000 | 25-35积分 | ~50,000积分 |
注意: 实际消耗包括系统工具调用、文件操作等未计入初步估算的开销。
实际消耗: 根据用户观察,实际消耗了约 50,000 积分 (¥50)
初步估算: 约 17.5 积分 (¥0.0175)
实际消耗: 约 50,000 积分 (¥50)
差异: +1,617倍
结论: 虽然实际成本高于初步估算,但相比传统开发仍然具有极高的性价比!
立即加入 Coze,体验智能助手开发!
👉 邀请链接: https://www.coze.cn/studio?invite_code=65b77f9f67ae4ceb9c5721d184ee3367
新增语音、音乐、视频和图片生成权益!
👉 专属链接: https://platform.minimaxi.com/subscribe/token-plan?code=B9iiLoGEmZ&source=link
| 成本类型 | 传统开发 | AI助手开发 | 节省比例 |
|---|---|---|---|
| 金钱成本 | ¥5,000-¥20,000 | ¥50 | 99%+ |
| 时间成本 | 2-4周 | 2-4小时 | 95%+ |
| 人力成本 | 1-2名开发 | 无需专业开发 | 100% |
| 技术门槛 | 需要编程经验 | 自然语言交互 | 大幅降低 |
| 迭代速度 | 天/周级别 | 分钟/小时级别 | 10-100倍 |
立即加入,开启低成本、高效率的AI助手开发之旅!
通过这个教程,我们完整地了解了如何开发一个功能强大的股票实时分析技能。这个技能不仅具备了专业的分析能力,还通过自动触发机制大大提升了用户体验。
希望这个教程对你有所帮助!如果你有任何问题或建议,欢迎在GitHub仓库中讨论。
祝你投资顺利,AI助手开发愉快! 🚀
作者:Jackey (Aiknighterrant)
GitHub: https://github.com/Aiknighterrant
博客: https://aiknighterrant.github.io/
技能仓库: https://github.com/Aiknighterrant/stock-real-time-analysis