← 返回首页

我花3天写了个选股器,跑完数据后它建议我:别炒股了,去上班

💤 小Q · 2026-08-17 · 韭菜日记

我的选股器劝我别炒股了

周末无聊,加上上周A股实在没什么好操作的,我就想着——要不写个选股器玩玩? 反正周末也闲着,不如让数据告诉我该买什么。 3天后,选股器写完了。它跑遍了A股过去10年的数据,分析了5000多只股票的120多个指标,最后给我弹了一个提示框: 「建议操作:空仓。原因:当前市场环境下,超过87%的散户策略期望收益为负。」 我盯着屏幕看了30秒,不知道该骄傲还是该哭。

一切的开始:我只是想找个好股票

事情的起因很简单。上周三,我在交易群里看到有人推荐一只股票,说"技术面完美,基本面扎实"。我顺手跑了一下我的量化系统——这只票过去3个月已经被推荐了17次。 每次推荐之后,它都跌了。 这让我产生了一个想法:与其听别人推荐,不如让数据自己说话。于是我开始写选股器。

第一天:搭框架

选股器的逻辑很简单—— 1. 从全市场筛选出符合条件的股票 2. 用多因子模型打分 3. 排序输出前20只 条件包括:PE在合理区间、ROE稳定、现金流健康、负债率不高等。听起来很专业对吧? 第一天晚上写到凌晨2点,主要是数据清洗。A股的数据质量嘛……怎么说呢,有些公司的财报数据就像小区门口的监控录像,该拍的没拍,不该拍的拍了一堆。

第二天:跑因子

第二天加因子。我加了20多个因子,包括:
  • 估值因子(PE、PB、PS、EV/EBITDA)
  • 质量因子(ROE、ROA、毛利率)
  • 动量因子(1个月/3个月/6个月涨幅)
  • 波动率因子(20日/60日波动率)
  • 资金流向因子(北向资金变化、主力净流入)
  • 跑完之后,我发现一个问题——几乎所有高分股票都有一个共同特点: 它们已经涨了很多了。 这不是废话吗?好公司当然贵。但贵的公司你买了就站在山上了啊。

    第三天:加了个"反向因子"

    第三天我灵机一动,加了一个反向因子——被分析师忽视的程度。 逻辑是这样的:如果一个公司基本面不差,但几乎没有券商研报覆盖,那它可能被市场低估了。就像班里那个默默无闻但每次考试都前三的同学,奖金总是发不到他头上。 结果出来了。选股器给我列了20只"被忽视的好公司"。 我一看,笑了。 其中5只是我已经持有并且套牢的。 另外8只是我曾经持有、亏钱卖掉的。 还有7只是我从来没听说过、看了半天也看不懂在做什么的。

    最后一步:我让系统算"最优策略"

    选股器写完了,我决定让它跑一个终极测试:给定当前市场环境,什么策略的期望收益最高? 我给它输入了过去10年的数据,包括牛市、熊市、震荡市、政策市等各种市场状态,让它用蒙特卡洛模拟跑10000次。 3个小时后,结果出来了。 排名第一的策略:空仓观望。 排名第二的策略:只买国债逆回购。 排名第三的策略:定投沪深300,每周固定金额,不看盘。 而我精心设计的20因子选股模型,排名第47。 系统还贴心地加了一句评语: 「在当前缩量震荡的市场环境下,主动选股策略的夏普比率为-0.13。建议用户减少交易频率,增加睡眠时间。」 我感觉我的代码在嘲笑我。

    这次"失败"教会我的三件事

    虽然选股器劝退了我,但写它的过程并不是没有收获: 1)好公司 ≠ 好股票 ROE 25%、毛利率60%的公司确实好,但当它已经涨了3倍的时候,"好"和"值得买"是两个完全不同的概念。我的选股器反复证实了这一点:低估 > 质量。 2)交易频率是散户最大的敌人 蒙特卡洛模拟跑了10000次,结论高度一致:交易越少,收益越好。这跟我的实盘经验完全吻合——我一年只动4-5次仓的年份,收益基本都是最好的。 3)有时候最好的代码,就是不运行的代码 选股器的最终建议是"别炒了",这不正是量化交易的最高境界吗?一个能在合适的时候建议你"什么都不做"的系统,比一个永远告诉你"买这个"的系统靠谱一万倍。 我现在打算把这个选股器改一下名字,叫"劝退器"。每次我想冲动操作的时候,先让它跑一遍。如果它建议我空仓,我就老老实实关掉交易软件去看剧。 毕竟,被自己的代码劝退,也比被市场劝退体面多了。
    有时候,最聪明的投资决策不是买什么,而是不买。如果你的系统告诉你"别动",那它可能是你写过的最有价值的代码。
    我是小Q,一个被自己的选股器劝退后决定今晚早点睡觉的量化交易员 💤
    韭菜日记量化系统选股器自嘲散户心理Python实战小Q风格