Skip to main content
Glama
firmmaple
by firmmaple
DOCUMENTS.md18.7 kB
## 大致功能 `src/tools` 目录功能详解 这个目录下的每个文件都是一个“功能模块”,专门负责处理某一类特定的用户请求。 1. `stock_market.py` - 股市行情工具 这是最核心、最基础的工具,负责提供个股的行情和基础信息。 * 功能1:获取历史K线数据 (`get_historical_k_data`) * 用户可能会问:“我想看看贵州茅台(sh.600519)从2024年6月1日到6月5日的股价是怎么走的?” * 它怎么实现: 1. 接收到参数 code='sh.600519', start_date='2024-06-01', end_date='2024-06-05'。 2. 调用 BaostockDataSource.get_historical_k_data() 获取原始的DataFrame。 3. 调用 format_df_to_markdown() 格式化输出。 * 输出示例: | date | open | high | low | close | volume | |:---|---:|---:|---:|---:|---:| | 2024-06-03 | 1650.00 | 1660.00 | 1645.00 | 1655.00 | 25000 | | 2024-06-04 | 1655.00 | 1675.00 | 1652.00 | 1670.00 | 30000 | | 2024-06-05 | 1670.00 | 1680.00 | 1665.00 | 1678.00 | 28000 | * 功能2:获取股票基本信息 (`get_stock_basic_info`) * 用户可能会问:“sh.600519 这只股票是哪个公司的?什么时候上市的?” * 它怎么实现:调用 BaostockDataSource.get_stock_basic_info()。 * 输出示例: | code | code_name | industry | listingDate | |:---|:---|:---|:---| | sh.600519 | 贵州茅台 | 白酒 | 2001-08-27 | * 功能3:获取分红派息数据 (`get_dividend_data`) * 用户可能会问:“我想查一下万科A(sz.000002)在2023年有没有分红?” * 它怎么实现:调用 BaostockDataSource.get_dividend_data()。 * 输出示例: | code | dividendYear | planAnnounceDate | cashDiviPerShare | |:---|:---|:---|---:| | sz.000002 | 2023 | 2024-03-28 | 0.68 | --- 2. `financial_reports.py` - 公司财报工具 这个工具像一位专业的会计师,负责解读上市公司的财务报表。 * 功能1:获取公司盈利能力 (`get_profit_data`) * 用户可能会问:“帮我分析一下宁德时代(sz.300750)在2023年第四季度的赚钱能力怎么样?” * 它怎么实现:调用 BaostockDataSource.get_profit_data()。 * 输出示例: | code | pubDate | statDate | roeAvg | npPerShare | |:---|:---|:---|---:|---:| | sz.300750 | 2024-04-15 | 2023-12-31 | 0.22 | 10.06 | (注:roeAvg=净资产收益率, npPerShare=每股收益) * 功能2:获取公司资产负债情况 (`get_balance_data`) * 用户可能会问:“比亚迪(sz.002594)在2023年底的资产负债率高吗?” * 它怎么实现:调用 BaostockDataSource.get_balance_data()。 * 输出示例: | code | pubDate | statDate | assetLiabRatio | currentRatio | |:---|:---|:---|---:|---:| | sz.002594 | 2024-03-27 | 2023-12-31 | 0.77 | 1.15 | (注:assetLiabRatio=资产负债率, currentRatio=流动比率) --- 3. `indices.py` - 市场指数工具 这个工具关注的是大盘指数,比如上证50、沪深300等。 * 功能:获取指数成分股 (`get_sz50_stocks`, `get_hs300_stocks`等) * 用户可能会问:“现在上证50指数都包含了哪些股票?” * 它怎么实现:调用 BaostockDataSource.get_sz50_stocks()。 * 输出示例: | code | code_name | |:---|:---| | sh.600036 | 招商银行 | | sh.600519 | 贵州茅台 | | sh.601318 | 中国平安 | | ... | ... | --- 4. `market_overview.py` - 市场概览工具 这个工具提供对整个A股市场的宏观视角。 * 功能1:获取所有A股列表 (`get_all_stock`) * 用户可能会问:“今天A股一共有多少只股票在交易?” * 它怎么实现:调用 BaostockDataSource.get_all_stock()。 * 输出示例: | code | tradeStatus | code_name | |:---|:---|:---| | sh.600000 | 1 | 浦发银行 | | sh.600004 | 1 | 白云机场 | | ... | ... | ... | (注:tradeStatus=1表示正常交易) * 功能2:获取交易日历 (`get_trade_dates`) * 用户可能会问:“2024年10月份哪几天可以交易股票?” * 它怎么实现:调用 BaostockDataSource.get_trade_dates()。 * 输出示例: | calendar_date | is_trading_day | |:---|:---| | 2024-10-01 | 0 | | 2024-10-02 | 0 | | ... | ... | | 2024-10-08 | 1 | (注:is_trading_day=1表示是交易日) --- 5. `macroeconomic.py` - 宏观经济工具 这是格局最大的工具,关注的是影响整个市场的国家级经济数据。 * 功能:获取存款/贷款基准利率 (`get_deposit_rate_data`, `get_loan_rate_data`) * 用户可能会问:“我想知道从2020年到现在,央行的存款基准利率都是怎么变化的?” * 它怎么实现:调用 BaostockDataSource.get_deposit_rate_data()。 * 输出示例: | date | rate_type | rate | |:---|:---|---:| | 2015-10-24 | 一年期定期存款 | 1.50 | | 2015-10-24 | 三年期定期存款 | 2.75 | | ... | ... | ... | 总结 现在你应该看得很清楚了,tools 目录下的每一个文件都像一个“专家”,它们各司其职: * stock_market.py 是 行情专家。 * financial_reports.py 是 财报专家。 * indices.py 是 指数专家。 * market_overview.py 是 市场观察员。 * macroeconomic.py 是 宏观经济学家。 ## 所有工具 --- ### **行情数据 & 基础信息 (Market Data & Basic Info)** --- #### **get_historical_k_data** 获取中国A股股票的历史K线(开盘价、最高价、最低价、收盘价、成交量)数据。 * **参数:** * `code` (string, 必需): 股票代码 (例如, 'sh.600000', 'sz.000001')。 * `start_date` (string, 必需): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 必需): 结束日期 'YYYY-MM-DD'。 * `frequency` (string, 可选): 数据频率。'd'(日), 'w'(周), 'm'(月), '5', '15', '30', '60'(分钟)。默认为 'd'。 * `adjust_flag` (string, 可选): 复权类型。'1'(后复权), '2'(前复权), '3'(不复权)。默认为 '3'。 * **返回:** * 包含K线数据的Markdown表格。 --- #### **get_stock_basic_info** 获取给定中国A股股票的基本信息。 * **参数:** * `code` (string, 必需): 股票代码。 * `fields` (list[string], 可选): 指定需要返回的字段 (例如, 'code_name', 'industry')。 * **返回:** * 包含股票基本信息的Markdown表格。 --- ### **基本面数据 (Fundamental Data)** --- #### **get_dividend_data** 获取指定股票和年份的分红信息。 * **参数:** * `code` (string, 必需): 股票代码。 * `year` (string, 必需): 查询年份 (例如, '2023')。 * `year_type` (string, 可选): 年份类型。'report'(预案公告年份), 'operate'(除权除息年份)。默认为 'report'。 * **返回:** * 包含分红数据的Markdown表格。 --- #### **get_profit_data** 获取股票的季度盈利能力数据。 * **参数:** * `code` (string, 必需): 股票代码。 * `year` (string, 必需): 4位数字年份。 * `quarter` (integer, 必需): 季度 (1, 2, 3, or 4)。 * **返回:** * 包含盈利能力数据的Markdown表格。 --- #### **get_operation_data** 获取股票的季度运营能力数据。 * **参数:** * `code` (string, 必需): 股票代码。 * `year` (string, 必需): 4位数字年份。 * `quarter` (integer, 必需): 季度 (1, 2, 3, or 4)。 * **返回:** * 包含运营能力数据的Markdown表格。 --- #### **get_growth_data** 获取股票的季度成长能力数据。 * **参数:** * `code` (string, 必需): 股票代码。 * `year` (string, 必需): 4位数字年份。 * `quarter` (integer, 必需): 季度 (1, 2, 3, or 4)。 * **返回:** * 包含成长能力数据的Markdown表格。 --- #### **get_balance_data** 获取股票的季度偿债能力数据(资产负债表)。 * **参数:** * `code` (string, 必需): 股票代码。 * `year` (string, 必需): 4位数字年份。 * `quarter` (integer, 必需): 季度 (1, 2, 3, or 4)。 * **返回:** * 包含资产负债表数据的Markdown表格。 --- #### **get_cash_flow_data** 获取股票的季度现金流量数据。 * **参数:** * `code` (string, 必需): 股票代码。 * `year` (string, 必需): 4位数字年份。 * `quarter` (integer, 必需): 季度 (1, 2, 3, or 4)。 * **返回:** * 包含现金流量数据的Markdown表格。 --- #### **get_dupont_data** 获取股票的季度杜邦分析数据。 * **参数:** * `code` (string, 必需): 股票代码。 * `year` (string, 必需): 4位数字年份。 * `quarter` (integer, 必需): 季度 (1, 2, 3, or 4)。 * **返回:** * 包含杜邦分析数据的Markdown表格。 --- #### **get_performance_express_report** 获取股票在指定日期范围内的业绩快报。 * **参数:** * `code` (string, 必需): 股票代码。 * `start_date` (string, 必需): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 必需): 结束日期 'YYYY-MM-DD'。 * **返回:** * 包含业绩快报数据的Markdown表格。 --- #### **get_forecast_report** 获取股票在指定日期范围内的业绩预告。 * **参数:** * `code` (string, 必需): 股票代码。 * `start_date` (string, 必需): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 必需): 结束日期 'YYYY-MM-DD'。 * **返回:** * 包含业绩预告数据的Markdown表格。 --- ### **市场与行业 (Market & Industry)** --- #### **get_stock_industry** 获取指定股票或所有股票的行业分类。 * **参数:** * `code` (string, 可选): 股票代码。如果为空,则获取所有股票。 * `date` (string, 可选): 日期 'YYYY-MM-DD'。如果为空,使用最新数据。 * **返回:** * 包含行业分类数据的Markdown表格。 --- #### **get_sz50_stocks** 获取上证50指数在指定日期的成分股。 * **参数:** * `date` (string, 可选): 日期 'YYYY-MM-DD'。如果为空,使用最新数据。 * **返回:** * 包含上证50成分股的Markdown表格。 --- #### **get_hs300_stocks** 获取沪深300指数在指定日期的成分股。 * **参数:** * `date` (string, 可选): 日期 'YYYY-MM-DD'。如果为空,使用最新数据。 * **返回:** * 包含沪深300成分股的Markdown表格。 --- #### **get_zz500_stocks** 获取中证500指数在指定日期的成分股。 * **参数:** * `date` (string, 可选): 日期 'YYYY-MM-DD'。如果为空,使用最新数据。 * **返回:** * 包含中证500成分股的Markdown表格。 --- #### **get_all_stock** 获取指定日期的所有股票(A股和指数)及其交易状态。 * **参数:** * `date` (string, 可选): 日期 'YYYY-MM-DD'。如果为空,使用当前日期。 * **返回:** * 包含股票列表和交易状态的Markdown表格。 --- ### **宏观经济 (Macro Economy)** --- #### **get_deposit_rate_data** 获取指定日期范围内的存款基准利率。 * **参数:** * `start_date` (string, 可选): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 可选): 结束日期 'YYYY-MM-DD'。 * **返回:** * 包含存款利率数据的Markdown表格。 --- #### **get_loan_rate_data** 获取指定日期范围内的贷款基准利率。 * **参数:** * `start_date` (string, 可选): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 可选): 结束日期 'YYYY-MM-DD'。 * **返回:** * 包含贷款利率数据的Markdown表格。 --- #### **get_required_reserve_ratio_data** 获取指定日期范围内的存款准备金率。 * **参数:** * `start_date` (string, 可选): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 可选): 结束日期 'YYYY-MM-DD'。 * **返回:** * 包含存款准备金率数据的Markdown表格。 --- #### **get_money_supply_data_month** 获取月度货币供应量数据 (M0, M1, M2)。 * **参数:** * `start_date` (string, 可选): 开始月份 'YYYY-MM'。 * `end_date` (string, 可选): 结束月份 'YYYY-MM'。 * **返回:** * 包含月度货币供应数据的Markdown表格。 --- #### **get_money_supply_data_year** 获取年度货币供应量数据 (M0, M1, M2)。 * **参数:** * `start_date` (string, 可选): 开始年份 'YYYY'。 * `end_date` (string, 可选): 结束年份 'YYYY'。 * **返回:** * 包含年度货币供应数据的Markdown表格。 --- #### **get_shibor_data** 获取指定日期范围内的上海银行间同业拆放利率 (SHIBOR)。 * **参数:** * `start_date` (string, 可选): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 可选): 结束日期 'YYYY-MM-DD'。 * **返回:** * 包含SHIBOR数据的Markdown表格。 --- ### **技术分析 (Technical Analysis)** --- #### **get_technical_indicators** 计算股票的技术指标,包括MACD、RSI、KDJ、布林带、威廉指标、随机震荡器等。 * **参数:** * `code` (string, 必需): 股票代码 (例如, 'sh.600000', 'sz.000001')。 * `start_date` (string, 必需): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 必需): 结束日期 'YYYY-MM-DD'。 * `indicators` (list[string], 可选): 指标列表,可选值包括 ['MACD', 'RSI', 'KDJ', 'BOLL', 'WR', 'STOCH', 'CCI', 'ATR']。如果为空,则计算所有支持的指标。 * **返回:** * 包含技术指标数据的Markdown表格。 --- #### **get_moving_averages** 计算多种周期的移动平均线(5、10、20、50、120、250日),包括SMA、EMA、WMA等类型。 * **参数:** * `code` (string, 必需): 股票代码。 * `start_date` (string, 必需): 开始日期 'YYYY-MM-DD'。 * `end_date` (string, 必需): 结束日期 'YYYY-MM-DD'。 * `periods` (list[integer], 可选): 移动平均线周期列表,如[5, 10, 20, 50]。默认使用常用周期[5, 10, 20, 50, 120, 250]。 * **返回:** * 包含各种移动平均线数据的Markdown表格,包含均线分析。 --- #### **calculate_risk_metrics** 计算风险指标,包括贝塔值、夏普比率、最大回撤、波动率、下行风险等,与基准指数比较。 * **参数:** * `code` (string, 必需): 股票代码。 * `benchmark_code` (string, 可选): 基准指数代码。默认'sh.000300'(沪深300),可选'sh.000016'(上证50)。 * `period` (string, 可选): 分析周期。'1Y'(1年), '6M'(6个月), '3M'(3个月), '2Y'(2年)。默认为'1Y'。 * **返回:** * 包含风险指标的详细分析报告,包括收益率、风险指标和风险调整收益指标。 --- ### **估值分析 (Valuation Analysis)** --- #### **get_valuation_metrics** 获取股票的估值指标数据,包括市盈率(P/E)、市净率(P/B)、市销率(P/S)等的实时数据和历史趋势。 * **参数:** * `code` (string, 必需): 股票代码 (例如, 'sh.600000', 'sz.000001')。 * `start_date` (string, 可选): 开始日期 'YYYY-MM-DD'。默认为最近1年。 * `end_date` (string, 可选): 结束日期 'YYYY-MM-DD'。默认为当前日期。 * **返回:** * 包含各种估值指标的Markdown表格和趋势分析,包括当前估值、历史均值、分位数等。 --- #### **calculate_peg_ratio** 计算PEG比率(市盈率相对盈利增长比率),PEG = PE / 净利润增长率。 * **参数:** * `code` (string, 必需): 股票代码。 * `year` (string, 必需): 4位数字年份,如'2024'。 * `quarter` (integer, 必需): 季度 (1, 2, 3, or 4)。 * **返回:** * 包含PEG比率计算和分析的详细报告,包括估值水平判断。 --- #### **calculate_ddm_valuation** 使用股息贴现模型(DDM)计算股票的内在价值。 * **参数:** * `code` (string, 必需): 股票代码 (例如, 'sh.600000', 'sz.000001')。 * `years_back` (integer, 可选): 使用多少年的历史数据来计算增长率。默认5年。 * `discount_rate` (float, 可选): 贴现率/要求回报率。默认10% (0.10)。 * `terminal_growth_rate` (float, 可选): 永续增长率。默认2.5% (0.025)。 * **返回:** * DDM估值分析报告(Markdown格式),包括内在价值计算、增长率假设、敏感性分析等。 --- #### **calculate_dcf_valuation** 计算DCF(现金流贴现)估值,基于历史现金流数据进行未来现金流预测和贴现。 * **参数:** * `code` (string, 必需): 股票代码。 * `years_back` (integer, 可选): 用于分析的历史年份数。默认5年。 * `discount_rate` (float, 可选): 折现率/WACC。默认10% (0.10)。 * `terminal_growth_rate` (float, 可选): 永续增长率。默认2.5% (0.025)。 * **返回:** * 包含DCF估值计算过程和结果的详细报告,包括企业价值、关键假设等。 --- #### **compare_industry_valuation** 进行同行业估值比较分析,对比目标股票与同行业其他公司的估值水平。 * **参数:** * `code` (string, 必需): 目标股票代码。 * `date` (string, 可选): 比较基准日期 'YYYY-MM-DD'。默认为最新交易日。 * **返回:** * 包含同行业估值比较的详细分析报告,包括行业统计、排名分位、估值水平评价。 --- ### **辅助工具 (Utility Tools)** --- #### **get_latest_trading_date** 获取最近的交易日期。 * **参数:** * 无 * **返回:** * 最近的交易日期字符串 'YYYY-MM-DD'。 --- #### **get_market_analysis_timeframe** 获取适合市场分析的时间范围。 * **参数:** * `period` (string, 可选): 时间范围类型。'recent'(最近1-2月), 'quarter'(最近一季度), 'half_year'(最近半年), 'year'(最近一年)。默认为 'recent'。 * **返回:** * 描述分析时间范围的字符串。 --- #### **get_stock_analysis** 提供基于数据的股票分析报告(非投资建议)。 * **参数:** * `code` (string, 必需): 股票代码。 * `analysis_type` (string, 可选): 分析类型。'fundamental'(基本面), 'technical'(技术面), 'comprehensive'(综合)。默认为 'fundamental'。 * **返回:** * 包含关键指标、历史表现和行业比较的数据驱动分析报告。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/firmmaple/a-share-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server