← 返回信息流
Agent SkillLINUX DO · AI·2 小时前

Fleur:AI驱动开发的沪深A股数据平台与策略回测模拟器

原标题:[开源推广] Fleur 沪深A股数据平台 + 策略回测模拟器

速览

Fleur是一个完全由harness-engineering(codex + GPT)驱动开发的开源项目,集成了A股行情数据采集、清洗、计算、选股策略回测等功能。项目通过AGENTS.md文档地图和定制skill,实现了从设计到验收的完整人机协作流程。该玩法展示了如何用AI完成复杂工程开发,大幅降低开发者的“心智负担”。

AI 深度解读

背景

随着量化投资和程序化交易的普及,个人开发者与小型团队对沪深 A 股数据的获取、清洗、加工及策略回测需求日益增长。然而,主流金融数据平台往往成本高昂、灵活性不足,且缺乏面向自动化工作流的完整开源方案。在此背景下,作者尝试以 harness-engineering(一种完全由 AI 驱动的工程方法)为核心,构建一个集数据采集、数据仓库、指标计算与投研应用于一体的全栈开源系统 —— Fleur,旨在验证该工程范式在复杂项目中的落地可行性,并为社区提供可复用的 A 股数据基础设施。

核心内容

Fleur 是一个完全由 harness-engineering 驱动的沪深 A 股数据平台与策略回测模拟器,其工程目标包括:

  1. 验证完全由 AI(harness-engineering)驱动复杂项目的落地可行性与复杂度上限。
  2. 实现一个自动调度采集行情数据与财务会计报表的作业平台。
  3. 构建集数据清洗、模型转换、数据加工与指标计算能力于一体的数据仓库。
  4. 提供灵活构建指标选股、策略回测、策略订阅和组合业绩评价的投研应用工作台。

应用功能演示(共 6 步)

  • Step 1:构建股票池筛选规则
    支持常见技术指标的组合筛选,涵盖行情涨跌(高开低收、涨跌幅、PE、PB、ROE、ROA)、动量指标(KDJ、RSI、MACD)、趋势均线(MA、EMA、BOLL)、量能指标、价格结构(连阳连阴、前低/次低结构、N字结构)等。用户可通过图形化页面配置规则,构建自定义股票池。

  • Step 2:权重配置
    对股票池内的个股进行评分排序,计算信号强度与优先级。

  • Step 3:股池预览
    预览筛选出的个股走势图,验证是否符合技术面预期,并可调整权重以优化信号强度。

  • Step 4:模拟仓位与风控配置
    设定模拟仓的仓位规则、建仓逻辑(T 日选股,T+1 日按开盘价与交易滑点买入)以及风控卖出规则。

  • Step 5:策略业绩回测
    对制定的选股规则与调仓规则进行历史行情验证,计算组合净值并输出评价指标。

  • Step 6:策略创建与跟踪
    若回测业绩理想,可创建策略组合进行持续跟踪。看板提供 T 日买入信号缩略信息,详情页展示模拟建仓后的业绩走势、评价指标、仓位信息、调仓记录及模拟交割单。

数据资产管理

项目数据流向如下:

  1. 采集层:使用 asyncio 协程爬虫采集数据,写入 Parquet 文件后上传至 rustfs 文件系统。
  2. 存储层:将 rustfs 中的分区数据同步到 ClickHouse 数据库的 raw 层。
  3. 转换层:通过 dbt 模型进行分层转换:raw 源层 → stg 层字段清洗 → int 层可复用模型抽象 → mart 层应用数据集市。
  4. 计算层:由于 ClickHouse SQL 在时序计算(如 EMA 等滑动平均)表现不足,增加一个由 Rust 编写的计算引擎(calc 层),专门处理时序指标。
  5. 调度层:由 Dagster 框架统一整合上述调度流程,并生成数据资产血缘图。

开发过程与 harness-engineering

项目的全部代码由 codex + gpt5.5 组合完成。工作台业务仅占总工作量的一小部分,大部分“脏活”集中在数据采集、加工、计算与调度。作者为项目定制了 harness 方案(未使用 superpower 或其他现成工具,也未启用 codex 的记忆能力),以 AGENTS.md 作为文档地图入口,并在项目根目录下的 dos 目录存放完整的实施记录(规划、设计、实施、验收的人机交互过程)。理论上,只要有足够 token 和同等能力的模型,可根据 dos 重建整个代码库。

项目共执行了 76 次 goal 命令,每次耗时 45–120 分钟,累计实施工时约 120 小时(不到 10 天,不含作者的设计与思考时间)。

工作流

  1. 作者与 codex 讨论概要设计,草案记录在文档地图的 rfc 目录。
  2. 通过的草案生成执行计划 plan,后续通过 goal 命令全权交由 codex 执行。
  3. 作者负责验收,codex 在 report 目录提供证据链(数据特征报告、后端接口测试日志、前端浏览器截图等)。
  4. 所有可能产生“心智负担”的工作(如数据回填、API 格式测试、模型字段维护等)被抽象为 skill,存放在仓库 .agents/skills 目录下,通过软链接加载。辅助任务(worktree 合并、前端 debug 工具、截图管理、版本管理等)也维护为 skill。

前端设计

采用低饱和度、克制的线条风格,UI 符合用户操作直觉,通过分散信息密度降低“AI 味”。设计流程从“绘制”转变为“摆放”:

  1. 用线框图(Markdown 文本)表达信息布局,快速调整页面排布与比例。
  2. 创建 Vite + shadcn/ui 组件库的简易工程作为快速原型库,封装业务组件。
  3. 指挥 codex 将业务组件按线框图布局进行摆放,降低设计精力消耗。

实践中的缺陷

  • 代码品味差:76 次 goal 产生的信息堆叠导致代码可读性差。
  • 强依赖特定模型组合:仅 codex + gpt5.5 表现稳定;尝试过 opus4.7/4.8、fable、glm5.2、qwen3.7 及 Claude Code 等组合,均不如前者效果(幻觉、信息丢失、不加载 skill 等问题严重)。
  • 过度设计:应用层功能尚显简陋,架构偏重(为验证 harness 方案),增加了运维复杂度与硬件成本。

关键要点

  • Fleur 是一个开源项目,覆盖从数据采集、数据仓库到策略回测与跟踪的全链路。
  • 所有代码均由 codex + gpt5.5 以 harness-engineering 方式生成,作者仅负责设计方向与最终验收。
  • 项目使用 Dagster 调度,ClickHouse 存储,Rust 计算引擎补充时序指标,dbt 进行数据分层转换。
  • 工作流以 AGENTS.md 为入口,dos 目录记录全部交互,goal 命令执行任务,skill 抽象脏活与辅助流程。
  • 前端设计采用“线框图 + 原型库 + 摆放”方法,减少 AI 味。
  • 关键局限:代码可读性低、强依赖特定模型、过度设计。
  • 作者鼓励社区贡献(PR/Issue),并请求 star 支持。

意义与影响

  • 实践验证:Fleur 成功展示了 harness-engineering(纯 AI 驱动)在复杂工程项目中的可能性,为开源社区提供了一种新的开发范式参考。
  • 开源基础设施:项目提供了一套完整的 A 股数据采集、处理与回测工具,降低了个人及小团队进行量化研究的门槛。
  • 方法论输出:作者将“心智负担”抽象为 skill、采用文档地图与证据链验收等实践,为 AI 辅助开发的工作流设计提供了有益案例。
  • 挑战与启示:代码可读性差与模型强依赖问题,揭示了当前 AI 编程在长期任务中的痛点,提示社区需关注模型长程稳定性与技能加载机制的改进。
  • 持续演进:尽管功能尚显简陋,但项目开源的姿态与清晰的架构设计,为后续社区贡献与功能扩展奠定了基础。
查看原文 →linux.do