PostgreSQL码农集散地

靠谱吗? | gemini-cli 写的股价预测程序

用 gemini-cli 写一个股价预测程序

我的想法是, 使用多元线性相关性预测股价.

十年前我在PostgreSQL数据库中使用函数写过一个类似功能, 预测准确度较高. 为什么呢? 主要是我采用了动态方法, 从最近3日到最近15日, 会算很多遍,选择线性相关性最好的截距和斜率进行预测.

参考: https://github.com/digoal/blog

  • 《PostgreSQL KPI 预测例子 - 线性回归, 斜率, 截距, 相关性, regr_slope, regr_intercept, regr_r2》
  • 《PostgreSQL 多元线性回归 - 2 股票预测》
  • 《在PostgreSQL中用线性回归分析linear regression做预测 - 例子2, 预测未来数日某股收盘价》
  • 《PostgreSQL 线性回归 - 股价预测 1》
  • 《在PostgreSQL中用线性回归分析(linear regression) - 实现数据预测 - 股票预测例子》
  • 《PostgreSQL 统计信息之 - 逻辑与物理存储的线性相关性》
Image
Image
Image

但是需要先写爬虫, 爬数据, 然后导入数据库, 然后运算. 其实链路挺长的, 反正没程序牛马人肉干起来就是不爽啊.

既然有gemini-cli AI Agent了, 试一试它能不能干一个类似程序?

写一个程序, 输入A股股票代码, 使用爬虫获取该股票最近10年每天收盘和开盘数据, 保存为$股票代码.csv文件(包括日期,开盘价,收盘价), 使用每连续5日的数据采用多元线性相关性预测下1和下2个交易日的开盘和收盘价格, 并使用历史数据校验预测准确性. 输出$股票代码_predict.csv文件(包括日期,开盘价,收盘价,下1日预测开盘价,下1日预测收盘价,下1日预测开盘误差百分比,下1日预测收盘误差百分比,下2日预测开盘价,下2日预测收盘价,下2日预测开盘误差百分比,下2日预测收盘误差百分比)

GEMINI-CLI

✦ 好的, 这是一个相当完整的项目, 涉及到数据爬虫、数据处理、机器学习建模和回测验证. 我将为你创建一个完整的Python脚本来实现这个需求.  


  这个脚本将执行以下操作:  
   1. 获取数据: 从新浪财经爬取指定股票过去10年的历史日K数据.  
   2. 数据清洗: 处理数据, 按日期排序, 并保存为 股票代码.csv.  
   3. 特征工程: 构建一个滑动窗口, 用过去5天的数据作为特征.  
   4. 建模与预测:  
       * 通过遍历历史数据进行"向前滚动"的训练和预测, 避免未来数据泄露.  
       * 在每个时间点, 使用该时间点之前的所有历史数据来训练一个多元线性回归模型.  
       * 用训练好的模型和最近5天的数据来预测未来第1天和第2天的开盘价与收盘价.  
   5. 计算误差: 将预测价格与真实的未来价格进行比较, 计算误差百分比.  
   6. 生成报告: 将日期、原始价格、预测价格和误差率一并存入 预测股票代码.csv 文件.  


  使用说明:  
   1. 请确保你已经安装了必要的Python库: pandas, requests, scikit-learn, beautifulsoup4, lxml. 如果没有安装, 可以使用以下命令安装:  


   1     pip install pandas requests scikit-learn beautifulsoup4 lxml  

   2. 将下面的代码保存为一个Python文件 (例如 predict_stock.py).  
   3. 通过命令行运行该脚本, 并传入A股的股票代码作为参数. 例如, 预测贵州茅台(600519):  


   1     python predict_stock.py 600519  

   4. 程序运行需要一些时间, 特别是首次获取10年数据时. 运行结束后, 会在当前目录下生成两个文件: 600519.csv (原始数据) 和 预测600519.csv (预测结果).  

  ---  

  这是完整的Python代码:  

... 略    

✦ 好的, 脚本 predict_stock.py 已经成功创建在 /Users/digoal/gupiao/ 目录下.  

  现在, 你可以按照以下步骤来使用它:  

  第一步: 安装所需的Python库  

  如果你的环境中没有安装必要的库, 请打开终端 (Terminal) 并运行以下命令:  


   1 pip install pandas requests scikit-learn beautifulsoup4 lxml  



  第二步: 运行脚本  

  打开终端, 进入到脚本所在的目录 /Users/digoal/gupiao/, 然后执行脚本. 你需要提供一个6位数的A股股票代码作为参数.  


  例如, 如果要分析并预测贵州茅台 (股票代码: 600519), 请运行:  


   1 python /Users/digoal/gupiao/predict_stock.py 600519  


  第三步: 查看结果  


  脚本运行需要一些时间, 特别是第一次运行时会从网上爬取近10年的数据. 运行完成后, 你会在 /Users/digoal/gupiao/ 目录下找到两个CSV文件:  


   1. 600519.csv: 包含了从网络上获取的原始历史数据 (日期, 开盘价, 收盘价).  
   2. 预测600519.csv: 包含了详细的预测结果和误差分析, 列头如你所要求.  



ℹ ⚡ Slow response times detected. Automatically switching from gemini-2.5-pro to gemini-2.5-flash for faster responses for the remainder of this session.  
  ⚡ To avoid this you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key  
  ⚡ You can switch authentication methods by typing /auth  
  你可以用任何支持CSV文件的软件 (如Excel, Numbers, 或者VS Code) 打开它们来查看结果.  

效果就不展示了, 大家可以自行测试.

相信很快会有翻版的gemini-cli.

期待 qwen-cli、deepseek-cli、ollama-cli .