Jikipedia
Jikipedia量化金融量化分析笔记(Hear7·博客园)金融量化分析学习笔记:从市场基础到经典策略纵览
学习笔记

金融量化分析学习笔记:从市场基础到经典策略纵览

博客园 Hear7(caodneg7)的一份量化分析学习笔记长文。价值在于「全景纵览」:它把一条学习路径串起来——A 股市场基础 → Python 数据工具 → 自建回测框架的思路 → 聚宽平台上的九类经典策略(含完整代码)。素材见 raw/collections/quant-survey-notes/01-金融量化分析-hear7-博客园.md。

量化量化投资经典策略聚宽Python学习笔记

这是什么

一份课程笔记式的量化入门长文,正文分四部分:一、金融与量化投资(股票市场常识 + 量化是什么);二、量化投资与 Python(IPython / NumPy / pandas / Matplotlib 工具教程);三、实现简单的量化框架(自建回测要哪些零件);四、在线平台与量化投资(聚宽 JoinQuant 平台 + 双均线/小市值/均值回归/布林带/PEG/羊驼/海龟/鳄鱼等经典策略的完整聚宽代码)。它的多数策略与本站量化课堂同源,但这份笔记胜在「一份文件纵览全部 + 代码最完整」。

核心要点

第一部分:A 股市场与量化基础

  • 股票是股份公司发给出资人的凭证,持有者即股东。面值是票面金额,市值是市场价值。IPO = 公司经交易所公开向社会增发股票募资。股票的用途:出资证明/股东身份/参与经营意见 + 分红与交易获利。
  • 股票分类按业绩:蓝筹股(资本雄厚、信誉优良)、绩优股(业绩优良)、ST 股(特别处理:连续两年亏损或每股净资产低于股票面值)。
  • 按上市地:A 股(大陆,人民币,T+1、涨跌幅 10%)、B 股(大陆,外币,原文标 T+1、T+3,未展开)、H 股(香港,T+0、不设涨跌幅)、N 股(纽约)、S 股(新加坡)。
  • 市场构成:上市公司、投资者(含机构)、证监会/证券业协会/交易所、证券中介。交易所:上交所只有一个主板(沪指);深交所有主板(深成指)、中小板、创业板。
  • 影响股价的六类因素:公司自身(基本面最根本)、行业、市场(大户操纵/投机等)、心理(情绪与从众)、经济(周期/财政/汇率)、政治。
  • A 股交易规则:个人须在券商开户委托;交易日周一至周五;时段为 9:15–9:25 开盘集合竞价、9:30–11:30 前市连续竞价、13:00–15:00 后市连续竞价、14:57–15:00 深交所收盘集合竞价;T+1(买入次日才能卖);涨跌停。
  • 金融分析两派:基本面(宏观财政货币 → 行业 → 公司财务业绩)与技术面(K 线、MA、KDJ、MACD 等指标)。
  • 量化投资 = 用计算机技术 + 数学模型去实践投资理念、实现投资策略。四点优势:避开主观情绪/人性弱点/认知偏差更客观;能同时多角度、多层次观察;及时跟踪市场发现新统计模型找机会;决策前能用回测验证效果。
  • 量化策略核心内容四件:选股、择时、仓位管理、止盈止损。生命周期五步:产生想法/学知识 → 用 Python 实现 → 回测/模拟交易检验 → 实盘 → 优化或放弃。

第二部分:Python 工具链

  • 为什么选 Python:相对 Excel、SAS/SPSS、R。三条使用路线:自己写(NumPy+pandas+Matplotlib…)、在线平台(聚宽、优矿、米筐、Quantopian)、开源框架(RQAlpha、QUANTAXIS)。
  • IPython:交互式命令行。要点:TAB 自动补全、? 内省、! 执行系统命令、%run/%paste/%cpaste、魔术命令(%timeit%pdb 等)、命令历史、输入输出变量(__2_i2)、%bookmark 目录书签、Notebook。
  • NumPy:高性能科学计算基础包,pandas 建在它上面。核心是 ndarray 多维数组;特性:元素同型、无需循环的整组运算、读写磁盘、线性代数/随机数/傅里叶、可接 C/C++。
  • pandas:数据分析包,基于 NumPy。两大结构 Series(带标签一维)与 DataFrame(表格,可看作共用索引的 Series 字典);集成时间序列;灵活处理缺失数据。
  • Matplotlib:绘图可视化。plot 的线型/点型/颜色、title/xlabel/ylabel、hist、figure 画布 + subplot 子图 + subplots_adjust 调间距。

第三部分:自建量化框架要哪些零件

  • 七个零件:开始/结束时间、现金与持仓数据 → 获取历史数据 → 交易函数 → 计算并绘制收益曲线 → 回测主体框架 → 计算各项指标 → 留给用户写:初始化函数与每日处理函数。这一节说明:一个最小回测框架 = 数据 + 撮合 + 记账 + 指标,用户只需填「策略逻辑」。

第四部分:聚宽平台与九类经典策略

  • JoinQuant 主要框架:initialize(初始化)+ handle_data(每个周期调用);取历史数据、交易函数、按天/按分钟回测、风险指标。多篇代码共用一套成本设置模板:OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5)
  • 双均线(单股版):对 601318.XSHG,5 日与 60 日均线金叉全仓买入、死叉清仓(attribute_history 取收价、order_value/order_target)。均线周期分类:5/10 日短线、30/60 日中期(季线)、120/240 日长期(年线)。
  • 小市值(因子选股):沪深 300 池,每 30 日 get_fundamentals(query(valuation)...) 取市值字段、排序取最小 N=10 只,卖出不在名单的、等分现金买入新进名单的。
  • 多因子选股:正文只讲思路(因子 = 增长率/市值/ROE 等标准;选因子最大或最小的 N 只;多因子 = 如何同时考虑多个因子),无独立代码。
  • 均值回归:理论 =「跌下去迟早涨回来」,价格以均线为中心波动。用 30 日均线与当日开盘价算偏离度 (MA−P)/MA,每月(run_monthly)选偏离度最高的 10 只调仓(沪深 300 池)。
  • 布林带(Bollinger Band):中轨 20 日均线 ± N 倍 20 日标准差(N=2)。演示为反着用:价格突破上轨且已持仓则卖出、跌破下轨且空仓则买入——典型的均值回归式布林。
  • PEG 策略:PEG = PE ÷ G ÷ 100(G = 净利润同比增速),越低越可能低估。先过滤 PE 与净利润增速为负的股票(沪深 300 池、30 日调仓、取 PEG 最小 10 只)。字段用聚宽 valuation.pe_ratioindicator.inc_net_profit_year_on_year
  • 羊驼交易法则:随机买入 N=10 只;每 30 日(run_monthly(handle,2))用区间涨幅排序,卖掉涨幅最差的 1 只,再买入池内不在持仓且涨幅居前的一只补位(约 9 成资金)。
  • 海龟交易法则(分钟回测演示):唐奇安通道 20 日高点入市、10 日低点离场;N(ATR 类波动率)用「真实波幅三选一取最大再滚动平均」算;每单位仓位 = 总资产 1% ÷ N;价格比上次买入高 0.5N 加一单位、跌破最后买入价 −2N 止损。单标的演示(000060.XSHE)。
  • 鳄鱼交易法则(注释指到聚宽社区 post 595):用蓝/红/绿三条均线纠缠判定「睡着的鳄鱼」(三条线互相偏离 <2%,近 20 日都要「纠缠」才入选),结合碎形(fractal)突破与 AO/AC 动量指标进出场;风控分三层——大盘 3 日跌 3% 全清、个股累计收益 +30% 止盈、−10% 止损;约每半年重选股票池。

机制 / 论证

  • 为什么量化能避免情绪:人的弱点(追涨杀跌、从众、判断失误)来自主观与心理因素;把规则固定成代码后,决策不经过情绪。这告诉我们:量化的卖点是纪律与可回测,不是预测更准。
  • 为什么策略核心是四件事:选股定「买什么」、择时定「何时买」、仓位管理定「买多少」、止盈止损定「怎么离场」——任何策略都落在这四个旋钮上(与本站 量化策略的组成(输入 / 逻辑 / 输出) 一致)。
  • 为什么「回测验证」是量化的关键优势:策略能先在历史数据上检验、模拟交易后再上实盘——这给了「先试错后下注」的能力;但回测本身的偏差问题要另看 QuantStart 方法论。
  • 经典策略的机制各一句话
    • 双均线:短均线上穿长均线=买的人愿出更高价(强势),反之弱势。
    • 小市值/因子:用一条可量化标准(市值最小)选出市场冷落的股票,赌它被纠偏。
    • 均值回归:价格围绕均线波动,偏离越多越可能弹回(反趋势)。
    • 布林带:价格突破统计带(均线 ± Nσ)就是超买/超卖信号。
    • PEG:把「贵不贵」和「长得快不快」压成一个数,越低越像被低估的成长股。
    • 羊驼:趋势的朴素赌注——卖掉表现差的,留表现好的(动量端)+ 随机换入(分散端)。
    • 海龟:趋势跟踪 + 波动率仓位——突破进场、用 N 控每笔风险(单笔约 1%)。
    • 鳄鱼:均线纠缠=蓄势(鳄鱼睡觉),突破+动量确认=启动(鳄鱼张嘴),吃趋势的一段。

可操作

  • 本页代码是全批最完整的聚宽示例;不重贴代码,把关键 API 与参数提炼如下(均来自 raw 各策略代码块):
    • 全局模板:set_benchmark('000300.XSHG')set_option('use_real_price', True)set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
    • 入口:initialize(context) 一次;handle_data(context, data) 每日/每周期;before_trading_start(context) 开盘前(海龟用它算当日 N);定时任务用 run_monthly(fn, 1)(每月第 1 个交易日)、run_monthly(handle, 2)
    • 取数:attribute_history(stock, N)(N 日收价均线)、attribute_history(stock, 2, '1d', ('high','low','close'))(多字段)、history(period, field, security_list)get_index_stocks('000300.XSHG')(沪深 300 成分)、get_current_data()[stock].day_open(当日开盘价)。
    • 财务取数:get_fundamentals(query(valuation).filter(valuation.code.in_(pool))),字段例 valuation.market_cap(市值)、valuation.pe_ratio(PE)、indicator.inc_net_profit_year_on_year(净利润同比)。
    • 下单:order(security, unit)(按股数)、order_value(stock, cash)(按金额)、order_target(stock, 0)(清仓到 0)、order_target_value(stock, 0)(按目标金额清仓)。
    • 状态:context.portfolio.positions(持仓字典)、context.portfolio.available_cash / .cashcontext.portfolio.total_valuecontext.current_dt;用户变量放 g.xxx
  • 策略参数速查表:
    策略股票池调仓/频率关键参数买卖规则
    双均线(单股)601318每日 handle_dataMA5/MA60金叉买、死叉卖
    小市值沪深300每 30 日N=10市值最小 10 只
    均值回归沪深300每月 1 次MA30、10 只偏离度 (MA−P)/MA 最大 10 只
    布林带600036 等每日MA20、±2σ破上轨卖、破下轨买
    PEG沪深300每 30 日N=10、滤负值PEG 最小 10 只
    羊驼沪深300每 30 日N=10、每次换 1 只卖最差 1 只、补涨幅高者
    海龟单标的 000060分钟20 日入/10 日出、0.5N 加仓、2N 止损、unit=1%资产/N突破买、止损离场
    鳄鱼沪深300约半年换池 + 每日 handle三线 <2% 纠缠、AO/AC、止盈 +30%/止损 −10%、大盘 −3%碎形突破 + AO/AC 上行进场
  • Python 工具要点(只列可操作条目):NumPy 创建(array/arange/linspace/zeros/ones/empty/eye)、切片是视图需 copy()、布尔索引 a[a>5]&/| 组合条件、ufunc 与统计方法(sum/mean/std/min/max/argmin);pandas 的 loc(标签)/iloc(下标)区分、索引对齐、NaN 处理(dropna/fillna/isnull)、pd.to_datetime/date_range、read_csv/to_csv 参数;IPython 魔术命令与 %run

与量化课堂同源对照

本篇多数策略在聚宽量化课堂有对应专篇:本篇是入门纵览(带完整代码),量化课堂页是系统深度版。逐策略对应:

术语

  • 蓝筹 / 绩优 / ST:按业绩分的股票类别;ST = 连续两年亏损或每股净资产低于面值(以当时规则为准)。
  • A/B/H/N/S 股:按上市地与币种分的股票。
  • T+1 / T+0:买入后第几个交易日才能卖出。
  • 集合竞价 / 连续竞价:开盘、收盘时段的撮合方式。
  • 涨跌停:单日价格波动上限(A 股 10%)。
  • K 线、MA、KDJ、MACD:常用技术指标。
  • 量化投资:计算机 + 数学模型执行投资理念。
  • 因子:一条可量化的选股/择时标准(增长率、市值、ROE…)。
  • 金叉 / 死叉:短均线上穿/下穿长均线。
  • 唐奇安通道:前 N 日最高/最低价构成的通道(海龟用)。
  • N 值 / Unit:海龟的波动率度量与标准仓位单位(单笔风险≈总资产 1%)。
  • 偏离度 (MA−P)/MA:价格相对均线的超跌/超涨程度。
  • 布林带:均线 ± N 倍标准差的价格统计带。
  • PEG:市盈率 ÷ 盈利增长率。
  • 碎形(fractal)、AO、AC:Bill Williams 鳄鱼系统的价格形态与动量指标。
  • 回测 / 模拟交易:历史数据验证 / 实时行情联动的试运行。

不确定 / 待验证

  • 这是博客园个人学习笔记(Hear7/caodneg7,链接约 2018-12 发布),信息是二手整理,非官方文档;部分规则有时代与口径风险:B 股「T+1 交易、T+3 交收」、ST 定义、涨跌幅等应以现行交易所规则为准 [需要验证]。
  • 代码带时代痕迹:多处 print x(Python 2 写法)、df.sort(columns=...)(旧 pandas 写法)、print g.buy_stock——代码只作学习示意,落地以聚宽现行官方 API 为准 [需要验证]。
  • 「动量策略」「反转策略」「小市值策略」在正文只出现在策略清单里,没有独立小节(小市值由因子选股代码承担)——本篇实际展开的是列出的八段代码策略。
  • 各策略无回测收益数字、无基准与区间,无法评价好坏;鳄鱼法则来源只给聚宽社区链接(post 595),非原作者署名确认。
  • 与本站更系统的同主题页(量化课堂、聚宽入门)相比,本篇属入门纵览;有出入处以量化课堂/官方文档为准。

相关

更新 2026-09-06

检索知识库

按标题、类型或正文检索