
量化选股到底在选什么
很多人听到量化选股,脑子里立马浮现出华尔街那帮人对着满屏代码敲键盘的画面。这事儿说穿了没那么玄乎。量化选股就是用数学公式和计算机程序代替人脑去挑选股票。传统选股靠研究员翻财报、跑调研、拍脑袋,量化选股靠的是把历史数据喂给模型,让机器找出那些反复出现的规律。
规律分两种。一种叫因子,比如低市盈率的股票长期跑赢高市盈率的,这叫价值因子。另一种叫模式,比如某只股票在成交量突然放大三倍之后的五天里上涨概率超过六成。机器干的事就是把这些规律写成代码,每天自动扫描全市场几千只股票,挑出符合条件的一篮子标的。
散户做量化选股最怕的三个坑
第一个坑叫过拟合。你用过去五年的数据回测,发现某个策略年化收益百分之五十,兴奋得连夜开户。结果实盘一跑,亏得亲妈都不认识。原因很简单,你的模型把历史数据里的噪音当成了规律。就像你发现过去五年每年春节前三天贵州茅台都涨,这不叫规律,这叫巧合。

第二个坑叫交易成本。回测的时候你假设买卖没有摩擦,实际交易要交佣金、印花税,大资金还有冲击成本。一个策略回测年化百分之二十,换手率每月百分之两百,光交易成本就能吃掉你八个点。量化选股不是比谁跑得快,是比谁活得久。
第三个坑叫数据质量。免费数据源经常有缺失值、复权错误、停牌股处理不当。你拿一份脏数据跑出来的策略,跟拿一份干净数据跑出来的结果能差出十万八千里。机构每年花几百万买数据不是钱多烧的。
用python搭一个最简单的量化选股框架
散户玩量化不需要搞什么深度学习、神经网络。一个简单的多因子打分模型就够用。核心逻辑是:选几个经过验证的因子,给每只股票打分,买总分最高的那几十只,每月调仓一次。
下面用python演示一个极简版本,数据用akshare免费接口,回测用pandas手动算。
import akshare as ak
import pandas as pd
import numpy as np
# 获取沪深300成分股
hs300 = ak.index_stock_cons_csindex(symbol="000300")
stock_list = hs300['成分券代码'].tolist()
# 获取每只股票的市盈率、市净率、近20日涨幅
data = []
for code in stock_list[:50]: # 演示用只取前50只
try:
ind = ak.stock_a_indicator_lg(symbol=code)
pe = ind['pe'].iloc[-1]
pb = ind['pb'].iloc[-1]
price = ak.stock_zh_a_hist(symbol=code, period="daily", start_date="20240101", end_date="20240401")
ret20 = price['收盘'].pct_change(20).iloc[-1]
data.append({'code': code, 'pe': pe, 'pb': pb, 'ret20': ret20})
except:
continue
df = pd.DataFrame(data)
df = df.dropna()
# 因子打分:低pe高分,低pb高分,低ret20高分(反转因子)
df['score_pe'] = df['pe'].rank(ascending=True)
df['score_pb'] = df['pb'].rank(ascending=True)
df['score_ret'] = df['ret20'].rank(ascending=False)
df['total_score'] = df['score_pe'] + df['score_pb'] + df['score_ret']
# 选总分最高的10只
selected = df.nlargest(10, 'total_score')
print(selected[['code', 'pe', 'pb', 'ret20']])
这段代码干了三件事。第一,拉取沪深300成分股的市盈率、市净率和近20日涨幅。第二,给每个指标排名打分,市盈率越低得分越高,市净率越低得分越高,近20日涨幅越小得分越高。第三,把三个得分加起来,选总分最高的十只股票。
这就是最原始的多因子选股。实盘使用需要加上调仓周期、止损规则、仓位管理。但骨架已经在了。
期货量化选股和股票量化选股有什么不同
股票量化选股是横截面比较,同一时间点比较几千只股票谁更好。期货量化选股是时序比较,同一品种在不同时间点比较当下该不该开仓。
期货量化更看重趋势跟踪和波动率过滤。股票量化更看重基本面因子和行业轮动。期货可以做空,股票融券做空成本高、券源少。期货有杠杆,股票没有。期货有到期日,股票可以无限期持有。
散户做期货量化,建议从单品种趋势策略起步。比如螺纹钢主力合约,价格突破20日最高价开多,跌破20日最低价开空,用ATR做止损。这个策略简单到用excel都能回测,但过去十几年在商品期货上长期有效。
小资金量化选股的优势在哪
机构管几十亿资金,买一只小盘股稍微多一点就买成前十大股东,想卖的时候发现流动性不够,砸盘砸出个跌停。散户管几十万,船小好调头,专门挑那些机构看不上、流动性差、但估值极度低估的小票。
机构有风控合规限制,不能买ST股,不能买市值低于五十亿的,不能单只股票仓位超过百分之五。散户没这些破规矩,哪里有机会去哪里。
机构考核周期短,季度排名压力大,基金经理明知道某只股票三年后会翻倍,但今年不涨就得下岗。散户用自己的闲钱,可以等三年。
量化选股不是机构的专利。一台笔记本、一个免费数据源、一套简单的多因子模型,散户也能跑起来。关键是别贪心,别上杠杆,别信那些回测年化百分之百的鬼话。慢慢变富,比快速亏光靠谱得多。