Install
openclaw skills install finance-toolkit股票数据获取、分析和可视化工具包。支持A股、港股、美股数据,提供技术分析、基本面分析和投资组合管理功能。
openclaw skills install finance-toolkit# Python依赖
pip install akshare pandas numpy matplotlib mplfinance plotly ta
# 可选:更多高级功能
pip install backtrader quantstats yfinance
# config/api_config.py
API_CONFIG = {
"akshare": {
"timeout": 10,
"retry": 3
},
"cache": {
"enabled": True,
"ttl": 300 # 5分钟缓存
}
}
# config/data_sources.py
DATA_SOURCES = {
"a_share": {
"realtime": "akshare.stock_zh_a_spot_em",
"history": "akshare.stock_zh_a_hist",
"fundamental": "akshare.stock_financial_report_sina"
},
"hk_stock": {
"realtime": "akshare.stock_hk_spot_em",
"history": "akshare.stock_hk_hist"
},
"us_stock": {
"realtime": "akshare.stock_us_spot_em",
"history": "akshare.stock_us_hist"
}
}
from finance_toolkit import StockAnalyzer
# 创建分析器
analyzer = StockAnalyzer()
# 获取股票数据
df = analyzer.get_stock_data("000001", start_date="2024-01-01")
# 技术分析
indicators = analyzer.calculate_indicators(df)
# 生成图表
analyzer.plot_chart(df, indicators, save_path="chart.png")
# 查看股票信息
python -m finance_toolkit.cli stock 000001
# 技术分析
python -m finance_toolkit.cli analyze 000001 --indicators macd,rsi,boll
# 投资组合
python -m finance_toolkit.cli portfolio list
python -m finance_toolkit.cli portfolio add 000001 1000
# 生成报告
python -m finance_toolkit.cli report 000001 --output report.html
// 在OpenClaw技能中调用
const finance = require('./skills/finance-toolkit');
// 股票查询命令
app.command('/stock <code>', async (code) => {
const data = await finance.getStockData(code);
return `股票 ${code} 信息:\n当前价: ${data.price}\n涨跌幅: ${data.change}`;
});
// 投资组合命令
app.command('/portfolio', async () => {
const portfolio = await finance.getPortfolio();
return `投资组合总价值: ${portfolio.total_value}\n今日盈亏: ${portfolio.today_pnl}`;
});
/stock <代码> [参数]
参数:
--detail 详细模式
--chart 显示图表
--news 相关新闻
--analysis 技术分析
示例:
/stock 000001
/stock 000001 --chart
/stock 000001 --analysis --indicators macd,rsi
/portfolio <子命令> [参数]
子命令:
list 查看组合
add <代码> <数量> [成本价] 添加持仓
remove <代码> [数量] 减少持仓
update 更新市值
analyze 组合分析
示例:
/portfolio list
/portfolio add 000001 1000 15.5
/portfolio analyze --risk
/market <子命令> [参数]
子命令:
indices 主要指数
sectors 板块涨跌
hot 热门股票
flow 资金流向
calendar 财经日历
示例:
/market indices
/market sectors --sort change
/market flow --type north
/analyze <代码> [参数]
参数:
--period <周期> 日/周/月/年
--indicators <指标> 技术指标列表
--compare <代码> 对比股票
--export <格式> 导出格式
示例:
/analyze 000001
/analyze 000001 --indicators macd,rsi,boll
/analyze 000001 --compare 000002 --period month
from finance_toolkit.quant import StrategyBacktester
# 定义策略
def ma_crossover_strategy(data, short_window=10, long_window=30):
# 移动平均线交叉策略
pass
# 回测
backtester = StrategyBacktester(
strategy=ma_crossover_strategy,
initial_capital=100000,
commission=0.0003
)
results = backtester.backtest("000001", "2023-01-01", "2024-01-01")
from finance_toolkit.risk import RiskManager
risk_manager = RiskManager(portfolio)
# 风险评估
risk_report = risk_manager.assess_risk()
# 风险控制
if risk_report["var_95"] > 0.05: # 95% VaR超过5%
risk_manager.adjust_position()
from finance_toolkit.trading import AutoTrader
trader = AutoTrader(
strategy=my_strategy,
broker="simulated", # 模拟交易
risk_limit=0.02 # 单笔风险限制2%
)
# 启动交易
trader.start()
# 克隆项目
git clone [项目地址]
# 安装开发依赖
pip install -r requirements-dev.txt
# 运行测试
pytest tests/
# 代码检查
flake8 finance_toolkit/
black finance_toolkit/
免责声明: 本工具仅供学习和研究使用,不构成任何投资建议。股市有风险,投资需谨慎。