惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
P
Privacy & Cybersecurity Law Blog
P
Proofpoint News Feed
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
C
Cybersecurity and Infrastructure Security Agency CISA
Know Your Adversary
Know Your Adversary
C
Cyber Attacks, Cyber Crime and Cyber Security
爱范儿
爱范儿
M
MIT News - Artificial intelligence
V
Vulnerabilities – Threatpost
F
Fortinet All Blogs
月光博客
月光博客
Simon Willison's Weblog
Simon Willison's Weblog
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
Spread Privacy
Spread Privacy
P
Proofpoint News Feed
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
Y
Y Combinator Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Tor Project blog
T
Troy Hunt's Blog
Latest news
Latest news
N
Netflix TechBlog - Medium
Vercel News
Vercel News
Stack Overflow Blog
Stack Overflow Blog
Project Zero
Project Zero
N
News and Events Feed by Topic
F
Full Disclosure
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CERT Recently Published Vulnerability Notes
H
Hacker News: Front Page
C
Cisco Blogs
I
Intezer
P
Privacy International News Feed
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
Last Week in AI
Last Week in AI
Scott Helme
Scott Helme
B
Blog
博客园_首页
MyScale Blog
MyScale Blog
Cloudbric
Cloudbric

股票

为什么市场真是每天都有要学的东西 - V2EX 兄弟们,远离 A 股! - V2EX 感觉近期美股科技一时半会好不起来,把我的 QQQ 和 VOO 转仓买点 XQQI 怎么样? - V2EX 7 月 10 日 16 倍做多海力士,今天下午 15 点爆仓 - V2EX 麻了 - V2EX 实际上发现大多人 A 股赚不到钱都是割肉造成的 - V2EX A 股科技,什么时候可以正常化啊,现在天天无差别攻击。 - V2EX [股票] 长鑫存储, 7 月 16 日可以开始申购 把钱还我,我不玩了 - V2EX 一次勇敢换来一生自闭 - V2EX 参考 AI 的指导,我开始买老登股 - V2EX 今天科技是倒车接人还是最后的跑路机会? - V2EX 做了个分享股票的公众号,求关注 - V2EX 新加坡 OCBC 开通投资账户有什么注意事项 - V2EX 买美股一年了 为什么还是赚不到钱 - V2EX 生平第一次拿住翻倍的股票 - V2EX 智谱股票相较于 7 天前又翻了一倍,相当于两个小米了 - V2EX 优化大小盘择时与冷暖全天候量化策略 - V2EX 大家做交易下单的时候会刻意选个吉利数字吗? - V2EX 美伊和解,双方达成谅解备忘录,川普会不会毁约导致美股地震? - V2EX 6.18 美股会暴跌嘛 - V2EX SpaceX 这个市值合理吗? - V2EX GLM 智谱股票今天大涨 40% - V2EX 因子挖掘的一些思考:从模糊的感知到可交易信号的量化 小米股票竟然掉到了 26,雷总你快支棱起来啊😭 我把 16 条实战血汗语录,写成了量化策略 大佬们,今天加仓吗,还是在观望下 美股要回调了,还能相信光吗 SpaceX 要 IPO 了,买不了美股,买不了港股,还能买点有相关性的 A 股? 开发了一个在线看盘工具, 类似同花顺的板块同列,同时查看多个板块的股票实时股价,复盘/找机会用 从 30 倍到 47 倍:给小市值装上 ETF 引擎后 上了恒顺醋业的当了 玩美股的 xd,到年底$DRAM 能看到 100 么 V2EX 从一个小白的视角,拆解一套 5 年 30 倍的小市值策略 近 4 个月狂揽 62%!六年 11 倍 ETF 双池动量轮动 今年炒股,老登玩法不适合 盈透还稳吗?要不要备份一个其他券商 玩美股的兄弟们,现在应对策略是什么 买美股的路要被彻底堵死了,富途老虎长桥被重罚,大陆存量客户只准卖不准买,怎么办 老虎、富途、长桥将被罚 2 年集中整治如何影响跨境炒股投资者 最激进的 FOF,回撤反而最小? 昨天的都回来了吧 没有人讨论今天的股市 5.21 0520 明天大 A 大反攻 纠结买 17 还是 17pm,两天跌了 30 多个 17pm 最近在关注美股半导体三倍做空...三倍亏钱还是三倍赚钱... 别找交易圣杯了!实战派多策略 FOF 无法接受自己的错误 怎么得到好的量化策略?我试了这些方式 股票行情 AI 分析站点的制作方式 ibkr 中要求再提供一份三个月的海外地址证明 买了 BYD 电子,等苹果今年发新产品带飞 小米股票跌倒 29 了,快补仓 牛还在 香港券商选择? 昨天我清仓了一个账号 小白求问,既然巴菲特厉害,为啥不直接抄作业买伯克希尔的股票呢? 私募量化能买吗? 今天还敢抄底大 A 吗? 自学 3 个月量化,年化 565%、直接赚 1000 多万,量化这么牛逼吗? AI 做的股票/行情分析网站,大家看看怎么样? 尝试使用同花顺问财 AI 分析股票 0 元成本:我用 GitHub Actions 搭建了一套 A 股每日量化预测系统 股市探讨:关于大宗商品传导链条 我的选股(本期更新主要增加了对医疗医药的关注) - V2EX 3-4 A 股收评 明天要不要全仓石油股票? 2026 年 2 月股票薅羊毛总结(第六期)附笨蛋炒股原则 用 ai 做了个分析股票的网页 go/etf 求友情链接 衡水模式为什么刹车? - V2EX 你们选择持股过节还是持币过节? - V2EX 普通人,现价购买 1w 股长江电力,然后分红复投长持怎么样? 每个月买 200 股小米股票,行吗? 终于回本了 又赚了 2 个,累了想抛了 2026 年 1 月股票薅羊毛总结(第五期) ETF 加仓榜 - 今天出现新高 一个星期,我在赌场赢了 10 个,我承认我就是一个赌徒 今天上班路上路上骑车,看见前面有个小伙子一边骑,一只眼瞟着前面的手机在盯盘,现在离“大妈时刻”还有多远? 兄弟们。你们吃肉了吗?白银有色翻了 12 倍,铜陵有色 4 天 3 个涨停板 创建了一个‘小散户的日常’欢迎大家分享 大家炒股用什么软件多一些呀 有 ZA Bank 众安银行的小伙伴一起拼团减免手续费不?我自己的企业域名邮箱 股市交易者收盘后的复盘,才是专业玩家与散户真正拉开差距的“黄金时间”,对吗? [超跌反弹战法] lxjm 已出 [超跌反弹战法] 记录 1 万块做到 10 万 一个炒股难题,不知道该如何解决 一顿饭大 A 直接退烧 牛市的道理 2026.1.13 复盘 - [今天跌麻了啊] 零基础,怎么学习投资理财,路径应该怎么规划? 牛市才刚开始,至少还会继续涨 股票航天主题都涨疯了, 凭什么, A 股不需要依据吗 最近的 A 股让我感到陌生,真洗心革面啦? 对 A 股最大的误解: A 股是垃圾市场、割韭菜市场 问下朋友们,比如我想通过热点分析股票情况,看重哪些点
6 步选股 4 个坑 5 年 14 倍:"菜场大妈"策略拆解优化实录 - V2EX
hxj20061987 · 2026-06-15 · via 股票

一、开篇:我,被大妈教育了

最近在聚宽社区翻到一个叫"菜场大妈"的策略,名字接地气,回测成绩还挺能打。今天来拆解一下它的核心逻辑,顺便做点优化。

花了不少时间研究量化,看文章、调参数、研究各种多因子模型,每天盯着 Alpha 信号、因子暴露、信息比率……然后呢?

年化跑不赢沪深 300 。

有一天我妈跟我说,她闺蜜在菜场摆摊,顺手买了几只"便宜的、但公司还在赚钱的"小股票放着,几年下来收益还挺好。

我当场沉默了三分钟。


大妈炒股的逻辑,其实就三条:

  1. 便宜——贵的我买不起,也不放心
  2. 有肉——不能是只讲故事的空壳子,得有真收入
  3. ——大公司牛人多,哪轮到我捡漏

听起来很土?但这三条,其实就是"小市值低价策略"的核心逻辑。


二、大妈的选菜秘籍

整个策略的核心思路,可以用一套"去菜场买菜"来解释。

第一步:扔掉烂菜叶子(基础过滤)

大妈第一眼看菜,先排除烂掉的、发霉的、一看就没法吃的

股票里的"烂菜叶子"就是:

  • ST 股票:名字前面贴了黄色标签,绝对不碰,看着便宜,全是坑
  • 退市边缘股:名字里带"退"的,大妈直接转身走人
  • 停牌股:菜摊今天关门,你掏钱也买不到
# 过滤 ST 及其他具有退市标签的股票
def filter_st_stock(stock_list):
    current_data = get_current_data()
    return [stock for stock in stock_list
            if not current_data[stock].is_st           # 不是 ST
            and 'ST' not in current_data[stock].name   # 名字里没有 ST
            and '*' not in current_data[stock].name    # 没有星号(*ST )
            and '退' not in current_data[stock].name]  # 没有退字

另外,科创板和北交所也不去——大妈不去高档精品超市,她就逛老菜市场,接地气,看得懂,买得放心。

# 过滤科创北交股票
def filter_kcbj_stock(stock_list):
    for stock in stock_list[:]:
        if stock[0] == '4' or stock[0] == '8' or stock[:2] == '68' \
           or stock[:3] == '300' or stock[:3] == '301':
            stock_list.remove(stock)
    return stock_list

第二步:检查有没有肉(基本面防雷)

光便宜不行,还得有真材实料

大妈挑肉的标准很简单:

  • 净利润必须大于 0——不赚钱的公司,买它干什么?
  • 营业收入大于 1 亿——连 1 个"小目标"都没有,别浪费咱的买菜钱
q = query(
    valuation.code,
    valuation.market_cap,
    income.np_parent_company_owners,  # 归母净利润
    income.net_profit,                # 净利润
    income.operating_revenue          # 营业收入
).filter(
    valuation.code.in_(stocks),
    valuation.market_cap.between(g.min_mv, g.max_mv),   # 市值区间
    income.np_parent_company_owners > 0,                 # 有真肉
    income.net_profit > 0,                               # 净利润也得正
    income.operating_revenue > 1e8                       # 营收过亿才算数
).order_by(valuation.market_cap.asc())                   # 市值从小到大排

这个筛选直接干掉了绝大多数"讲故事的仙股"。


第三步:大妈的极简审美——10 块以下才考虑

这是大妈最硬核的原则:

超过 10 块钱的菜,太金贵,不买。

# 过滤股价高于 10 元的股票
def filter_highprice_stock(context, stock_list):
    last_prices = history(1, unit='1m', field='close', security_list=stock_list)
    return [stock for stock in stock_list
            if stock in context.portfolio.positions.keys()
            or last_prices[stock][-1] <10]

原版策略过滤的是 9 元以上,我稍微放宽到 10 元——毕竟通货膨胀嘛,大妈也得跟上时代。


第四步:专挑边角料——市值最小的 4 只

经过前面三轮筛选,剩下的候选菜已经都是"便宜有肉的好货"了。

接下来怎么选?按市值从小到大排,挑最"边角料"的 4 只。

捡漏心理:专挑摊位最边角没人注意的那几样,够小、够便宜、胜在没人哄抬价格。

目标市值区间:10 亿到 100 亿之间(不能太小,太小容易跑路;不能太大,太大轮不到散户吃肉)。

g.stock_num = 4       # 最多买 4 只
g.min_mv = 10         # 最小市值 10 亿
g.max_mv = 1e8        # 最大市值 1000 亿(写法是万亿单位,实为 100 亿)

第五步:隔夜馊了,赶紧处理(卖出逻辑)

大妈有一条铁律:隔夜的菜不留。

这里对应的是"昨日涨停股"的处理:

这只股票昨天表现亮眼,涨停了!大妈开心,夸它新鲜。 今天一看,没连板,价格缩回来了。 大妈立刻:**"隔夜的,赶紧处理,换新鲜的来。"**

def check_limit_up(context):
    current_data = get_current_data()
    if g.high_limit_list:
        for stock in g.high_limit_list:         # 昨天涨停的票
            if current_data[stock].last_price \
               <current_data[stock].high_limit:  # 今天没继续涨停
                order_target(stock, 0)            # 清仓
                g.just_sold.append(stock)         # 记录已卖,不二次买入
    # 卖了之后,如果持仓不够,再候补买入
    position_count = len(context.portfolio.positions)
    if g.stock_num > position_count and position_count != 0:
        my_Trader(context)
        psize = context.portfolio.available_cash / (g.stock_num - position_count)
        for s in g.choice:
            if s not in context.portfolio.positions and s not in g.just_sold:
                order_value(s, psize)
                if len(context.portfolio.positions) == g.stock_num:
                    break

注意先卖后买,这是个细节优化——原版是先买后卖,导致卖掉的票要隔天才能补仓,白白空仓一天。


第六步:一周去一次菜场(换仓节奏)

大妈不每天去菜场,那太累了。她每周一早上进一次城,买够就回家

run_weekly(my_Trader, 1, time='13:50')  # 每周第 1 个交易日,13:50 选股
run_weekly(go_Trader, 1, time='14:00')  # 每周第 1 个交易日,14:00 下单

每周换一次仓,频率不算高,也省手续费。大妈的核心竞争力之一,就是不天天折腾


三、翻车现场实录——代码比菜还难伺候

写策略的过程,踩了不少坑,挑几个有代表性的跟大家分享。

坑一:滑点是隐形摊位费

刚开始没设滑点,回测数据漂亮得一塌糊涂。

等我加上 FixedSlippage(0.02) 和真实手续费之后,收益率肉眼可见地往下掉。

set_slippage(FixedSlippage(0.02))
set_order_cost(OrderCost(
    close_tax=0.001,            # 印花税 0.1%(卖出才收)
    open_commission=0.0001,     # 买入佣金 0.01%
    close_commission=0.0005,    # 卖出佣金 0.05%
    min_commission=0.1          # 最低 5 毛
), type='stock')

这就是菜场的"摊位费":你看着菜很便宜,结果各种税费加起来,利润被切走一大块。

结论:纸面富贵不算数,扣完成本才是真收益。


坑二:提前钦定几只 ETF ,曲线漂亮到怀疑人生——这叫上帝视角,不叫量化

这个坑不是代码 bug ,是人的 bug 。

接手这个策略的时候,它已经配了一段"组合配置"的逻辑——在小市值股票之外,还额外指定了几只 ETF:

黄金 ETF( 518880 )、纳斯达克 ETF( 513100 )、芯片 ETF( 159995 )……

配置理由写得头头是道:分散化、降回撤、对冲 A 股风险……

一跑回测:2016 年到 2025 年,年化亮瞎眼,曲线好看得像 PPT 配图。

我当时觉得自己是天才。

然后仔细一看,冷汗下来了——

这几只 ETF 是谁选的?按什么选的?

黄金,2024 年大涨;纳斯达克,2023 年翻倍反弹;芯片,也有过自己的高光时刻……

这些都是已经发生的历史。策略里写死了"就买这几只",然后用历史回测来"验证"它们表现好——

这不是量化,这是开卷考试然后说自己考满分


把这几只硬编码的 ETF 全部剔除之后,换成动态筛选的逻辑——

收益率啪啪往下掉。

曲线一下子瘦了一大圈,以前那段"漂亮区间"直接垮掉一半。

这就是过拟合的最朴素版本:用上帝视角挑菜,当然买的全是好菜。但你在真实菜场里没有上帝视角,前一天猪肉涨价了你也不知道。

结论:回测数据越漂亮,越要多问一句"为什么"——是策略真的好,还是你亲手喂了它正确答案?


坑三:9:30 下单,大妈两手空空

这个坑藏得很深,或者说——回测系统藏得太好了

策略里有一段逻辑,要在 9:30 开盘第一分钟执行买卖:

run_daily(check_limit_up, time='9:30')

理论上完全合理——越早下单越好,抢先手嘛。

回测跑下来,成交记录里也都有,数据漂漂亮亮。

但如果一上 SHIPAN ,就尴尬了。

9:30 开盘的第一分钟,实际上是集合竞价刚刚结束的瞬间。行情数据还没稳定下发,API 还没完全就绪,大量股票这一秒钟根本拿不到有效的实时价格——

于是下单,要么直接报错,要么以 0 价格挂出去被拒单,总之:两手空空,什么都没买到。

回测里的 9:30 是"模拟的 9:30",数据是现成的,下单当然成功。 ******里的 9:30 是"真实的 9:30",数据还在飞,根本接不住。


改成 9:319:35 之后,下单终于正常了。

但收益往下掉了。

因为策略里有依赖"开盘价"的买卖判断,哪怕晚了 1~5 分钟,成交价就不一样了,有些单子该买的没买上,该卖的滑了点。

看起来只差几分钟,代入收益一算,差距比想象中大。

结论:回测的时间刻度是理想化的,****的第一分钟是混沌的。9:30 下单,在这个系统里就是一个幻觉。**


坑四:大妈不止损,一套套到认命

这是原版策略最让我不安的一个设计——它没有止损。

大妈的哲学是:买来的菜,就算有点蔫,也不扔。泡泡水,明天还能吃。

策略里只有两种卖出情形:

  1. 股票掉出候选池(市值涨太大、财务变差、变 ST 了)
  2. 昨天涨停今天没连板

跌了 10%?不管。跌了 20%?继续拿着。只要它还符合小市值条件,就一直持有。

极端行情一来,这个策略会被套得很难看。2020 年春节后复市那天,我看着日志:

[止损] 002112 三变科技 成本=6.94 现价=5.83 亏损=-16.0%,强制清仓
[止损] 600099 林海股份 成本=6.74 现价=5.65 亏损=-16.2%,强制清仓
[止损] 600493 凤竹纺织 成本=5.67 现价=4.77 亏损=-15.9%,强制清仓

等等,这是我加了止损之后的日志,亏损还是达到了 15%+。

原因很简单:跌停股票卖不掉。

止损单挂出去,市场全是卖盘没有买盘,当天根本成交不了。第二天继续跌停,继续挂单,继续成交不了—— 这就是"跳空"的残酷现实:止损线写的是 8%,真正止损的时候可能已经亏了 15%。

最后加了两个补丁才勉强解决:

  • g.stop_loss_set 记录已发止损单的股票,跌停时静默重试,不重复打日志
  • 止损后的股票本周不再买回,防止刚割肉就被自动补仓
g.stop_loss_ratio = 0.08    # 止损线 8%
g.stop_loss_set = set()     # 已发止损单,跌停未成交则次日重试

结论:止损写进代码只是第一步,跌停穿越才是真正的硬伤。极端行情面前,8%的止损线可能保不住你,但有和没有,差距还是很大。


四、最后说一句

折腾一圈之后,我发现我最初看不上的东西,反而是最难做到的。

量化圈有个通病:喜欢追求复杂。因子越多越好,模型越深越好,参数越精细越好。

但菜场大妈的策略只有三个筛选条件,逻辑三句话说完,参数五个以内,任何人看懂之后都能在脑子里复现一遍。

这就是它最宝贵的地方:逻辑清晰。

你知道它为什么买,你知道它为什么卖,你知道它会在什么情况下亏钱,你不会因为"这个信号我也说不清楚为什么"而在极端行情裂开。


说到稳定性,我的实际体感是这样的:

  • 不会让你一夜暴富——4 只小市值股票,赶上行情好也就是稳稳地跟上指数
  • 也不容易把你打趴下——每周换仓、市值过滤、加了止损,大的单边亏损会被强制截断
  • 回撤控制不完美,极端行情(比如 2020 年春节复市)照样被打,但不会持续失血

这种感觉就像买的不是最贵的全熟牛排,而是一碗好熬的老火靓汤——慢,但真实,喝完不反胃。


当然它有很多问题没解决,还需要继续努力:

  • 没有趋势判断,熊市里也一样买买买
  • 止损是硬止损,碰到跌停排队卖不掉的情况还是会穿越
  • 换仓频率固定,遇到消息面剧变反应慢

回测这么漂亮的策略,拿到全市场里到底能排第几?

我把这个大妈策略丢进了一个叫 9db 智能体交易竞技场 的地方,那里可以上传交割单,跟别人的策略一起按实时收益 PK 排名,跑了才发现,大佬们的有多稳


如果这个策略对你有帮助,点个赞就行。如果你发现了什么 Bug 或者有更好的改法,欢迎评论区指教——毕竟,大妈选菜也需要老街坊互相提醒。