三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

【量化投资从入门到精通 #01】量化投资到底是个啥?把我觉得要涨变成一条能跑的规则

【量化投资从入门到精通 #01】量化投资到底是个啥?把我觉得要涨变成一条能跑的规则

📚 本系列进度:#01 ✅(本篇 · 认知框架开篇) · #02–#04 ⏳ 规划中 · #03 🔧(由旧版重构) · #14 🔧(工具箱附录,由旧 #01 SDK 降级并入)

系列定位:站在讲解量化投资的角度,把具体实操方法讲清楚;代码与数据只作为"演示这个方法"的工具,用到时才顺手带出。


一、这个方法解决什么投资问题

很多人对"量化投资"的想象是:写一堆代码、跑出一堆曲线、然后躺着赚钱。

真实情况没那么玄,也没那么难。量化投资干的第一件事,特别朴素:把你脑子里那句"我觉得某某要涨",翻译成一条计算机能执行、能重复、不带情绪的规则。

  • "我觉得今天活跃的票有意思" → 规则:成交额 > 10 亿 且 振幅 > 1%
  • "我觉得连涨的股票还能跟" → 规则:连续 3 日收盘价递增
  • "我觉得跌破均线该撤" → 规则:收盘价 < 20 日均线

一旦写成规则,神奇的事发生了:它明天能原样再跑、换一只股票能跑、十年历史数据也能跑。可重复、可验证、可改进——这才是量化和"凭感觉"的根本分野。本篇就用一组真实行情,把这件事跑给你看。

二、核心思想:规则代替感觉,三步就够

任何一条量化规则,都拆成三步:

  1. 定义 universe(股票池):你要从哪些票里挑?今天先用一篮子有代表性的大票做演示。
  2. 写条件(规则):把"有看点"翻译成可计算的条件。注意——先别预判涨跌,只描述"活跃"。
  3. 执行 + 看结果:让数据跑一遍,规则挡掉不符合的,留下符合的。

规则的好处不在"多准",而在透明:它为什么选、为什么不选,白纸黑字写在代码里。你复盘时改一个阈值,就能看到结果怎么变——这是感觉永远给不了你的。

三、实操演示:用真实行情跑一遍

我们取一篮子代表性股票(宽基 / 行业龙头,仅作演示、不构成任何推荐),用麦蕊的批量行情接口一次拿到它们的实时快照,再应用上面那条"活跃股"规则。

import sys
sys.path.insert(0, "Demo/_common")
from mairui_helper import load_licence
from mairui import Client

BASKET = ["600519","000858","601318","600036","000001",
"300750","002594","600276","601012","600900",
"000333","600030","601888","000651","600887"]

CJE_GT = 10e8 # 成交额 > 10 亿(有资金参与)
ZF_GT = 1.0 # 振幅 > 1%(今天有波动)

mc = Client(load_licence())
items = mc.stock_ssjy_more(",".join(BASKET)) # 一次批量调用,≤20 只逗号分隔

hits = [it for it in items
if (it.get("cje") or 0) > CJE_GT
and (it.get("zf") or 0) > ZF_GT]
hits.sort(key=lambda x: x.get("cje", 0), reverse=True)

证书红线:真实麦蕊证书通过环境变量 MAIRUI_LICENCE 注入,脚本只调用 load_licence() 读取、绝不打印原文。上面代码在你本地配好证书即可运行。

四、结果解读:规则跑出了什么

实跑(2026-08-06 盘中)结果:15 只里 8 只命中,其余 7 只被规则挡在门外。

代码 名称 现价 涨跌幅% 振幅% 成交额(亿)
300750 - 387.87 -4.28 5.65 109.66
600276 - 52.90 -1.20 2.30 25.20
601318 - 53.21 -1.50 1.94 20.67
002594 - 89.65 -1.29 1.82 19.40
000858 - 74.42 -1.43 1.99 18.31
600519 - 1303.86 -0.20 1.10 16.60
600036 - 38.57 -0.95 1.64 15.71
601888 - 55.51 -1.56 2.36 11.94

这个结果在说什么量化道理?

  • 规则是"筛子"不是"预言":当天样本普跌(涨跌幅多为负),但规则没预判方向,只筛"活跃 + 有波动"。它告诉你"这些票今天有人玩、有波动",至于涨跌,是另一件事——别把"活跃"误读成"会涨"。
  • 可重复才有意义:同样的规则,明天、下个月、换一篮子票,跑出来的都是同一套逻辑的结果。你今天看到的是"8/15",改天可能是"3/15"——变化的是市场,不变的是你的方法。
  • 阈值即观点:为什么是 10 亿不是 5 亿?为什么是振幅 1% 不是 2%?每个数字都是你对"活跃"的定义。量化不消灭主观判断,它只是把主观判断暴露出来、变得可检验。

五、常见陷阱

  • 把"活跃"当"会涨":流动性/波动筛选≠方向判断。真要判方向,得在规则里显式写涨跌条件(见下篇双均线)。
  • 字段看错:麦蕊批量接口里 zf 是振幅%、pc 才是涨跌幅%——初版我误写成"涨跌幅>0 且 成交额>20亿",结果当天大盘普跌直接返回 0 命中,后来才纠正。对字段含义拿不准,先打一条样本核对。
  • 过度拟合规则:别为了"选出某只牛股"反推阈值。规则要对未来、对未知数据也说得通,才算数(过拟合我们到第 #04 专讲)。

六、小结 + 下篇预告

本篇你带走一个核心认知:量化投资 = 把投资想法写成可执行的规则,再用数据客观地跑。它不神秘,也不承诺暴富,它只是把"感觉"换成"可检验的方法"。

下一篇 #02 你的第一个量化策略:双均线金叉,我们不再只"筛"——而是写一条带买卖动作的规则(短期均线上穿长期均线就买入),并用麦蕊的真实历史 K 线,回测它在过去一段日子里到底赚没赚、赚多少。你会第一次看到:一个策略的"历史成绩"是怎么被算出来的。

七、合规收尾

本文所有代码与数据仅用于量化方法演示,文中涉及的股票代码均为示例篮子、不构成任何投资建议,亦不构成收益承诺。投资有风险,决策需谨慎。

数据来源:麦蕊行情 API(stock_ssjy_more 批量实时行情)。证书以环境变量 MAIRUI_LICENCE 安全注入,绝不硬编码或外泄。

← 返回列表