引言:菜市场里藏着的投资秘密

想象一下,你是一家农业公司的老板,每天要决定进什么货、进多少。大白菜便宜但容易烂,大蒜贵但能放久——怎么选才能利润最大化?

这个问题,其实和基金经理选股是一样的逻辑。

本文将带你走进一个有趣的数据分析项目:用金融工程的方法分析农产品价格。我们从北京新发地批发市场抓取了近三年的价格数据,然后用夏普比率(Sharpe Ratio)、波动率(Volatility)等投资学指标,来评估哪些农产品值得”投资”。

💡 什么是夏普比率? 简单说,就是”性价比”。夏普比率越高,说明你承担同样风险的情况下,能获得更高的收益。就像买西瓜,花同样的钱,夏普比率高的那个更甜。


数据从哪来?新发地的”股票行情”

新发地是亚洲最大的农产品批发市场,每天发布各类农副产品的价格行情。我们通过它的API接口,采集了以下数据:

字段 含义 示例
prodName 产品名称 大白菜
lowPrice 最低价(元/斤) 0.3
highPrice 最高价(元/斤) 0.5
avgPrice 平均价(元/斤) 0.4
place 产地 冀鲁豫
pubDate 发布日期 2024-12-17

数据覆盖了7大类农产品

类别代码 类别名称 典型品种
1186 蔬菜 大白菜、黄瓜、番茄
1187 水果 苹果、香蕉
1188 粮油 大米、面粉
1189 肉禽蛋 猪肉、鸡蛋
1190 水产 鲤鱼、虾
1203 豆制品 豆腐、豆皮
1204 调料 花椒、八角

时间跨度:2022年1月1日 至 2024年12月17日,共约1081天。


数据采集:Python爬虫实战

数据采集使用了Python的httpx库,通过POST请求获取新发地的API数据。核心代码如下:

import httpx
import csv
from urllib.parse import quote

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv133.0) Gecko/20100101 Firefox/133.0",
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
    "X-Requested-With": "XMLHttpRequest"
}

def get_quote_by_Pcat(cat_id, limit=100):
    """按类别获取价格数据"""
    data = {
        "limit": str(limit),
        "current": "1",
        "prodPcatid": str(cat_id),
        "prodCatid": "",
        "prodName": ""
    }
    response = client.post(
        "http://www.xinfadi.com.cn/getPriceData.html",
        json=data
    )
    return response.json()

🔧 技术要点

  • 使用指数退避重试机制(最多5次),应对网络波动
  • 添加了完整的请求头,模拟浏览器行为
  • 数据直接写入CSV文件,方便后续分析

分析方法:把蔬菜当股票

1. 价格收益率计算

就像股票有涨跌幅,我们也计算了农产品的每日价格变化:

# 计算日收益率
df['return'] = df['avgPrice'].pct_change()

2. 夏普比率(Sharpe Ratio)

夏普比率 = (平均收益率 - 无风险利率) / 收益率标准差

这个指标告诉我们:承担单位风险能获得多少超额收益。夏普比率越高,”投资价值”越大。

3. 波动率(Volatility)

波动率衡量价格的稳定程度。波动率低的农产品,价格更可预测,风险更小。

4. 季节性ARIMA模型

ARIMA(自回归综合移动平均)是经典的时间序列预测模型。加上”季节性”(Seasonal)后,可以捕捉农产品价格的周期性规律——比如春节前猪肉涨价、夏天西瓜便宜等。


分析结果:谁是”菜中茅台”?

夏普比率 Top 20

排名 农产品 夏普比率 投资建议
1 圆白菜 65.4 ⭐⭐⭐ 极优
2 菠菜 54.3 ⭐⭐⭐ 极优
3 小白菜 50.2 ⭐⭐⭐ 极优
4 红薯 42.4 ⭐⭐ 优秀
5 冬瓜 32.8 ⭐⭐ 优秀
6 28.2 ⭐⭐ 优秀
7 山药 22.8 ⭐ 良好
8 黄瓜 22.0 ⭐ 良好
9 番茄 18.9 ⭐ 良好
10 大蒜 17.2 ⭐ 良好

📊 解读 圆白菜以65.4的夏普比率高居榜首!这意味着:如果你把”投资”圆白菜,它的风险调整后收益是最高的。这可能是因为圆白菜价格波动有规律(受季节影响大),但整体趋势向上。

波动率最低 Top 10(价格最稳定)

排名 农产品 平均波动率 稳定性评级
1 胡萝卜 0.24 🟢 极稳定
2 葱头 0.29 🟢 极稳定
3 土豆 0.38 🟢 极稳定
4 冬瓜 0.46 🟢 稳定
5 圆白菜 0.57 🟢 稳定
6 红薯 0.67 🟡 中等
7 玉米 0.78 🟡 中等
8 油菜 0.81 🟡 中等
9 小白菜 0.96 🟡 中等
10 番茄 1.07 🟡 中等

💡 发现 胡萝卜、葱头、土豆是”稳定三兄弟”,价格波动最小。适合风险厌恶型的采购策略。而姜(2.30)和菠菜(1.51)波动最大,适合追求高收益的”激进型投资者”。


实战应用:农业公司如何选品?

基于以上分析,我们可以给出以下选品建议:

策略一:稳健型(适合小公司)

优先选择低波动率的品种:

  • 胡萝卜、葱头、土豆 → 价格可预测,库存风险小
  • 适合:小型餐饮企业、社区团购

策略二:进攻型(适合大公司)

优先选择高夏普比率的品种:

  • 圆白菜、菠菜、小白菜 → 风险调整后收益最高
  • 适合:大型农产品贸易商、连锁超市

策略三:组合投资(推荐)

构建一个”农产品投资组合”,同时包含:

  • 60% 稳健品种(胡萝卜、土豆)
  • 30% 进攻品种(圆白菜、菠菜)
  • 10% 投机品种(姜、大蒜)

这样既能保证基本收益,又有机会获得超额回报。


技术栈总结

工具 用途
Python 3.12 主要编程语言
httpx HTTP请求(替代requests)
pandas 数据处理
statsmodels ARIMA时间序列分析
matplotlib + seaborn 数据可视化
Jupyter Notebook 交互式分析

延伸阅读

  1. Black-Scholes模型:期权定价的经典模型,本项目借用了其”无套利”思想
  2. 投资组合理论:马科维茨的现代投资组合理论(MPT),如何通过分散投资降低风险
  3. 时间序列分析:ARIMA、Prophet等预测模型的原理与应用
  4. 农产品金融化:芝加哥商品交易所的农产品期货交易

结语

数据分析的魅力在于,它能让我们从看似普通的日常数据中发现隐藏的规律。下次你去菜市场买菜时,不妨想想:这颗白菜的”夏普比率”是多少?

📁 项目代码 完整代码和数据已开源,包括数据采集脚本、Jupyter Notebook分析文件和可视化结果。