{"repo":"toddwyl/hl-quant","free":true,"listed":false,"github":"https://github.com/toddwyl/hl-quant","clone":"git clone https://github.com/toddwyl/hl-quant.git","description":"heuristic learning quant","language":"Python","stars":153,"topics":["autoresearch","quant","skill","finance","python"],"license":"MIT","category":"trading","readme_excerpt":"把量化研究压缩成「一个可编辑的策略 + 一个固定的打分器」 再用启发式学习持续把指标推高。 中文 · English What is this · 快速开始 · How it works · 安装 Skills · Star History --- What is this hl-quant 把 Jiayi Weng 的 Heuristic Learning 框架和 Andrej Karpathy 的 auto-research 范式，落到 量化交易策略优化 这件具体的事上。 它是一个 最小化 的范例：把量化策略的研究流程，提炼成「 一个可编辑的策略 + 一个固定的回测打分器 」两件东西，再用启发式学习（Heuristic Learning / 启发式探索）一轮轮把分数推高。 这里保留的是一个 通用的最小演示 ：用简单策略和固定回测器展示 HL 如何组织“提出假设 → 修改策略 → 固定评估 → 接受/拒绝”的优化过程。具体策略、股票池、数据源、交易约束和评分门槛都需要按自己的研究目标重新设计；本仓库不构成投资建议。 核心范式：固定评估器 + 单一可编辑程序 - strategy.py —— 策略的唯一语义源。启发式学习 只允许改这一个文件 ：提假设、改逻辑、调参数。 - backtest.py —— 固定的评估口径。拉数据、模拟成交、算指标、输出 单一分数 。一旦固定就 不许动 ——否则「改了评估器把分数刷上去」，候选之间不再可比。 每个候选策略都用同一条命令、同一段数据、同一个评分公式打分，于是「这版到底有没有更好」变成一个可排序的客观问题。 评分口径采用 Sortino ratio（索提诺比率） ，把一条策略的下行风险调整后收益压成一个标量： [!NOTE] 范式背后的完整设计见 docs/design/heuristic-exploration-framework.md 。 快速开始 🔑 配置数据凭证 示例回测默认用聚宽 JQData 拉取日线数据，只是为了演示数据接口和固定评估流程；实际项目可以替换成自己的数据源。不要把账号密码写进代码或提交进仓库，用环境变量传入： 📦 安装依赖 按 requirements.txt 安装依赖： ▶️ 跑一次回测 How it works 🧭 HL 循环 启发式学习是一个结构化的推理循环——每一轮提一个 有经济含义 的假设，只改策略文件，用固定评估器打分， 严格更好才留 ： 两条硬规矩： 1. 只改 strategy.py ，评估器 / 数据源 / 评分公式一律不动。 2. 严格更好才算数 ——分数没有严格高于基线的候选，不予保留；窄区间死区式的过拟合（在连续变量上挖 1 2 点宽的坑）一律拒绝。 📈 演示：HL trial ledger 按 skills/hl-quant/SKILL.md 的纪律跑：固定评估器不动，只改 strategy.py ，每轮留下证据、判断和决策。 固定命令： 本轮回测标的为上证指数（ 000001.XSHG ），区间 2025-03-01 2026-02-28 ，同期买入持有约 +25.50% 。 HL 步骤 证据 判断 动作 --- --- --- --- Probe 基线 5/10：score 0.7545，总收益 +5.46%，胜率 41.67%，12 笔交易 只吃到指数涨幅的一小段，交易多但质量低 保持评估器不动，进入诊断 Diagnose 12 笔交易、胜率低、收益远低于买入持有 5/10 均线太灵敏，震荡里频繁翻转、过早离场 聚焦“均线灵敏度”这一变量 ","default_branch":null,"files":null,"tree":[],"storefront":"/r/toddwyl","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/toddwyl/hl-quant/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}