变得更轻快和高效了。 似乎移除了 opus 的彩虹屁模组,收到你的指令只会默默拆解、高效执行。 而 opus 通常会先大惊小怪地吹捧一下你的英明决策。或者解释一下自己拒不执行的理由。 token 消耗也快了不少,我 17 分钟就蹬了 21%。 感觉 2 小时就可以把五小时限额蹬完。
变得更轻快和高效了。 似乎移除了 opus 的彩虹屁模组,收到你的指令只会默默拆解、高效执行。 而 opus 通常会先大惊小怪地吹捧一下你的英明决策。或者解释一下自己拒不执行的理由。 token 消耗也快了不少,我 17 分钟就蹬了 21%。 感觉 2 小时就可以把五小时限额蹬完。
AIGC多智能体创作系统_架构拆解_2026-06-04.md.zip (5.6 KB) 2 个帖子 - 2 位参与者 阅读完整话题
IT之家 6 月 7 日消息,维修拆解网站 iFixit 近日探访了中国深圳华强北商圈,在这里购入了高仿版 Apple Watch Ultra 3 智能手表、AirPods Max 2 以及 AirPods Pro 3,随后带回工作室进行拆解测试。 iFixit 在视频中介绍,华强北是全球绝大多数电子产品维修配件的集散中心。这里也售卖各类仿冒产品,这类产品外观看似和正品相差无几,但只要仔细查验,或是像本次拆解一样查看内部构造,真假差异便会暴露无遗。 拆解高仿 Apple Watch Ultra 3 工作人员沙赫拉姆 · 穆赫塔里拿起这款高仿手表并进入操作系统后发现,点击表盘上任意应用,设备都只会开启夜间模式,界面会变成红色,完全无法打开对应应用。 他还提到,这款产品的触觉马达手感明显异样;除心率传感器外,其余多数传感器都只是印刷在塑料后壳(正品采用的是陶瓷或蓝宝石材质外壳)上。 IT之家注意到,拆开机身后可以看到,这款仿表搭载 260 毫安时电池,容量还不到正品的一半。电池在表壳内固定松散,仅通过导线焊接在主板上。 拆解高仿 AirPods Max 2 和仿款 Apple Watch Ultra 3 一样,这款高仿头戴耳机拿在手里,就能明显感受到材质、质感与做工和正品存在差距。其外壳为塑料材质,并非正品的铝合金;耳罩软垫也比正品更加松软。 按键的按压反馈手感违和,同时这款仿品不具备主动降噪和通透模式。不过它复刻了正品的入耳检测功能,以及首次配对时的专属弹窗和动画效果。 拆解耳罩腔体时,工作人员无法识别电池型号。拆解过程中,多处焊点粗糙的线材轻易脱落。此外,机身内还加装了数个金属圆柱配重块,目的只是模仿正品的重量手感。 拆解高仿 AirPods Pro 3 三款仿品中,这款第三代 AirPods Pro 仿品的外观还原度最高。工作人员表示,除了接缝处有细微差别,肉眼几乎难以分辨真假。 但二者的内部构造截然不同。尝试取下硅胶耳塞套时,耳机整个前端部件直接连带脱落,还扯断了数根连接线。后续检查发现,耳塞套竟被直接粘在了耳机主体上。 通过 CT 扫描进一步观察,更多破绽浮出水面: 产品未搭载微机电系统麦克风;发声单元做工粗糙,内部结构十分简陋,本该使用柔性排线的位置,只用普通铜丝焊接,这些都是典型的仿品特征。 细看内部结构还能发现,这款山寨耳机腔体设计和初代 AirPods 类似,细小的电路板可以从耳机柄中直接滑出。不出所料,其内部也没有主动降噪麦克风、心率传感器等核心元器件。 最后拆解充电盒可见,内部做工同样粗劣,电池也没有任何规格标识。
世界首富埃隆·马斯克旗下的太空探索技术公司(SpaceX)向投资者展开IPO推介。当地时间6月4日,SpaceX官方发布了一段17分钟的路演视频。SpaceX首席财务官布拉德・约翰逊在视频中梳理了公司的火箭、卫星和人工智能业务等,并重申SpaceX创立初衷是“变革人类发展,推动人类成为多行星物种”。 “我们本质是基建建设方,全球只有本公司在搭建软硬件一体化集成基础设施,为多项业务提供动力支撑。”约翰逊提到。 6月3日,SpaceX公布其首次公开募股的价格为每股135美元,新发行约5.56亿股,共计筹集约750亿美元。公司估值约1.77万亿美元,是有史以来规模最大的IPO。 星舰成本优势“无可比拟” 视频介绍,SpaceX自2002年起步,根基是航天业务,“实现了旁人眼中不可能完成的事,把不可能变为现实”。2008年,SpaceX成为首家自研并发射液体燃料火箭进入轨道的私营企业,产品为猎鹰一号;2012年,其成为首家实现航天器与国际空间站成功对接的私营公司;2015年,全球首次实现火箭箭体从太空动力回收落地;2017年,率先复用一枚轨道级火箭助推器再次发射;2020年,SpaceX又成为首家将航天员送入轨道、飞往国际空间站的私营企业。 如今,SpaceX的复用技术从猎鹰火箭的一子级回收,发展到星舰的全箭复用;猎鹰9运力23吨,重型猎鹰64吨,第三代星舰运力即将达到100吨。 “从火箭复用层面来说,回收技术是破局关键,大幅压低发射成本、抬升发射总量。我们有大批火箭可供发射客户选用,仅去年猎鹰9号就完成165次发射。如今星舰走向全复用。从成本来看,星舰优势无可比拟。”约翰逊说。 除成本优势之外,星舰运力同样大幅提升:猎鹰9、重型猎鹰依次为23吨、64吨,三代星舰即将破百吨,四代星舰处于设计阶段,规划运力再度翻倍至200吨入轨运力。 SpaceX发布的成本测算图表显示,在近地轨道单位载荷发射成本上,1970年至2000年全球航天行业平均成本为每公斤1.85万美元;依托一子级回收复用技术,猎鹰9可将成本降至2700美元/公斤,较历史均值缩减85%,重型猎鹰进一步下探至1400美元/公斤,降幅达92%;至于全箭可复用的星舰,其目标成本降幅则超99%。 卫星方面,视频介绍,星链坐拥全球规模领先的卫星互联网集群,可控机动在轨卫星数量占全球同类总量75%。用户数高速增长,2024年末为440万户,去年增至890万户,今年一季度突破1030万户,业务落地164个国家及地区,覆盖人口超30亿。 称人工智能业务“商业化闭环清晰” 在人工智能业务方面,约翰逊表示,该业务沿用航天、星链的成熟商业模式,依托顶尖发射能力打通全产业链、自研大模型留存全链路收益。 SpaceX建成Colossus超算数据中心,批量搭载英伟达GB200、GB300高端AI芯片,落地全球首座吉瓦级AI训练集群,并配套吉瓦级Megapack储能电站,规模化硬件部署形成公司算力核心壁垒。 公司计划未来数年落地在轨太空AI算力项目:依托卫星太阳能发电、太空空间辐射自然散热,在轨算力可大幅压低日常运维成本,破解地面数据中心供电与散热资源受限痛点。 凭借自研离子推进系统、星间激光互联链路、星载计算机、反作用飞轮等成熟航天技术储备,SpaceX成为业内短期内唯一具备落地太空分布式算力条件的企业。 约翰逊强调,公司AI商业化闭环清晰:依托自有航天基建搭建算力底座,持续迭代优化大模型、压缩单位算力成本,通过算力对外租赁实现营收变现,经营所得再反哺算力与自研模型研发投入。目前商业化落地已有实质进展:已同Anthropic签约,开放超算资源承接对方大模型托管;同步与Cursor开展合作,借助自有算力优化自研代码大模型。在对外出租算力的同时,公司持续加码自研通用大模型研发。 企业AI业务潜在市场空间超20万亿美元 展望前景,约翰逊称,公司锁定太空、算力、AI三大赛道,合计可触达市场规模约6万亿美元;长远来看,企业AI业务潜在市场空间超20万亿美元。除现有主业外,公司中长期规划覆盖跨区域太空点对点运输、太空智能制造、小行星资源开采、月球产业化开发;按照项目节奏,计划未来数年实现载人登月,搭建月球长期可持续运营配套体系。 此前,SpaceX在招股书中预估,其潜在市场规模高达28.5万亿美元,预计超九成市场来自AI领域,其中绝大部分可能来自企业AI(Enterprise AI)。 他提到,近两年集团合计资本开支210亿美元,大部分资金投向AI业务。他强调,依托与Anthropic的算力托管合作,AI板块已经产生收入。 招股书显示,2023年至2025年,SpaceX分别实现营收103.87亿美元、140.15亿美元、186.74亿美元,同期经营利润分别为-35.05亿美元、4.66亿美元、-25.89亿美元,净利润分别为-46.28亿美元、7.91亿美元、-49.37亿美元。2026年前三个月,该公司实现营收46.94亿美元,同比增长15.4%;同期经营亏损19.43亿美元,净亏损42.76亿美元,亏损额几乎等于去年全年水平。 约翰逊说,从长期预判来看,公司后续营收增速有望进一步抬升,远期毛利率预计可达70%(去年为49%),GAAP口径净利润率约45%。不过他并未对此目标给出详细的时间节点。 查看评论
作为一个量化小白,花了不少篇幅拆解了社区大佬的小市值策略——五道风控防线、九项年报排雷、动态持仓调节……拆完之后我有一个很直观的感受: 这套策略的内核是"活得久",靠的是极致风控 + 小市值弹性 。 但最近两个月盯盘下来,我发现一个问题: ETF 行情太好了 。 纳指 ETF 、黄金 ETF 、港股互联网 ETF……这些标的动辄月涨 10%+,而且波动远小于小市值个股。我手里的小市值策略虽然在 A 股震荡行情里能吃到肉,但碰到「市场整体偏弱、ETF 板块性行情轮动」的阶段,就会显得力不从心—— 小市值在休息,ETF 在狂飙,两边接不上 。 于是我开始在社区里大量翻阅 ETF 轮动相关的帖子和策略,学习各位大佬的思路。看了十几篇帖子之后,我萌生了一个想法: 能不能把小市值和 ETF 轮动组合起来,搞一个"双核引擎"? 说实话,ETF 轮动这块我是完完全全的新手。下面文章里涉及的 ETF 池子构建、动量打分、滤波器选择等,都是我在社区里反复学习、参考了多位大佬的策略和文章后,慢慢拼凑理解出来的。如果有理解不到位的地方,还请各位前辈多多指教? 小市值负责在 A 股弹性行情里捕捉超额; ETF 轮动负责在板块行情里追趋势。两个引擎交替发力,互相补位——我给它起了个名字: 「双龙出海」 。 一、为什么要加 ETF ?先看数据说话 单跑小市值策略,5 年 30 倍,年化收益极高,但有一个问题: 回撤集中在大盘系统性下跌的阶段 。当大盘暴跌时,小市值股票的跌幅往往比大盘还狠。 而 ETF 轮动策略有一个天然优势: 它可以在全球资产中切换 。A 股不行就切港股 ETF ,港股不行就切纳指 ETF ,纳指也不行就直接买货币基金(银华日利 511880 )躺平。 加上 ETF 之后效果怎么样?我跑了 2021 年至今的回测,结果直接把我看傻了: 指标 双龙出海(小市值+ETF ) 基准(沪深 300 ) 总收益 4632.93%(约 47 倍) -9.11% 年化收益 112.53% — 最大回撤 15.50% — 夏普比率 4.589 — 索提诺比率 7.535 — 胜率 56.7% — 盈亏比 2.505 — 阿尔法 1.115 — 贝塔 0.502 — 5 年 47 倍,年化 112%,最大回撤才 15.5%——对比上一篇纯小市值的"5 年 30 倍 17 回撤",**收益从 30 倍提升到 47 倍,回撤反而从 17%降到了 15.5%**。 说白了就是: 加了 ETF 引擎之后,不仅赚得更多了,还更稳了 。这不就是"既要又要"的最佳答案么? 维度 纯小市值 小市值 + ETF 轮动 进攻性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 防守性 ⭐⭐⭐ ⭐⭐⭐⭐⭐ 行情适应性 A 股弹性行情 全市场+全球资产 空仓时的机会成本 高(只能买货币 ETF ) 低(自动切到强势 ETF ) 核心逻辑:小市值是矛,ETF 轮动是盾——双核协同,攻守兼备 。 二、架构设计:两个子账户,各管各的 双核策略的架构其实不复杂,核心就是 子账户隔离 : 总资金 100% ├── 子账户 0:小市值策略( 50%) │ └── 每周二调仓,选中证 1000 最小市值股票 └── 子账户 1:五福 ETF 轮动( 50%) └── 每日午后轮动,从 100+只 ETF 中挑最强的 1 只 聚宽提供了 set_subportfolios 的功能,可以把一个账户拆成两个独立子账户,各自有独立的持仓和资金,互不干扰: set_subportfolios([ SubPortfolioConfig(cash=小市值资金, type='stock'), # 子账户 0 SubPortfolioConfig(cash=ETF 资金, type='stock'), # 子账户 1 ]) 这样做的好处是: 策略之间完全隔离 :小市值止损不会影响 ETF 持仓,反之亦然 资金分配清晰 :各占 50%,不会出现一边吃掉另一边资金的情况 独立记录收益 :可以分别看两个策略各自的表现,方便归因分析 三、ETF 轮动引擎拆解(站在大佬肩膀上) 小市值部分的逻辑我在上一篇已经拆过了,这里重点讲 ETF 轮动部分。 先说声感谢 :ETF 轮动这块我参考了社区里很多大佬的策略和思路,包括 ETF 池子的构建方式、动量打分的数学方法、震荡期切换机制等。我做的更多是「学习→理解→整合」的工作,算不上什么原创,更像是一个学习笔记。如果哪位大佬看到觉得某个模块眼熟,那大概率就是从您那学来的? 3.1 ETF 池子:固定池 + 动态池,双池合并 ETF 轮动的第一个难题是: 从哪些 ETF 里选? 我学习到的一个很聪明的做法—— 固定池 + 动态池合并 : 固定池 ( 108 只):手工精选的优质 ETF ,覆盖黄金、白银、纳指、恒生、各行业板块等 动态池 (全市场扫描):每天从全市场 ETF 中自动筛选流动性达标的头部标的,去重后取行业最强的那一只 关键过滤逻辑: 剔除宽基指数 ETF (沪深 300 、中证 500 等——这些不是行业轮动标的) 剔除债券/货币类 ETF (短融、国债、可转债等——这些不是趋势标的) 流动性门槛 :日均成交额低于全市场 ETF 均值/20000 的,直接淘汰 行业去重 :同行业多只 ETF 时,只保留成交额最高的那一只 最终合并出约 100-150 只 ETF 的"作战池"。 3.2 动量打分:拉普拉斯滤波 + 高斯滤波 ETF 轮动最核心的问题是: 怎么判断哪只 ETF 最强? 策略用的是 加权线性回归 + 数学滤波器 的组合方案: 动量得分计算 ( 25 日回看): 1. 对收盘价取对数 2. 用加权最小二乘法拟合趋势线(近期数据权重更高) 3. 斜率年化 → 年化收益率 4. 计算 R²(拟合优度)→ 趋势稳定度 5. 动量得分 = 年化收益率 × R² 说人话就是: 涨得快还涨得稳的 ETF ,得分最高 。 但这还不够。策略额外加了两层数学滤波器,用来判断"该不该现在买": 滤波器 用途 触发条件 拉普拉斯滤波 (正常期使用) 平滑价格,识别趋势 价格 > 滤波值 且 斜率 > 0.002 高斯滤波 (震荡期使用) 更强的降噪,更保守 价格 > 滤波值 且 斜率 > 0.002 正常行情用拉普拉斯(灵敏一点,抓趋势),震荡行情切高斯(保守一点,少挨打)。 两个滤波器自动切换 ,这个设计很巧妙。 3.3 震荡期自动切换:市场的"红绿灯" 策略有一套完整的"红绿灯"机制来判断当前是正常期还是震荡期: 进入震荡期(亮红灯) ——满足任一条件: 沪深 300 的乖离率( BIAS )> 8%(涨太多了,有回调风险) RSI 从 70 以上回落到 65 以下(超买后开始回落) 当天触发了止损(市场可能在变差) 退出震荡期(亮绿灯) ——满足任一条件: 从近 20 日低点反弹超过 4% 回撤收窄 + 多个复苏信号连续出现 震荡期持续超过 20 个交易日(强制退出,不能永远观望) 还有一个 冷却期设计 :每次红绿灯切换后,3 个交易日内不允许再次切换,防止频繁反复。 3.4 多层过滤漏斗 从作战池到最终买入,要过 七道关 : 100+只 ETF → 动量得分过滤( 0 ≤ 得分 ≤ 5 ) → R²过滤(> 0.4 ,趋势不稳的排除) → 成交量过滤(量比 <1.8 ,异常放量的排除) → 短期风控(近 3 天没有单日跌 > 3%) → 溢价率过滤(可选,防止 QDII 高溢价陷阱) → 动态滤波过滤(正常期/震荡期分别用不同滤波器) → 最终只选 1 只! 没错, 最终只持有 1 只 ETF 。这是一个非常激进但也非常纯粹的设计——全仓轮动,不分散。因为分散在 ETF 轮动里反而是稀释收益,不如集中火力追最强的那个。 3.5 分钟级止损:最后的保险丝 ETF 策略还有一个分钟级的止损机制( every_bar 频率运行): 固定止损 :当前价格跌破成本价的 95%时,立刻卖出 日内跌幅止损 (可选):如果当天相对昨收跌超过 5%,也立刻卖出 触发止损后会标记 stop_loss_triggered_today ,在午后 13:10 的检查中自动触发进入震荡期—— 止损不仅是保护本金,还会触发策略整体进入防守姿态 。 四、双核协同的几个关键细节 4.1 资金分配 当前是简单的 50:50 平分。但我在想,未来可以根据市场状态动态调整——比如 A 股弹性好的时候多给小市值,ETF 板块轮动强的时候多给 ETF 。这是一个可以继续优化的方向。 4.2 独立收益记录 策略每日收盘后会分别记录两个子策略的累计收益率,方便做归因分析。用 record() 函数输出到回测图表上,可以直观看到两条收益曲线。 def record_daily_performance(context): for i, strategy_key in enumerate(['strategy1', 'strategy2']): sub_portfolio = context.subportfolios[i] cumulative_return = (sub_portfolio.total_value / initial_cash - 1) * 100 # 记录到图表 record(小市值=小市值收益率, 五福 ETF=ETF 收益率) 4.3 滑点和佣金的差异化设置 很多人忽略的一个细节—— 股票和 ETF 的交易成本是不一样的 : set_slippage(FixedSlippage(0.002), type="stock") # 股票:固定滑点 set_slippage(PriceRelatedSlippage(0.0001), type="fund") # ETF:比例滑点 # 股票佣金:万 0.85 ,卖出还有千分之 0.5 的印花税 # ETF 佣金:万 0.5 ,无印花税 ETF 的交易成本天然比股票低很多,这也是 ETF 轮动策略能频繁调仓的基础。 五、一个小白的学习感悟 不要只盯一个赛道 。小市值再好,碰到风格切换也会歇菜。加一个 ETF 轮动引擎,相当于给自己多开了一个全球化的战场。 站在巨人肩膀上学得更快 。ETF 轮动这一整套逻辑,如果让我从零开始写,可能半年都写不出来。但社区里有那么多大佬无私分享代码和思路,我做的只是把不同的模块学懂、拼到一起。 聚宽社区的开源氛围真的很好 ,感谢每一位分享策略的前辈。 数学滤波器很有意思 。拉普拉斯、高斯这些信号处理领域的工具,用到金融数据上效果很好。作为小白第一次接触这些概念,说实话还没有完全吃透,后面还要继续啃论文和代码。 震荡期切换是 ETF 轮动的灵魂 。没有这个机制,ETF 轮动在震荡行情里会被反复打脸。有了红绿灯+冷却期,策略才能在"追趋势"和"认怂"之间优雅切换。 子账户隔离是个好设计 。让两个策略各管各的,不争抢资金,不相互干扰。简单粗暴但有效。 最后还是那句话:风控是一切的基础 。不管是小市值的五道防线,还是 ETF 的分钟级止损,核心都是同一个信仰—— 先活着,再赚钱 。 六、实战检验 说得再好不如跑起来看。我已经把这套「小市值+ETF 轮动_双龙出海」策略上传到了 ** 9db 量化竞技场 **,用真实模拟盘每天跑。 欢迎围观、拍砖。在 9db 上可以看到每天的交易记录、持仓变化、收益曲线。比回测更真实,因为是每天实时跑的——好不好,跑几周就知道了。 也欢迎大家去看看其他大佬的策略表现,和自己的策略做个对比。量化这条路,闭门造车不如多看多学。 作为一个刚入门的量化小白,文中很多理解可能不够深入甚至有偏差,欢迎各位大佬在评论区指正。也特别感谢社区里那些无私分享策略和思路的前辈们,没有你们的开源精神,就没有这篇学习笔记。 免责声明:以上内容仅为个人学习记录,不构成任何投资建议。股市有风险,投资需谨慎。
作为一个量化小白,花了不少篇幅拆解了社区大佬的小市值策略——五道风控防线、九项年报排雷、动态持仓调节……拆完之后我有一个很直观的感受: 这套策略的内核是"活得久",靠的是极致风控 + 小市值弹性 。 但最近两个月盯盘下来,我发现一个问题: ETF 行情太好了 。 纳指 ETF 、黄金 ETF 、港股互联网 ETF……这些标的动辄月涨 10%+,而且波动远小于小市值个股。我手里的小市值策略虽然在 A 股震荡行情里能吃到肉,但碰到「市场整体偏弱、ETF 板块性行情轮动」的阶段,就会显得力不从心—— 小市值在休息,ETF 在狂飙,两边接不上 。 于是我开始在社区里大量翻阅 ETF 轮动相关的帖子和策略,学习各位大佬的思路。看了十几篇帖子之后,我萌生了一个想法: 能不能把小市值和 ETF 轮动组合起来,搞一个"双核引擎"? 说实话,ETF 轮动这块我是完完全全的新手。下面文章里涉及的 ETF 池子构建、动量打分、滤波器选择等,都是我在社区里反复学习、参考了多位大佬的策略和文章后,慢慢拼凑理解出来的。如果有理解不到位的地方,还请各位前辈多多指教? 小市值负责在 A 股弹性行情里捕捉超额; ETF 轮动负责在板块行情里追趋势。两个引擎交替发力,互相补位——我给它起了个名字: 「双龙出海」 。 一、为什么要加 ETF ?先看数据说话 单跑小市值策略,5 年 30 倍,年化收益极高,但有一个问题: 回撤集中在大盘系统性下跌的阶段 。当大盘暴跌时,小市值股票的跌幅往往比大盘还狠。 而 ETF 轮动策略有一个天然优势: 它可以在全球资产中切换 。A 股不行就切港股 ETF ,港股不行就切纳指 ETF ,纳指也不行就直接买货币基金(银华日利 511880 )躺平。 加上 ETF 之后效果怎么样?我跑了 2021 年至今的回测,结果直接把我看傻了: 指标 双龙出海(小市值+ETF ) 基准(沪深 300 ) 总收益 4632.93%(约 47 倍) -9.11% 年化收益 112.53% — 最大回撤 15.50% — 夏普比率 4.589 — 索提诺比率 7.535 — 胜率 56.7% — 盈亏比 2.505 — 阿尔法 1.115 — 贝塔 0.502 — 5 年 47 倍,年化 112%,最大回撤才 15.5%——对比上一篇纯小市值的"5 年 30 倍 17 回撤",**收益从 30 倍提升到 47 倍,回撤反而从 17%降到了 15.5%**。 说白了就是: 加了 ETF 引擎之后,不仅赚得更多了,还更稳了 。这不就是"既要又要"的最佳答案么? 维度 纯小市值 小市值 + ETF 轮动 进攻性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 防守性 ⭐⭐⭐ ⭐⭐⭐⭐⭐ 行情适应性 A 股弹性行情 全市场+全球资产 空仓时的机会成本 高(只能买货币 ETF ) 低(自动切到强势 ETF ) 核心逻辑:小市值是矛,ETF 轮动是盾——双核协同,攻守兼备 。 二、架构设计:两个子账户,各管各的 双核策略的架构其实不复杂,核心就是 子账户隔离 : 总资金 100% ├── 子账户 0:小市值策略( 50%) │ └── 每周二调仓,选中证 1000 最小市值股票 └── 子账户 1:五福 ETF 轮动( 50%) └── 每日午后轮动,从 100+只 ETF 中挑最强的 1 只 聚宽提供了 set_subportfolios 的功能,可以把一个账户拆成两个独立子账户,各自有独立的持仓和资金,互不干扰: set_subportfolios([ SubPortfolioConfig(cash=小市值资金, type='stock'), # 子账户 0 SubPortfolioConfig(cash=ETF 资金, type='stock'), # 子账户 1 ]) 这样做的好处是: 策略之间完全隔离 :小市值止损不会影响 ETF 持仓,反之亦然 资金分配清晰 :各占 50%,不会出现一边吃掉另一边资金的情况 独立记录收益 :可以分别看两个策略各自的表现,方便归因分析 三、ETF 轮动引擎拆解(站在大佬肩膀上) 小市值部分的逻辑我在上一篇已经拆过了,这里重点讲 ETF 轮动部分。 先说声感谢 :ETF 轮动这块我参考了社区里很多大佬的策略和思路,包括 ETF 池子的构建方式、动量打分的数学方法、震荡期切换机制等。我做的更多是「学习→理解→整合」的工作,算不上什么原创,更像是一个学习笔记。如果哪位大佬看到觉得某个模块眼熟,那大概率就是从您那学来的? 3.1 ETF 池子:固定池 + 动态池,双池合并 ETF 轮动的第一个难题是: 从哪些 ETF 里选? 我学习到的一个很聪明的做法—— 固定池 + 动态池合并 : 固定池 ( 108 只):手工精选的优质 ETF ,覆盖黄金、白银、纳指、恒生、各行业板块等 动态池 (全市场扫描):每天从全市场 ETF 中自动筛选流动性达标的头部标的,去重后取行业最强的那一只 关键过滤逻辑: 剔除宽基指数 ETF (沪深 300 、中证 500 等——这些不是行业轮动标的) 剔除债券/货币类 ETF (短融、国债、可转债等——这些不是趋势标的) 流动性门槛 :日均成交额低于全市场 ETF 均值/20000 的,直接淘汰 行业去重 :同行业多只 ETF 时,只保留成交额最高的那一只 最终合并出约 100-150 只 ETF 的"作战池"。 3.2 动量打分:拉普拉斯滤波 + 高斯滤波 ETF 轮动最核心的问题是: 怎么判断哪只 ETF 最强? 策略用的是 加权线性回归 + 数学滤波器 的组合方案: 动量得分计算 ( 25 日回看): 1. 对收盘价取对数 2. 用加权最小二乘法拟合趋势线(近期数据权重更高) 3. 斜率年化 → 年化收益率 4. 计算 R²(拟合优度)→ 趋势稳定度 5. 动量得分 = 年化收益率 × R² 说人话就是: 涨得快还涨得稳的 ETF ,得分最高 。 但这还不够。策略额外加了两层数学滤波器,用来判断"该不该现在买": 滤波器 用途 触发条件 拉普拉斯滤波 (正常期使用) 平滑价格,识别趋势 价格 > 滤波值 且 斜率 > 0.002 高斯滤波 (震荡期使用) 更强的降噪,更保守 价格 > 滤波值 且 斜率 > 0.002 正常行情用拉普拉斯(灵敏一点,抓趋势),震荡行情切高斯(保守一点,少挨打)。 两个滤波器自动切换 ,这个设计很巧妙。 3.3 震荡期自动切换:市场的"红绿灯" 策略有一套完整的"红绿灯"机制来判断当前是正常期还是震荡期: 进入震荡期(亮红灯) ——满足任一条件: 沪深 300 的乖离率( BIAS )> 8%(涨太多了,有回调风险) RSI 从 70 以上回落到 65 以下(超买后开始回落) 当天触发了止损(市场可能在变差) 退出震荡期(亮绿灯) ——满足任一条件: 从近 20 日低点反弹超过 4% 回撤收窄 + 多个复苏信号连续出现 震荡期持续超过 20 个交易日(强制退出,不能永远观望) 还有一个 冷却期设计 :每次红绿灯切换后,3 个交易日内不允许再次切换,防止频繁反复。 3.4 多层过滤漏斗 从作战池到最终买入,要过 七道关 : 100+只 ETF → 动量得分过滤( 0 ≤ 得分 ≤ 5 ) → R²过滤(> 0.4 ,趋势不稳的排除) → 成交量过滤(量比 <1.8 ,异常放量的排除) → 短期风控(近 3 天没有单日跌 > 3%) → 溢价率过滤(可选,防止 QDII 高溢价陷阱) → 动态滤波过滤(正常期/震荡期分别用不同滤波器) → 最终只选 1 只! 没错, 最终只持有 1 只 ETF 。这是一个非常激进但也非常纯粹的设计——全仓轮动,不分散。因为分散在 ETF 轮动里反而是稀释收益,不如集中火力追最强的那个。 3.5 分钟级止损:最后的保险丝 ETF 策略还有一个分钟级的止损机制( every_bar 频率运行): 固定止损 :当前价格跌破成本价的 95%时,立刻卖出 日内跌幅止损 (可选):如果当天相对昨收跌超过 5%,也立刻卖出 触发止损后会标记 stop_loss_triggered_today ,在午后 13:10 的检查中自动触发进入震荡期—— 止损不仅是保护本金,还会触发策略整体进入防守姿态 。 四、双核协同的几个关键细节 4.1 资金分配 当前是简单的 50:50 平分。但我在想,未来可以根据市场状态动态调整——比如 A 股弹性好的时候多给小市值,ETF 板块轮动强的时候多给 ETF 。这是一个可以继续优化的方向。 4.2 独立收益记录 策略每日收盘后会分别记录两个子策略的累计收益率,方便做归因分析。用 record() 函数输出到回测图表上,可以直观看到两条收益曲线。 def record_daily_performance(context): for i, strategy_key in enumerate(['strategy1', 'strategy2']): sub_portfolio = context.subportfolios[i] cumulative_return = (sub_portfolio.total_value / initial_cash - 1) * 100 # 记录到图表 record(小市值=小市值收益率, 五福 ETF=ETF 收益率) 4.3 滑点和佣金的差异化设置 很多人忽略的一个细节—— 股票和 ETF 的交易成本是不一样的 : set_slippage(FixedSlippage(0.002), type="stock") # 股票:固定滑点 set_slippage(PriceRelatedSlippage(0.0001), type="fund") # ETF:比例滑点 # 股票佣金:万 0.85 ,卖出还有千分之 0.5 的印花税 # ETF 佣金:万 0.5 ,无印花税 ETF 的交易成本天然比股票低很多,这也是 ETF 轮动策略能频繁调仓的基础。 五、一个小白的学习感悟 不要只盯一个赛道 。小市值再好,碰到风格切换也会歇菜。加一个 ETF 轮动引擎,相当于给自己多开了一个全球化的战场。 站在巨人肩膀上学得更快 。ETF 轮动这一整套逻辑,如果让我从零开始写,可能半年都写不出来。但社区里有那么多大佬无私分享代码和思路,我做的只是把不同的模块学懂、拼到一起。 聚宽社区的开源氛围真的很好 ,感谢每一位分享策略的前辈。 数学滤波器很有意思 。拉普拉斯、高斯这些信号处理领域的工具,用到金融数据上效果很好。作为小白第一次接触这些概念,说实话还没有完全吃透,后面还要继续啃论文和代码。 震荡期切换是 ETF 轮动的灵魂 。没有这个机制,ETF 轮动在震荡行情里会被反复打脸。有了红绿灯+冷却期,策略才能在"追趋势"和"认怂"之间优雅切换。 子账户隔离是个好设计 。让两个策略各管各的,不争抢资金,不相互干扰。简单粗暴但有效。 最后还是那句话:风控是一切的基础 。不管是小市值的五道防线,还是 ETF 的分钟级止损,核心都是同一个信仰—— 先活着,再赚钱 。 六、实战检验 说得再好不如跑起来看。我已经把这套「小市值+ETF 轮动_双龙出海」策略上传到了 ** 9db 量化竞技场 **,用真实模拟盘每天跑。 欢迎围观、拍砖。在 9db 上可以看到每天的交易记录、持仓变化、收益曲线。比回测更真实,因为是每天实时跑的——好不好,跑几周就知道了。 也欢迎大家去看看其他大佬的策略表现,和自己的策略做个对比。量化这条路,闭门造车不如多看多学。 作为一个刚入门的量化小白,文中很多理解可能不够深入甚至有偏差,欢迎各位大佬在评论区指正。也特别感谢社区里那些无私分享策略和思路的前辈们,没有你们的开源精神,就没有这篇学习笔记。 免责声明:以上内容仅为个人学习记录,不构成任何投资建议。股市有风险,投资需谨慎。
作为一个量化小白,花了不少篇幅拆解了社区大佬的小市值策略——五道风控防线、九项年报排雷、动态持仓调节……拆完之后我有一个很直观的感受: 这套策略的内核是"活得久",靠的是极致风控 + 小市值弹性 。 但最近两个月盯盘下来,我发现一个问题: ETF 行情太好了 。 纳指 ETF 、黄金 ETF 、港股互联网 ETF……这些标的动辄月涨 10%+,而且波动远小于小市值个股。我手里的小市值策略虽然在 A 股震荡行情里能吃到肉,但碰到「市场整体偏弱、ETF 板块性行情轮动」的阶段,就会显得力不从心—— 小市值在休息,ETF 在狂飙,两边接不上 。 于是我开始在社区里大量翻阅 ETF 轮动相关的帖子和策略,学习各位大佬的思路。看了十几篇帖子之后,我萌生了一个想法: 能不能把小市值和 ETF 轮动组合起来,搞一个"双核引擎"? 说实话,ETF 轮动这块我是完完全全的新手。下面文章里涉及的 ETF 池子构建、动量打分、滤波器选择等,都是我在社区里反复学习、参考了多位大佬的策略和文章后,慢慢拼凑理解出来的。如果有理解不到位的地方,还请各位前辈多多指教? 小市值负责在 A 股弹性行情里捕捉超额; ETF 轮动负责在板块行情里追趋势。两个引擎交替发力,互相补位——我给它起了个名字: 「双龙出海」 。 一、为什么要加 ETF ?先看数据说话 单跑小市值策略,5 年 30 倍,年化收益极高,但有一个问题: 回撤集中在大盘系统性下跌的阶段 。当大盘暴跌时,小市值股票的跌幅往往比大盘还狠。 而 ETF 轮动策略有一个天然优势: 它可以在全球资产中切换 。A 股不行就切港股 ETF ,港股不行就切纳指 ETF ,纳指也不行就直接买货币基金(银华日利 511880 )躺平。 加上 ETF 之后效果怎么样?我跑了 2021 年至今的回测,结果直接把我看傻了: 指标 双龙出海(小市值+ETF ) 基准(沪深 300 ) 总收益 4632.93%(约 47 倍) -9.11% 年化收益 112.53% — 最大回撤 15.50% — 夏普比率 4.589 — 索提诺比率 7.535 — 胜率 56.7% — 盈亏比 2.505 — 阿尔法 1.115 — 贝塔 0.502 — 5 年 47 倍,年化 112%,最大回撤才 15.5%——对比上一篇纯小市值的"5 年 30 倍 17 回撤",**收益从 30 倍提升到 47 倍,回撤反而从 17%降到了 15.5%**。 说白了就是: 加了 ETF 引擎之后,不仅赚得更多了,还更稳了 。这不就是"既要又要"的最佳答案么? 维度 纯小市值 小市值 + ETF 轮动 进攻性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 防守性 ⭐⭐⭐ ⭐⭐⭐⭐⭐ 行情适应性 A 股弹性行情 全市场+全球资产 空仓时的机会成本 高(只能买货币 ETF ) 低(自动切到强势 ETF ) 核心逻辑:小市值是矛,ETF 轮动是盾——双核协同,攻守兼备 。 二、架构设计:两个子账户,各管各的 双核策略的架构其实不复杂,核心就是 子账户隔离 : 总资金 100% ├── 子账户 0:小市值策略( 50%) │ └── 每周二调仓,选中证 1000 最小市值股票 └── 子账户 1:五福 ETF 轮动( 50%) └── 每日午后轮动,从 100+只 ETF 中挑最强的 1 只 聚宽提供了 set_subportfolios 的功能,可以把一个账户拆成两个独立子账户,各自有独立的持仓和资金,互不干扰: set_subportfolios([ SubPortfolioConfig(cash=小市值资金, type='stock'), # 子账户 0 SubPortfolioConfig(cash=ETF 资金, type='stock'), # 子账户 1 ]) 这样做的好处是: 策略之间完全隔离 :小市值止损不会影响 ETF 持仓,反之亦然 资金分配清晰 :各占 50%,不会出现一边吃掉另一边资金的情况 独立记录收益 :可以分别看两个策略各自的表现,方便归因分析 三、ETF 轮动引擎拆解(站在大佬肩膀上) 小市值部分的逻辑我在上一篇已经拆过了,这里重点讲 ETF 轮动部分。 先说声感谢 :ETF 轮动这块我参考了社区里很多大佬的策略和思路,包括 ETF 池子的构建方式、动量打分的数学方法、震荡期切换机制等。我做的更多是「学习→理解→整合」的工作,算不上什么原创,更像是一个学习笔记。如果哪位大佬看到觉得某个模块眼熟,那大概率就是从您那学来的? 3.1 ETF 池子:固定池 + 动态池,双池合并 ETF 轮动的第一个难题是: 从哪些 ETF 里选? 我学习到的一个很聪明的做法—— 固定池 + 动态池合并 : 固定池 ( 108 只):手工精选的优质 ETF ,覆盖黄金、白银、纳指、恒生、各行业板块等 动态池 (全市场扫描):每天从全市场 ETF 中自动筛选流动性达标的头部标的,去重后取行业最强的那一只 关键过滤逻辑: 剔除宽基指数 ETF (沪深 300 、中证 500 等——这些不是行业轮动标的) 剔除债券/货币类 ETF (短融、国债、可转债等——这些不是趋势标的) 流动性门槛 :日均成交额低于全市场 ETF 均值/20000 的,直接淘汰 行业去重 :同行业多只 ETF 时,只保留成交额最高的那一只 最终合并出约 100-150 只 ETF 的"作战池"。 3.2 动量打分:拉普拉斯滤波 + 高斯滤波 ETF 轮动最核心的问题是: 怎么判断哪只 ETF 最强? 策略用的是 加权线性回归 + 数学滤波器 的组合方案: 动量得分计算 ( 25 日回看): 1. 对收盘价取对数 2. 用加权最小二乘法拟合趋势线(近期数据权重更高) 3. 斜率年化 → 年化收益率 4. 计算 R²(拟合优度)→ 趋势稳定度 5. 动量得分 = 年化收益率 × R² 说人话就是: 涨得快还涨得稳的 ETF ,得分最高 。 但这还不够。策略额外加了两层数学滤波器,用来判断"该不该现在买": 滤波器 用途 触发条件 拉普拉斯滤波 (正常期使用) 平滑价格,识别趋势 价格 > 滤波值 且 斜率 > 0.002 高斯滤波 (震荡期使用) 更强的降噪,更保守 价格 > 滤波值 且 斜率 > 0.002 正常行情用拉普拉斯(灵敏一点,抓趋势),震荡行情切高斯(保守一点,少挨打)。 两个滤波器自动切换 ,这个设计很巧妙。 3.3 震荡期自动切换:市场的"红绿灯" 策略有一套完整的"红绿灯"机制来判断当前是正常期还是震荡期: 进入震荡期(亮红灯) ——满足任一条件: 沪深 300 的乖离率( BIAS )> 8%(涨太多了,有回调风险) RSI 从 70 以上回落到 65 以下(超买后开始回落) 当天触发了止损(市场可能在变差) 退出震荡期(亮绿灯) ——满足任一条件: 从近 20 日低点反弹超过 4% 回撤收窄 + 多个复苏信号连续出现 震荡期持续超过 20 个交易日(强制退出,不能永远观望) 还有一个 冷却期设计 :每次红绿灯切换后,3 个交易日内不允许再次切换,防止频繁反复。 3.4 多层过滤漏斗 从作战池到最终买入,要过 七道关 : 100+只 ETF → 动量得分过滤( 0 ≤ 得分 ≤ 5 ) → R²过滤(> 0.4 ,趋势不稳的排除) → 成交量过滤(量比 <1.8 ,异常放量的排除) → 短期风控(近 3 天没有单日跌 > 3%) → 溢价率过滤(可选,防止 QDII 高溢价陷阱) → 动态滤波过滤(正常期/震荡期分别用不同滤波器) → 最终只选 1 只! 没错, 最终只持有 1 只 ETF 。这是一个非常激进但也非常纯粹的设计——全仓轮动,不分散。因为分散在 ETF 轮动里反而是稀释收益,不如集中火力追最强的那个。 3.5 分钟级止损:最后的保险丝 ETF 策略还有一个分钟级的止损机制( every_bar 频率运行): 固定止损 :当前价格跌破成本价的 95%时,立刻卖出 日内跌幅止损 (可选):如果当天相对昨收跌超过 5%,也立刻卖出 触发止损后会标记 stop_loss_triggered_today ,在午后 13:10 的检查中自动触发进入震荡期—— 止损不仅是保护本金,还会触发策略整体进入防守姿态 。 四、双核协同的几个关键细节 4.1 资金分配 当前是简单的 50:50 平分。但我在想,未来可以根据市场状态动态调整——比如 A 股弹性好的时候多给小市值,ETF 板块轮动强的时候多给 ETF 。这是一个可以继续优化的方向。 4.2 独立收益记录 策略每日收盘后会分别记录两个子策略的累计收益率,方便做归因分析。用 record() 函数输出到回测图表上,可以直观看到两条收益曲线。 def record_daily_performance(context): for i, strategy_key in enumerate(['strategy1', 'strategy2']): sub_portfolio = context.subportfolios[i] cumulative_return = (sub_portfolio.total_value / initial_cash - 1) * 100 # 记录到图表 record(小市值=小市值收益率, 五福 ETF=ETF 收益率) 4.3 滑点和佣金的差异化设置 很多人忽略的一个细节—— 股票和 ETF 的交易成本是不一样的 : set_slippage(FixedSlippage(0.002), type="stock") # 股票:固定滑点 set_slippage(PriceRelatedSlippage(0.0001), type="fund") # ETF:比例滑点 # 股票佣金:万 0.85 ,卖出还有千分之 0.5 的印花税 # ETF 佣金:万 0.5 ,无印花税 ETF 的交易成本天然比股票低很多,这也是 ETF 轮动策略能频繁调仓的基础。 五、一个小白的学习感悟 不要只盯一个赛道 。小市值再好,碰到风格切换也会歇菜。加一个 ETF 轮动引擎,相当于给自己多开了一个全球化的战场。 站在巨人肩膀上学得更快 。ETF 轮动这一整套逻辑,如果让我从零开始写,可能半年都写不出来。但社区里有那么多大佬无私分享代码和思路,我做的只是把不同的模块学懂、拼到一起。 聚宽社区的开源氛围真的很好 ,感谢每一位分享策略的前辈。 数学滤波器很有意思 。拉普拉斯、高斯这些信号处理领域的工具,用到金融数据上效果很好。作为小白第一次接触这些概念,说实话还没有完全吃透,后面还要继续啃论文和代码。 震荡期切换是 ETF 轮动的灵魂 。没有这个机制,ETF 轮动在震荡行情里会被反复打脸。有了红绿灯+冷却期,策略才能在"追趋势"和"认怂"之间优雅切换。 子账户隔离是个好设计 。让两个策略各管各的,不争抢资金,不相互干扰。简单粗暴但有效。 最后还是那句话:风控是一切的基础 。不管是小市值的五道防线,还是 ETF 的分钟级止损,核心都是同一个信仰—— 先活着,再赚钱 。 六、实战检验 说得再好不如跑起来看。我已经把这套「小市值+ETF 轮动_双龙出海」策略上传到了 ** 9db 量化竞技场 **,用真实模拟盘每天跑。 欢迎围观、拍砖。在 9db 上可以看到每天的交易记录、持仓变化、收益曲线。比回测更真实,因为是每天实时跑的——好不好,跑几周就知道了。 也欢迎大家去看看其他大佬的策略表现,和自己的策略做个对比。量化这条路,闭门造车不如多看多学。 作为一个刚入门的量化小白,文中很多理解可能不够深入甚至有偏差,欢迎各位大佬在评论区指正。也特别感谢社区里那些无私分享策略和思路的前辈们,没有你们的开源精神,就没有这篇学习笔记。 免责声明:以上内容仅为个人学习记录,不构成任何投资建议。股市有风险,投资需谨慎。
作为一个量化小白,花了不少篇幅拆解了社区大佬的小市值策略——五道风控防线、九项年报排雷、动态持仓调节……拆完之后我有一个很直观的感受: 这套策略的内核是"活得久",靠的是极致风控 + 小市值弹性 。 但最近两个月盯盘下来,我发现一个问题: ETF 行情太好了 。 纳指 ETF 、黄金 ETF 、港股互联网 ETF……这些标的动辄月涨 10%+,而且波动远小于小市值个股。我手里的小市值策略虽然在 A 股震荡行情里能吃到肉,但碰到「市场整体偏弱、ETF 板块性行情轮动」的阶段,就会显得力不从心—— 小市值在休息,ETF 在狂飙,两边接不上 。 于是我开始在社区里大量翻阅 ETF 轮动相关的帖子和策略,学习各位大佬的思路。看了十几篇帖子之后,我萌生了一个想法: 能不能把小市值和 ETF 轮动组合起来,搞一个"双核引擎"? 说实话,ETF 轮动这块我是完完全全的新手。下面文章里涉及的 ETF 池子构建、动量打分、滤波器选择等,都是我在社区里反复学习、参考了多位大佬的策略和文章后,慢慢拼凑理解出来的。如果有理解不到位的地方,还请各位前辈多多指教? 小市值负责在 A 股弹性行情里捕捉超额; ETF 轮动负责在板块行情里追趋势。两个引擎交替发力,互相补位——我给它起了个名字: 「双龙出海」 。 一、为什么要加 ETF ?先看数据说话 单跑小市值策略,5 年 30 倍,年化收益极高,但有一个问题: 回撤集中在大盘系统性下跌的阶段 。当大盘暴跌时,小市值股票的跌幅往往比大盘还狠。 而 ETF 轮动策略有一个天然优势: 它可以在全球资产中切换 。A 股不行就切港股 ETF ,港股不行就切纳指 ETF ,纳指也不行就直接买货币基金(银华日利 511880 )躺平。 加上 ETF 之后效果怎么样?我跑了 2021 年至今的回测,结果直接把我看傻了: 指标 双龙出海(小市值+ETF ) 基准(沪深 300 ) 总收益 4632.93%(约 47 倍) -9.11% 年化收益 112.53% — 最大回撤 15.50% — 夏普比率 4.589 — 索提诺比率 7.535 — 胜率 56.7% — 盈亏比 2.505 — 阿尔法 1.115 — 贝塔 0.502 — 5 年 47 倍,年化 112%,最大回撤才 15.5%——对比上一篇纯小市值的"5 年 30 倍 17 回撤",**收益从 30 倍提升到 47 倍,回撤反而从 17%降到了 15.5%**。 说白了就是: 加了 ETF 引擎之后,不仅赚得更多了,还更稳了 。这不就是"既要又要"的最佳答案么? 维度 纯小市值 小市值 + ETF 轮动 进攻性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 防守性 ⭐⭐⭐ ⭐⭐⭐⭐⭐ 行情适应性 A 股弹性行情 全市场+全球资产 空仓时的机会成本 高(只能买货币 ETF ) 低(自动切到强势 ETF ) 核心逻辑:小市值是矛,ETF 轮动是盾——双核协同,攻守兼备 。 二、架构设计:两个子账户,各管各的 双核策略的架构其实不复杂,核心就是 子账户隔离 : 总资金 100% ├── 子账户 0:小市值策略( 50%) │ └── 每周二调仓,选中证 1000 最小市值股票 └── 子账户 1:五福 ETF 轮动( 50%) └── 每日午后轮动,从 100+只 ETF 中挑最强的 1 只 聚宽提供了 set_subportfolios 的功能,可以把一个账户拆成两个独立子账户,各自有独立的持仓和资金,互不干扰: set_subportfolios([ SubPortfolioConfig(cash=小市值资金, type='stock'), # 子账户 0 SubPortfolioConfig(cash=ETF 资金, type='stock'), # 子账户 1 ]) 这样做的好处是: 策略之间完全隔离 :小市值止损不会影响 ETF 持仓,反之亦然 资金分配清晰 :各占 50%,不会出现一边吃掉另一边资金的情况 独立记录收益 :可以分别看两个策略各自的表现,方便归因分析 三、ETF 轮动引擎拆解(站在大佬肩膀上) 小市值部分的逻辑我在上一篇已经拆过了,这里重点讲 ETF 轮动部分。 先说声感谢 :ETF 轮动这块我参考了社区里很多大佬的策略和思路,包括 ETF 池子的构建方式、动量打分的数学方法、震荡期切换机制等。我做的更多是「学习→理解→整合」的工作,算不上什么原创,更像是一个学习笔记。如果哪位大佬看到觉得某个模块眼熟,那大概率就是从您那学来的? 3.1 ETF 池子:固定池 + 动态池,双池合并 ETF 轮动的第一个难题是: 从哪些 ETF 里选? 我学习到的一个很聪明的做法—— 固定池 + 动态池合并 : 固定池 ( 108 只):手工精选的优质 ETF ,覆盖黄金、白银、纳指、恒生、各行业板块等 动态池 (全市场扫描):每天从全市场 ETF 中自动筛选流动性达标的头部标的,去重后取行业最强的那一只 关键过滤逻辑: 剔除宽基指数 ETF (沪深 300 、中证 500 等——这些不是行业轮动标的) 剔除债券/货币类 ETF (短融、国债、可转债等——这些不是趋势标的) 流动性门槛 :日均成交额低于全市场 ETF 均值/20000 的,直接淘汰 行业去重 :同行业多只 ETF 时,只保留成交额最高的那一只 最终合并出约 100-150 只 ETF 的"作战池"。 3.2 动量打分:拉普拉斯滤波 + 高斯滤波 ETF 轮动最核心的问题是: 怎么判断哪只 ETF 最强? 策略用的是 加权线性回归 + 数学滤波器 的组合方案: 动量得分计算 ( 25 日回看): 1. 对收盘价取对数 2. 用加权最小二乘法拟合趋势线(近期数据权重更高) 3. 斜率年化 → 年化收益率 4. 计算 R²(拟合优度)→ 趋势稳定度 5. 动量得分 = 年化收益率 × R² 说人话就是: 涨得快还涨得稳的 ETF ,得分最高 。 但这还不够。策略额外加了两层数学滤波器,用来判断"该不该现在买": 滤波器 用途 触发条件 拉普拉斯滤波 (正常期使用) 平滑价格,识别趋势 价格 > 滤波值 且 斜率 > 0.002 高斯滤波 (震荡期使用) 更强的降噪,更保守 价格 > 滤波值 且 斜率 > 0.002 正常行情用拉普拉斯(灵敏一点,抓趋势),震荡行情切高斯(保守一点,少挨打)。 两个滤波器自动切换 ,这个设计很巧妙。 3.3 震荡期自动切换:市场的"红绿灯" 策略有一套完整的"红绿灯"机制来判断当前是正常期还是震荡期: 进入震荡期(亮红灯) ——满足任一条件: 沪深 300 的乖离率( BIAS )> 8%(涨太多了,有回调风险) RSI 从 70 以上回落到 65 以下(超买后开始回落) 当天触发了止损(市场可能在变差) 退出震荡期(亮绿灯) ——满足任一条件: 从近 20 日低点反弹超过 4% 回撤收窄 + 多个复苏信号连续出现 震荡期持续超过 20 个交易日(强制退出,不能永远观望) 还有一个 冷却期设计 :每次红绿灯切换后,3 个交易日内不允许再次切换,防止频繁反复。 3.4 多层过滤漏斗 从作战池到最终买入,要过 七道关 : 100+只 ETF → 动量得分过滤( 0 ≤ 得分 ≤ 5 ) → R²过滤(> 0.4 ,趋势不稳的排除) → 成交量过滤(量比 <1.8 ,异常放量的排除) → 短期风控(近 3 天没有单日跌 > 3%) → 溢价率过滤(可选,防止 QDII 高溢价陷阱) → 动态滤波过滤(正常期/震荡期分别用不同滤波器) → 最终只选 1 只! 没错, 最终只持有 1 只 ETF 。这是一个非常激进但也非常纯粹的设计——全仓轮动,不分散。因为分散在 ETF 轮动里反而是稀释收益,不如集中火力追最强的那个。 3.5 分钟级止损:最后的保险丝 ETF 策略还有一个分钟级的止损机制( every_bar 频率运行): 固定止损 :当前价格跌破成本价的 95%时,立刻卖出 日内跌幅止损 (可选):如果当天相对昨收跌超过 5%,也立刻卖出 触发止损后会标记 stop_loss_triggered_today ,在午后 13:10 的检查中自动触发进入震荡期—— 止损不仅是保护本金,还会触发策略整体进入防守姿态 。 四、双核协同的几个关键细节 4.1 资金分配 当前是简单的 50:50 平分。但我在想,未来可以根据市场状态动态调整——比如 A 股弹性好的时候多给小市值,ETF 板块轮动强的时候多给 ETF 。这是一个可以继续优化的方向。 4.2 独立收益记录 策略每日收盘后会分别记录两个子策略的累计收益率,方便做归因分析。用 record() 函数输出到回测图表上,可以直观看到两条收益曲线。 def record_daily_performance(context): for i, strategy_key in enumerate(['strategy1', 'strategy2']): sub_portfolio = context.subportfolios[i] cumulative_return = (sub_portfolio.total_value / initial_cash - 1) * 100 # 记录到图表 record(小市值=小市值收益率, 五福 ETF=ETF 收益率) 4.3 滑点和佣金的差异化设置 很多人忽略的一个细节—— 股票和 ETF 的交易成本是不一样的 : set_slippage(FixedSlippage(0.002), type="stock") # 股票:固定滑点 set_slippage(PriceRelatedSlippage(0.0001), type="fund") # ETF:比例滑点 # 股票佣金:万 0.85 ,卖出还有千分之 0.5 的印花税 # ETF 佣金:万 0.5 ,无印花税 ETF 的交易成本天然比股票低很多,这也是 ETF 轮动策略能频繁调仓的基础。 五、一个小白的学习感悟 不要只盯一个赛道 。小市值再好,碰到风格切换也会歇菜。加一个 ETF 轮动引擎,相当于给自己多开了一个全球化的战场。 站在巨人肩膀上学得更快 。ETF 轮动这一整套逻辑,如果让我从零开始写,可能半年都写不出来。但社区里有那么多大佬无私分享代码和思路,我做的只是把不同的模块学懂、拼到一起。 聚宽社区的开源氛围真的很好 ,感谢每一位分享策略的前辈。 数学滤波器很有意思 。拉普拉斯、高斯这些信号处理领域的工具,用到金融数据上效果很好。作为小白第一次接触这些概念,说实话还没有完全吃透,后面还要继续啃论文和代码。 震荡期切换是 ETF 轮动的灵魂 。没有这个机制,ETF 轮动在震荡行情里会被反复打脸。有了红绿灯+冷却期,策略才能在"追趋势"和"认怂"之间优雅切换。 子账户隔离是个好设计 。让两个策略各管各的,不争抢资金,不相互干扰。简单粗暴但有效。 最后还是那句话:风控是一切的基础 。不管是小市值的五道防线,还是 ETF 的分钟级止损,核心都是同一个信仰—— 先活着,再赚钱 。 六、实战检验 说得再好不如跑起来看。我已经把这套「小市值+ETF 轮动_双龙出海」策略上传到了 ** 9db 量化竞技场 **,用真实模拟盘每天跑。 欢迎围观、拍砖。在 9db 上可以看到每天的交易记录、持仓变化、收益曲线。比回测更真实,因为是每天实时跑的——好不好,跑几周就知道了。 也欢迎大家去看看其他大佬的策略表现,和自己的策略做个对比。量化这条路,闭门造车不如多看多学。 作为一个刚入门的量化小白,文中很多理解可能不够深入甚至有偏差,欢迎各位大佬在评论区指正。也特别感谢社区里那些无私分享策略和思路的前辈们,没有你们的开源精神,就没有这篇学习笔记。 免责声明:以上内容仅为个人学习记录,不构成任何投资建议。股市有风险,投资需谨慎。
作为一个量化小白,花了不少篇幅拆解了社区大佬的小市值策略——五道风控防线、九项年报排雷、动态持仓调节……拆完之后我有一个很直观的感受: 这套策略的内核是"活得久",靠的是极致风控 + 小市值弹性 。 但最近两个月盯盘下来,我发现一个问题: ETF 行情太好了 。 纳指 ETF 、黄金 ETF 、港股互联网 ETF……这些标的动辄月涨 10%+,而且波动远小于小市值个股。我手里的小市值策略虽然在 A 股震荡行情里能吃到肉,但碰到「市场整体偏弱、ETF 板块性行情轮动」的阶段,就会显得力不从心—— 小市值在休息,ETF 在狂飙,两边接不上 。 于是我开始在社区里大量翻阅 ETF 轮动相关的帖子和策略,学习各位大佬的思路。看了十几篇帖子之后,我萌生了一个想法: 能不能把小市值和 ETF 轮动组合起来,搞一个"双核引擎"? 说实话,ETF 轮动这块我是完完全全的新手。下面文章里涉及的 ETF 池子构建、动量打分、滤波器选择等,都是我在社区里反复学习、参考了多位大佬的策略和文章后,慢慢拼凑理解出来的。如果有理解不到位的地方,还请各位前辈多多指教? 小市值负责在 A 股弹性行情里捕捉超额; ETF 轮动负责在板块行情里追趋势。两个引擎交替发力,互相补位——我给它起了个名字: 「双龙出海」 。 一、为什么要加 ETF ?先看数据说话 单跑小市值策略,5 年 30 倍,年化收益极高,但有一个问题: 回撤集中在大盘系统性下跌的阶段 。当大盘暴跌时,小市值股票的跌幅往往比大盘还狠。 而 ETF 轮动策略有一个天然优势: 它可以在全球资产中切换 。A 股不行就切港股 ETF ,港股不行就切纳指 ETF ,纳指也不行就直接买货币基金(银华日利 511880 )躺平。 加上 ETF 之后效果怎么样?我跑了 2021 年至今的回测,结果直接把我看傻了: 指标 双龙出海(小市值+ETF ) 基准(沪深 300 ) 总收益 4632.93%(约 47 倍) -9.11% 年化收益 112.53% — 最大回撤 15.50% — 夏普比率 4.589 — 索提诺比率 7.535 — 胜率 56.7% — 盈亏比 2.505 — 阿尔法 1.115 — 贝塔 0.502 — 5 年 47 倍,年化 112%,最大回撤才 15.5%——对比上一篇纯小市值的"5 年 30 倍 17 回撤",**收益从 30 倍提升到 47 倍,回撤反而从 17%降到了 15.5%**。 说白了就是: 加了 ETF 引擎之后,不仅赚得更多了,还更稳了 。这不就是"既要又要"的最佳答案么? 维度 纯小市值 小市值 + ETF 轮动 进攻性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 防守性 ⭐⭐⭐ ⭐⭐⭐⭐⭐ 行情适应性 A 股弹性行情 全市场+全球资产 空仓时的机会成本 高(只能买货币 ETF ) 低(自动切到强势 ETF ) 核心逻辑:小市值是矛,ETF 轮动是盾——双核协同,攻守兼备 。 二、架构设计:两个子账户,各管各的 双核策略的架构其实不复杂,核心就是 子账户隔离 : 总资金 100% ├── 子账户 0:小市值策略( 50%) │ └── 每周二调仓,选中证 1000 最小市值股票 └── 子账户 1:五福 ETF 轮动( 50%) └── 每日午后轮动,从 100+只 ETF 中挑最强的 1 只 聚宽提供了 set_subportfolios 的功能,可以把一个账户拆成两个独立子账户,各自有独立的持仓和资金,互不干扰: set_subportfolios([ SubPortfolioConfig(cash=小市值资金, type='stock'), # 子账户 0 SubPortfolioConfig(cash=ETF 资金, type='stock'), # 子账户 1 ]) 这样做的好处是: 策略之间完全隔离 :小市值止损不会影响 ETF 持仓,反之亦然 资金分配清晰 :各占 50%,不会出现一边吃掉另一边资金的情况 独立记录收益 :可以分别看两个策略各自的表现,方便归因分析 三、ETF 轮动引擎拆解(站在大佬肩膀上) 小市值部分的逻辑我在上一篇已经拆过了,这里重点讲 ETF 轮动部分。 先说声感谢 :ETF 轮动这块我参考了社区里很多大佬的策略和思路,包括 ETF 池子的构建方式、动量打分的数学方法、震荡期切换机制等。我做的更多是「学习→理解→整合」的工作,算不上什么原创,更像是一个学习笔记。如果哪位大佬看到觉得某个模块眼熟,那大概率就是从您那学来的? 3.1 ETF 池子:固定池 + 动态池,双池合并 ETF 轮动的第一个难题是: 从哪些 ETF 里选? 我学习到的一个很聪明的做法—— 固定池 + 动态池合并 : 固定池 ( 108 只):手工精选的优质 ETF ,覆盖黄金、白银、纳指、恒生、各行业板块等 动态池 (全市场扫描):每天从全市场 ETF 中自动筛选流动性达标的头部标的,去重后取行业最强的那一只 关键过滤逻辑: 剔除宽基指数 ETF (沪深 300 、中证 500 等——这些不是行业轮动标的) 剔除债券/货币类 ETF (短融、国债、可转债等——这些不是趋势标的) 流动性门槛 :日均成交额低于全市场 ETF 均值/20000 的,直接淘汰 行业去重 :同行业多只 ETF 时,只保留成交额最高的那一只 最终合并出约 100-150 只 ETF 的"作战池"。 3.2 动量打分:拉普拉斯滤波 + 高斯滤波 ETF 轮动最核心的问题是: 怎么判断哪只 ETF 最强? 策略用的是 加权线性回归 + 数学滤波器 的组合方案: 动量得分计算 ( 25 日回看): 1. 对收盘价取对数 2. 用加权最小二乘法拟合趋势线(近期数据权重更高) 3. 斜率年化 → 年化收益率 4. 计算 R²(拟合优度)→ 趋势稳定度 5. 动量得分 = 年化收益率 × R² 说人话就是: 涨得快还涨得稳的 ETF ,得分最高 。 但这还不够。策略额外加了两层数学滤波器,用来判断"该不该现在买": 滤波器 用途 触发条件 拉普拉斯滤波 (正常期使用) 平滑价格,识别趋势 价格 > 滤波值 且 斜率 > 0.002 高斯滤波 (震荡期使用) 更强的降噪,更保守 价格 > 滤波值 且 斜率 > 0.002 正常行情用拉普拉斯(灵敏一点,抓趋势),震荡行情切高斯(保守一点,少挨打)。 两个滤波器自动切换 ,这个设计很巧妙。 3.3 震荡期自动切换:市场的"红绿灯" 策略有一套完整的"红绿灯"机制来判断当前是正常期还是震荡期: 进入震荡期(亮红灯) ——满足任一条件: 沪深 300 的乖离率( BIAS )> 8%(涨太多了,有回调风险) RSI 从 70 以上回落到 65 以下(超买后开始回落) 当天触发了止损(市场可能在变差) 退出震荡期(亮绿灯) ——满足任一条件: 从近 20 日低点反弹超过 4% 回撤收窄 + 多个复苏信号连续出现 震荡期持续超过 20 个交易日(强制退出,不能永远观望) 还有一个 冷却期设计 :每次红绿灯切换后,3 个交易日内不允许再次切换,防止频繁反复。 3.4 多层过滤漏斗 从作战池到最终买入,要过 七道关 : 100+只 ETF → 动量得分过滤( 0 ≤ 得分 ≤ 5 ) → R²过滤(> 0.4 ,趋势不稳的排除) → 成交量过滤(量比 <1.8 ,异常放量的排除) → 短期风控(近 3 天没有单日跌 > 3%) → 溢价率过滤(可选,防止 QDII 高溢价陷阱) → 动态滤波过滤(正常期/震荡期分别用不同滤波器) → 最终只选 1 只! 没错, 最终只持有 1 只 ETF 。这是一个非常激进但也非常纯粹的设计——全仓轮动,不分散。因为分散在 ETF 轮动里反而是稀释收益,不如集中火力追最强的那个。 3.5 分钟级止损:最后的保险丝 ETF 策略还有一个分钟级的止损机制( every_bar 频率运行): 固定止损 :当前价格跌破成本价的 95%时,立刻卖出 日内跌幅止损 (可选):如果当天相对昨收跌超过 5%,也立刻卖出 触发止损后会标记 stop_loss_triggered_today ,在午后 13:10 的检查中自动触发进入震荡期—— 止损不仅是保护本金,还会触发策略整体进入防守姿态 。 四、双核协同的几个关键细节 4.1 资金分配 当前是简单的 50:50 平分。但我在想,未来可以根据市场状态动态调整——比如 A 股弹性好的时候多给小市值,ETF 板块轮动强的时候多给 ETF 。这是一个可以继续优化的方向。 4.2 独立收益记录 策略每日收盘后会分别记录两个子策略的累计收益率,方便做归因分析。用 record() 函数输出到回测图表上,可以直观看到两条收益曲线。 def record_daily_performance(context): for i, strategy_key in enumerate(['strategy1', 'strategy2']): sub_portfolio = context.subportfolios[i] cumulative_return = (sub_portfolio.total_value / initial_cash - 1) * 100 # 记录到图表 record(小市值=小市值收益率, 五福 ETF=ETF 收益率) 4.3 滑点和佣金的差异化设置 很多人忽略的一个细节—— 股票和 ETF 的交易成本是不一样的 : set_slippage(FixedSlippage(0.002), type="stock") # 股票:固定滑点 set_slippage(PriceRelatedSlippage(0.0001), type="fund") # ETF:比例滑点 # 股票佣金:万 0.85 ,卖出还有千分之 0.5 的印花税 # ETF 佣金:万 0.5 ,无印花税 ETF 的交易成本天然比股票低很多,这也是 ETF 轮动策略能频繁调仓的基础。 五、一个小白的学习感悟 不要只盯一个赛道 。小市值再好,碰到风格切换也会歇菜。加一个 ETF 轮动引擎,相当于给自己多开了一个全球化的战场。 站在巨人肩膀上学得更快 。ETF 轮动这一整套逻辑,如果让我从零开始写,可能半年都写不出来。但社区里有那么多大佬无私分享代码和思路,我做的只是把不同的模块学懂、拼到一起。 聚宽社区的开源氛围真的很好 ,感谢每一位分享策略的前辈。 数学滤波器很有意思 。拉普拉斯、高斯这些信号处理领域的工具,用到金融数据上效果很好。作为小白第一次接触这些概念,说实话还没有完全吃透,后面还要继续啃论文和代码。 震荡期切换是 ETF 轮动的灵魂 。没有这个机制,ETF 轮动在震荡行情里会被反复打脸。有了红绿灯+冷却期,策略才能在"追趋势"和"认怂"之间优雅切换。 子账户隔离是个好设计 。让两个策略各管各的,不争抢资金,不相互干扰。简单粗暴但有效。 最后还是那句话:风控是一切的基础 。不管是小市值的五道防线,还是 ETF 的分钟级止损,核心都是同一个信仰—— 先活着,再赚钱 。 六、实战检验 说得再好不如跑起来看。我已经把这套「小市值+ETF 轮动_双龙出海」策略上传到了 ** 9db 量化竞技场 **,用真实模拟盘每天跑。 欢迎围观、拍砖。在 9db 上可以看到每天的交易记录、持仓变化、收益曲线。比回测更真实,因为是每天实时跑的——好不好,跑几周就知道了。 也欢迎大家去看看其他大佬的策略表现,和自己的策略做个对比。量化这条路,闭门造车不如多看多学。 作为一个刚入门的量化小白,文中很多理解可能不够深入甚至有偏差,欢迎各位大佬在评论区指正。也特别感谢社区里那些无私分享策略和思路的前辈们,没有你们的开源精神,就没有这篇学习笔记。 免责声明:以上内容仅为个人学习记录,不构成任何投资建议。股市有风险,投资需谨慎。
作为一个量化小白,花了不少篇幅拆解了社区大佬的小市值策略——五道风控防线、九项年报排雷、动态持仓调节……拆完之后我有一个很直观的感受: 这套策略的内核是"活得久",靠的是极致风控 + 小市值弹性 。 但最近两个月盯盘下来,我发现一个问题: ETF 行情太好了 。 纳指 ETF 、黄金 ETF 、港股互联网 ETF……这些标的动辄月涨 10%+,而且波动远小于小市值个股。我手里的小市值策略虽然在 A 股震荡行情里能吃到肉,但碰到「市场整体偏弱、ETF 板块性行情轮动」的阶段,就会显得力不从心—— 小市值在休息,ETF 在狂飙,两边接不上 。 于是我开始在社区里大量翻阅 ETF 轮动相关的帖子和策略,学习各位大佬的思路。看了十几篇帖子之后,我萌生了一个想法: 能不能把小市值和 ETF 轮动组合起来,搞一个"双核引擎"? 说实话,ETF 轮动这块我是完完全全的新手。下面文章里涉及的 ETF 池子构建、动量打分、滤波器选择等,都是我在社区里反复学习、参考了多位大佬的策略和文章后,慢慢拼凑理解出来的。如果有理解不到位的地方,还请各位前辈多多指教? 小市值负责在 A 股弹性行情里捕捉超额; ETF 轮动负责在板块行情里追趋势。两个引擎交替发力,互相补位——我给它起了个名字: 「双龙出海」 。 一、为什么要加 ETF ?先看数据说话 单跑小市值策略,5 年 30 倍,年化收益极高,但有一个问题: 回撤集中在大盘系统性下跌的阶段 。当大盘暴跌时,小市值股票的跌幅往往比大盘还狠。 而 ETF 轮动策略有一个天然优势: 它可以在全球资产中切换 。A 股不行就切港股 ETF ,港股不行就切纳指 ETF ,纳指也不行就直接买货币基金(银华日利 511880 )躺平。 加上 ETF 之后效果怎么样?我跑了 2021 年至今的回测,结果直接把我看傻了: 指标 双龙出海(小市值+ETF ) 基准(沪深 300 ) 总收益 4632.93%(约 47 倍) -9.11% 年化收益 112.53% — 最大回撤 15.50% — 夏普比率 4.589 — 索提诺比率 7.535 — 胜率 56.7% — 盈亏比 2.505 — 阿尔法 1.115 — 贝塔 0.502 — 5 年 47 倍,年化 112%,最大回撤才 15.5%——对比上一篇纯小市值的"5 年 30 倍 17 回撤",**收益从 30 倍提升到 47 倍,回撤反而从 17%降到了 15.5%**。 说白了就是: 加了 ETF 引擎之后,不仅赚得更多了,还更稳了 。这不就是"既要又要"的最佳答案么? 维度 纯小市值 小市值 + ETF 轮动 进攻性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 防守性 ⭐⭐⭐ ⭐⭐⭐⭐⭐ 行情适应性 A 股弹性行情 全市场+全球资产 空仓时的机会成本 高(只能买货币 ETF ) 低(自动切到强势 ETF ) 核心逻辑:小市值是矛,ETF 轮动是盾——双核协同,攻守兼备 。 二、架构设计:两个子账户,各管各的 双核策略的架构其实不复杂,核心就是 子账户隔离 : 总资金 100% ├── 子账户 0:小市值策略( 50%) │ └── 每周二调仓,选中证 1000 最小市值股票 └── 子账户 1:五福 ETF 轮动( 50%) └── 每日午后轮动,从 100+只 ETF 中挑最强的 1 只 聚宽提供了 set_subportfolios 的功能,可以把一个账户拆成两个独立子账户,各自有独立的持仓和资金,互不干扰: set_subportfolios([ SubPortfolioConfig(cash=小市值资金, type='stock'), # 子账户 0 SubPortfolioConfig(cash=ETF 资金, type='stock'), # 子账户 1 ]) 这样做的好处是: 策略之间完全隔离 :小市值止损不会影响 ETF 持仓,反之亦然 资金分配清晰 :各占 50%,不会出现一边吃掉另一边资金的情况 独立记录收益 :可以分别看两个策略各自的表现,方便归因分析 三、ETF 轮动引擎拆解(站在大佬肩膀上) 小市值部分的逻辑我在上一篇已经拆过了,这里重点讲 ETF 轮动部分。 先说声感谢 :ETF 轮动这块我参考了社区里很多大佬的策略和思路,包括 ETF 池子的构建方式、动量打分的数学方法、震荡期切换机制等。我做的更多是「学习→理解→整合」的工作,算不上什么原创,更像是一个学习笔记。如果哪位大佬看到觉得某个模块眼熟,那大概率就是从您那学来的? 3.1 ETF 池子:固定池 + 动态池,双池合并 ETF 轮动的第一个难题是: 从哪些 ETF 里选? 我学习到的一个很聪明的做法—— 固定池 + 动态池合并 : 固定池 ( 108 只):手工精选的优质 ETF ,覆盖黄金、白银、纳指、恒生、各行业板块等 动态池 (全市场扫描):每天从全市场 ETF 中自动筛选流动性达标的头部标的,去重后取行业最强的那一只 关键过滤逻辑: 剔除宽基指数 ETF (沪深 300 、中证 500 等——这些不是行业轮动标的) 剔除债券/货币类 ETF (短融、国债、可转债等——这些不是趋势标的) 流动性门槛 :日均成交额低于全市场 ETF 均值/20000 的,直接淘汰 行业去重 :同行业多只 ETF 时,只保留成交额最高的那一只 最终合并出约 100-150 只 ETF 的"作战池"。 3.2 动量打分:拉普拉斯滤波 + 高斯滤波 ETF 轮动最核心的问题是: 怎么判断哪只 ETF 最强? 策略用的是 加权线性回归 + 数学滤波器 的组合方案: 动量得分计算 ( 25 日回看): 1. 对收盘价取对数 2. 用加权最小二乘法拟合趋势线(近期数据权重更高) 3. 斜率年化 → 年化收益率 4. 计算 R²(拟合优度)→ 趋势稳定度 5. 动量得分 = 年化收益率 × R² 说人话就是: 涨得快还涨得稳的 ETF ,得分最高 。 但这还不够。策略额外加了两层数学滤波器,用来判断"该不该现在买": 滤波器 用途 触发条件 拉普拉斯滤波 (正常期使用) 平滑价格,识别趋势 价格 > 滤波值 且 斜率 > 0.002 高斯滤波 (震荡期使用) 更强的降噪,更保守 价格 > 滤波值 且 斜率 > 0.002 正常行情用拉普拉斯(灵敏一点,抓趋势),震荡行情切高斯(保守一点,少挨打)。 两个滤波器自动切换 ,这个设计很巧妙。 3.3 震荡期自动切换:市场的"红绿灯" 策略有一套完整的"红绿灯"机制来判断当前是正常期还是震荡期: 进入震荡期(亮红灯) ——满足任一条件: 沪深 300 的乖离率( BIAS )> 8%(涨太多了,有回调风险) RSI 从 70 以上回落到 65 以下(超买后开始回落) 当天触发了止损(市场可能在变差) 退出震荡期(亮绿灯) ——满足任一条件: 从近 20 日低点反弹超过 4% 回撤收窄 + 多个复苏信号连续出现 震荡期持续超过 20 个交易日(强制退出,不能永远观望) 还有一个 冷却期设计 :每次红绿灯切换后,3 个交易日内不允许再次切换,防止频繁反复。 3.4 多层过滤漏斗 从作战池到最终买入,要过 七道关 : 100+只 ETF → 动量得分过滤( 0 ≤ 得分 ≤ 5 ) → R²过滤(> 0.4 ,趋势不稳的排除) → 成交量过滤(量比 <1.8 ,异常放量的排除) → 短期风控(近 3 天没有单日跌 > 3%) → 溢价率过滤(可选,防止 QDII 高溢价陷阱) → 动态滤波过滤(正常期/震荡期分别用不同滤波器) → 最终只选 1 只! 没错, 最终只持有 1 只 ETF 。这是一个非常激进但也非常纯粹的设计——全仓轮动,不分散。因为分散在 ETF 轮动里反而是稀释收益,不如集中火力追最强的那个。 3.5 分钟级止损:最后的保险丝 ETF 策略还有一个分钟级的止损机制( every_bar 频率运行): 固定止损 :当前价格跌破成本价的 95%时,立刻卖出 日内跌幅止损 (可选):如果当天相对昨收跌超过 5%,也立刻卖出 触发止损后会标记 stop_loss_triggered_today ,在午后 13:10 的检查中自动触发进入震荡期—— 止损不仅是保护本金,还会触发策略整体进入防守姿态 。 四、双核协同的几个关键细节 4.1 资金分配 当前是简单的 50:50 平分。但我在想,未来可以根据市场状态动态调整——比如 A 股弹性好的时候多给小市值,ETF 板块轮动强的时候多给 ETF 。这是一个可以继续优化的方向。 4.2 独立收益记录 策略每日收盘后会分别记录两个子策略的累计收益率,方便做归因分析。用 record() 函数输出到回测图表上,可以直观看到两条收益曲线。 def record_daily_performance(context): for i, strategy_key in enumerate(['strategy1', 'strategy2']): sub_portfolio = context.subportfolios[i] cumulative_return = (sub_portfolio.total_value / initial_cash - 1) * 100 # 记录到图表 record(小市值=小市值收益率, 五福 ETF=ETF 收益率) 4.3 滑点和佣金的差异化设置 很多人忽略的一个细节—— 股票和 ETF 的交易成本是不一样的 : set_slippage(FixedSlippage(0.002), type="stock") # 股票:固定滑点 set_slippage(PriceRelatedSlippage(0.0001), type="fund") # ETF:比例滑点 # 股票佣金:万 0.85 ,卖出还有千分之 0.5 的印花税 # ETF 佣金:万 0.5 ,无印花税 ETF 的交易成本天然比股票低很多,这也是 ETF 轮动策略能频繁调仓的基础。 五、一个小白的学习感悟 不要只盯一个赛道 。小市值再好,碰到风格切换也会歇菜。加一个 ETF 轮动引擎,相当于给自己多开了一个全球化的战场。 站在巨人肩膀上学得更快 。ETF 轮动这一整套逻辑,如果让我从零开始写,可能半年都写不出来。但社区里有那么多大佬无私分享代码和思路,我做的只是把不同的模块学懂、拼到一起。 聚宽社区的开源氛围真的很好 ,感谢每一位分享策略的前辈。 数学滤波器很有意思 。拉普拉斯、高斯这些信号处理领域的工具,用到金融数据上效果很好。作为小白第一次接触这些概念,说实话还没有完全吃透,后面还要继续啃论文和代码。 震荡期切换是 ETF 轮动的灵魂 。没有这个机制,ETF 轮动在震荡行情里会被反复打脸。有了红绿灯+冷却期,策略才能在"追趋势"和"认怂"之间优雅切换。 子账户隔离是个好设计 。让两个策略各管各的,不争抢资金,不相互干扰。简单粗暴但有效。 最后还是那句话:风控是一切的基础 。不管是小市值的五道防线,还是 ETF 的分钟级止损,核心都是同一个信仰—— 先活着,再赚钱 。 六、实战检验 说得再好不如跑起来看。我已经把这套「小市值+ETF 轮动_双龙出海」策略上传到了 ** 9db 量化竞技场 **,用真实模拟盘每天跑。 欢迎围观、拍砖。在 9db 上可以看到每天的交易记录、持仓变化、收益曲线。比回测更真实,因为是每天实时跑的——好不好,跑几周就知道了。 也欢迎大家去看看其他大佬的策略表现,和自己的策略做个对比。量化这条路,闭门造车不如多看多学。 作为一个刚入门的量化小白,文中很多理解可能不够深入甚至有偏差,欢迎各位大佬在评论区指正。也特别感谢社区里那些无私分享策略和思路的前辈们,没有你们的开源精神,就没有这篇学习笔记。 免责声明:以上内容仅为个人学习记录,不构成任何投资建议。股市有风险,投资需谨慎。
只需要4个字就可以测试的思考题,测试大模型对于未知内容的拆解习惯和搜索主动性 测试题 (点击了解更多详细信息) 经测试 阵亡组 gpt5-免费版 qwen3.7max gemini3.5flash-网页版 kimi2.6think gemini3.1pro-全系列 以上全部阵亡,符合使用的刻板印象 胜者组 gpt5.5think 豆包专家版 hy3-studio(!?强强) gemini3.5flash-studio 测试题的解释 (点击了解更多详细信息) 测试题原理;用一种比较难懂的方式描述出来,如果模型智能足够就应该知道自己可能不懂,如果同时调用搜索积极,就会去搜索 14 个帖子 - 7 位参与者 阅读完整话题
最近在某社区看到 Mean.Saint 老师分享的小市值策略,回测 5 年收益 30 倍、最大回撤仅 17%,这个数据震撼到我了。于是我花了整整两个周末,逐行拆读了这份将近 1200 行的代码。今天把我的学习笔记分享出来,希望能帮到和我一样正在入门的朋友。 一、第一眼:这不只是一个选股策略 刚打开代码的时候,我以为小市值策略就是"选市值最小的股票买入"。但读完之后我才发现, 选股只占了整个策略的 20%,剩下 80%全是风控 。 这是我学到的第一个认知:好的量化策略,不是"怎么赚更多",而是"怎么少亏"。 策略的整体架构大致是这样的: 每周二执行: 1. 早盘 9:05 → 预处理(一致性检查、昨日涨停记录) 2. 早盘 9:31 → 顶背离检测 3. 早盘 9:40 → 卖出不在目标列表的持仓 4. 早盘 9:45 → 买入新的目标股票 5. 盘中 10:00 → 止盈止损检查 6. 盘中 10:30 → ATR 止损价更新 + 放量换手检测 7. 尾盘 14:00 → 涨停打开检测 + ATR 再次更新 8. 尾盘 14:50 → 成交额宽度防御检查 看到这个时间表的时候,我第一次意识到: 一个成熟策略,是在盘中不断"巡检"的,而不是开盘买了就不管了 。 二、选股模块:三代进化,越来越"讲究" 策略提供了三个版本的选股逻辑( v1/v2/v3 ),默认使用 v3 。我逐个读了一遍,能清晰看到作者的思路演变: v1 — 最朴素的想法 从中证 1000 成份股里选流通市值最小的 50 只,再按总市值排序取前 30 只,最后做 行业分散 (每个二级行业只选 1 只)。 我的理解:v1 的核心思想很简单——"买最小的,但别都买同一个行业"。 v2 — 加入了财务门槛 在 v1 基础上增加了 ROE>15%、ROA>10%、归母净利润>0 、营业收入>1 亿等条件,并且限制股价≤20 元。 我的理解:开始有"排雷"意识了,不再是无脑买最小的,而是要求公司"真的在赚钱"。 v3 — 终极版本 v3 最大的亮点是引入了一个 九项年报排雷系统 ( apply_nine_point_audit ),我觉得这是整个策略里最值得学习的模块之一。它会检查: 排雷项 检查内容 踩雷扣分 1 年报是否晚于 4 月 20 日才披露 +1 2 业绩预告是否预减/亏损 +1 3 审计意见是否非标(直接剔除) 直接 OUT 4 扣非净利润是否为负或占比过低 +1 5 净利润为正但经营性现金流为负 +1 6 商誉占净资产超过 30% +1 7 负债率>70%或短期借款>现金 +1 8 大股东质押比例超 80% +1 9 近一年是否被监管立案调查 +1 累计扣分≥2 分的股票直接剔除。 读到这里的时候我非常感慨——很多初学者(包括之前的我)只关心"这只股票能涨多少",但这套排雷系统关心的是"这只股票会不会爆雷"。在小市值的世界里,一颗雷就可能把所有收益炸没。 另外 v3 还有一个细节让我印象深刻: 2025 年 1 月 1 日之前用简单的审计意见筛选,之后才切换到九项排雷 。这说明作者是在持续迭代策略的,不是一蹴而就的。 三、风控体系:五道防线,层层设防 这是我花时间最久、也收获最大的部分。策略一共有 五道防线 : 第一道:固定止损 + 成本保护止损 最基础的风控——亏损 9%直接卖出。但在此基础上,策略还增加了一个 阶梯式成本保护 : 盈利 ≥ 15% → 止损线提升到成本价(保本) 盈利 ≥ 30% → 止损线提升到 +10%(锁定利润) 盈利 ≥ 100% → 直接止盈卖出 这让我想到一句话:"让利润奔跑,但给它系上安全绳。"以前我做手动交易的时候,经常眼看着 30%的浮盈变成亏损,如果当时有这套逻辑,至少能保住 10%。 第二道:ATR 动态止损 这是我第一次在实际策略中看到 ATR 的用法。策略用 14 日 ATR 计算一个动态止损价: 止损价 = 买入成本 - 2 倍 ATR 关键是这个止损价 只会往上移,不会往下移 ( trailing stop )。股价涨的时候,止损价跟着涨;股价跌的时候,止损价不动。一旦跌破就卖出。 这比固定止损线聪明太多了——波动大的股票,止损线会自动放宽;波动小的股票,止损线会自动收紧。 第三道:MACD 顶背离检测 策略会检测中证 1000 指数( 399101 )的 MACD 顶背离信号:价格创新高、但 DIF 没有创新高,同时 MACD 柱由正转负。 一旦检测到顶背离,直接清仓所有非涨停股票,并且在接下来 10 个交易日内暂停买入。 我的感受:这是一个"大势判断"的模块。无论个股多好,大盘不行的时候就不玩了。 第四道:微盘股一致性风控 这个模块我读了三遍才理解。它的思路是: 取全市场最小 5%市值的股票,看它们昨天的涨跌幅 计算这些股票涨跌幅的 一致性 (在均值±标准差范围内的比例) 用 120 日布林带动态计算一致性的上轨 如果 中位数跌幅>2% 且 一致性超过上轨 → 全场微盘在同步暴跌 → 清仓! 翻译成人话就是: 如果所有小股票都在一起跌,说明是系统性风险,赶紧跑。 但如果大盘均线是向上的(牛市环境),这个检查直接跳过。作者的意思是:牛市里的同步回调是机会,熊市里的同步下跌是灾难。 第五道:放量换手检测 日内实时监控持仓股票的换手率。如果今日换手率 > 10% 且超过 20 日均值的 2 倍,判定为 异常放量 ,立即卖出。 我之前只知道"放量上涨是好事",看了这段代码才明白:对于小市值股票来说,突然放量可能意味着主力在出货。 四、两个让我"恍然大悟"的细节 1. 冷却期机制 止损卖出的股票, 2 天内不能再买回来 : g.no_buy_after_day = 2 # 止损后不买入的窗口期 这个设计太人性化了。我以前手动交易的时候,经常止损后心怀不甘又买回来,结果亏得更多。策略相当于强制给自己"冷静"的时间。 2. 动态持股数量 策略根据中证 1000 的 10 日均线偏离度,动态调整持股数量: 指数偏离 ≥ +200 点 → 只持 3 只(市场过热,集中持仓) 偏离 ≥ -200 点 → 持 4 只 偏离 ≥ -500 点 → 持 5 只 偏离 <-500 点 → 持 6 只(市场低迷,分散风险) 市场越弱,持仓越分散;市场越强,持仓越集中。 这个思路我之前完全没想过,一直以为"分散就是好的"。但仔细想想,牛市里集中持仓才能抓住涨幅最大的票。 五、我从这个策略中学到了什么 读完这 1163 行代码,我最大的感悟是: 风控不是"加上去"的,而是"长出来"的。 每一道防线背后,可能都有作者一次惨痛的亏损经历。 好的策略是不断迭代的。 从 v1 到 v3 ,从简单的审计筛选到九项排雷,这不是一天就写出来的。 框架比参数重要。 与其纠结"止损线到底设 8%还是 9%",不如先把多层防御体系搭起来。 小市值策略的核心不是选到牛股,而是活得够久。 30 倍收益不是靠一两只翻倍股实现的,而是靠五年如一日地避开地雷、控制回撤积累出来的。 六、学完之后,拿去实战 PK 一下? 读完这个策略之后,我一直在想一个问题: 回测 30 倍的策略,拿到真实市场里到底能排第几? 后来我发现了一个叫 9db 量化竞技场 的网站。它的玩法很有意思——你可以把自己看好的策略上传交割单,然后和其他人的策略 同台 PK ,******/模拟收益率实时排名。 我把这个小市值策略参与竞技上去之后,发现: 有些周期确实能排进前 10 ,说明策略的爆发力是真的强 但也有些周期排名靠后,尤其是大盘连续下跌的时候 这给了我一个很大的启发: 单看 5 年的回测收益率是不够的,还要看策略在不同市场环境下的稳定性。 在 9db 上和几百个策略一起比,能够更客观地评估自己策略的水平。 如果你也在学习量化,推荐去 9db.com 看看,不用注册就能浏览排行榜,看看大佬们的策略都是什么水平。知道差距,才知道努力的方向。 我知道这篇文章可能有很多理解不到位的地方,毕竟我还是一个入门半年的新手。如果哪里理解有误,欢迎大佬们在评论区指正。 也特别感谢 Mean.Saint 老师的无私分享,让我这样的新手有机会学习到一套如此完整的策略框架。对我来说,学到的不仅是代码,更是一种**"敬畏市场、系统思考"**的量化思维方式。 最后,如果你也是刚入门的朋友,我的建议是: 先别急着跑策略赚钱,找一个好的策略,一行一行读下去。 你会发现,最好的教材不在书本里,而在社区大佬的代码里。 以上是一个量化小白的学习笔记,欢迎交流讨论 ?
最近在某社区看到 Mean.Saint 老师分享的小市值策略,回测 5 年收益 30 倍、最大回撤仅 17%,这个数据震撼到我了。于是我花了整整两个周末,逐行拆读了这份将近 1200 行的代码。今天把我的学习笔记分享出来,希望能帮到和我一样正在入门的朋友。 一、第一眼:这不只是一个选股策略 刚打开代码的时候,我以为小市值策略就是"选市值最小的股票买入"。但读完之后我才发现, 选股只占了整个策略的 20%,剩下 80%全是风控 。 这是我学到的第一个认知:好的量化策略,不是"怎么赚更多",而是"怎么少亏"。 策略的整体架构大致是这样的: 每周二执行: 1. 早盘 9:05 → 预处理(一致性检查、昨日涨停记录) 2. 早盘 9:31 → 顶背离检测 3. 早盘 9:40 → 卖出不在目标列表的持仓 4. 早盘 9:45 → 买入新的目标股票 5. 盘中 10:00 → 止盈止损检查 6. 盘中 10:30 → ATR 止损价更新 + 放量换手检测 7. 尾盘 14:00 → 涨停打开检测 + ATR 再次更新 8. 尾盘 14:50 → 成交额宽度防御检查 看到这个时间表的时候,我第一次意识到: 一个成熟策略,是在盘中不断"巡检"的,而不是开盘买了就不管了 。 二、选股模块:三代进化,越来越"讲究" 策略提供了三个版本的选股逻辑( v1/v2/v3 ),默认使用 v3 。我逐个读了一遍,能清晰看到作者的思路演变: v1 — 最朴素的想法 从中证 1000 成份股里选流通市值最小的 50 只,再按总市值排序取前 30 只,最后做 行业分散 (每个二级行业只选 1 只)。 我的理解:v1 的核心思想很简单——"买最小的,但别都买同一个行业"。 v2 — 加入了财务门槛 在 v1 基础上增加了 ROE>15%、ROA>10%、归母净利润>0 、营业收入>1 亿等条件,并且限制股价≤20 元。 我的理解:开始有"排雷"意识了,不再是无脑买最小的,而是要求公司"真的在赚钱"。 v3 — 终极版本 v3 最大的亮点是引入了一个 九项年报排雷系统 ( apply_nine_point_audit ),我觉得这是整个策略里最值得学习的模块之一。它会检查: 排雷项 检查内容 踩雷扣分 1 年报是否晚于 4 月 20 日才披露 +1 2 业绩预告是否预减/亏损 +1 3 审计意见是否非标(直接剔除) 直接 OUT 4 扣非净利润是否为负或占比过低 +1 5 净利润为正但经营性现金流为负 +1 6 商誉占净资产超过 30% +1 7 负债率>70%或短期借款>现金 +1 8 大股东质押比例超 80% +1 9 近一年是否被监管立案调查 +1 累计扣分≥2 分的股票直接剔除。 读到这里的时候我非常感慨——很多初学者(包括之前的我)只关心"这只股票能涨多少",但这套排雷系统关心的是"这只股票会不会爆雷"。在小市值的世界里,一颗雷就可能把所有收益炸没。 另外 v3 还有一个细节让我印象深刻: 2025 年 1 月 1 日之前用简单的审计意见筛选,之后才切换到九项排雷 。这说明作者是在持续迭代策略的,不是一蹴而就的。 三、风控体系:五道防线,层层设防 这是我花时间最久、也收获最大的部分。策略一共有 五道防线 : 第一道:固定止损 + 成本保护止损 最基础的风控——亏损 9%直接卖出。但在此基础上,策略还增加了一个 阶梯式成本保护 : 盈利 ≥ 15% → 止损线提升到成本价(保本) 盈利 ≥ 30% → 止损线提升到 +10%(锁定利润) 盈利 ≥ 100% → 直接止盈卖出 这让我想到一句话:"让利润奔跑,但给它系上安全绳。"以前我做手动交易的时候,经常眼看着 30%的浮盈变成亏损,如果当时有这套逻辑,至少能保住 10%。 第二道:ATR 动态止损 这是我第一次在实际策略中看到 ATR 的用法。策略用 14 日 ATR 计算一个动态止损价: 止损价 = 买入成本 - 2 倍 ATR 关键是这个止损价 只会往上移,不会往下移 ( trailing stop )。股价涨的时候,止损价跟着涨;股价跌的时候,止损价不动。一旦跌破就卖出。 这比固定止损线聪明太多了——波动大的股票,止损线会自动放宽;波动小的股票,止损线会自动收紧。 第三道:MACD 顶背离检测 策略会检测中证 1000 指数( 399101 )的 MACD 顶背离信号:价格创新高、但 DIF 没有创新高,同时 MACD 柱由正转负。 一旦检测到顶背离,直接清仓所有非涨停股票,并且在接下来 10 个交易日内暂停买入。 我的感受:这是一个"大势判断"的模块。无论个股多好,大盘不行的时候就不玩了。 第四道:微盘股一致性风控 这个模块我读了三遍才理解。它的思路是: 取全市场最小 5%市值的股票,看它们昨天的涨跌幅 计算这些股票涨跌幅的 一致性 (在均值±标准差范围内的比例) 用 120 日布林带动态计算一致性的上轨 如果 中位数跌幅>2% 且 一致性超过上轨 → 全场微盘在同步暴跌 → 清仓! 翻译成人话就是: 如果所有小股票都在一起跌,说明是系统性风险,赶紧跑。 但如果大盘均线是向上的(牛市环境),这个检查直接跳过。作者的意思是:牛市里的同步回调是机会,熊市里的同步下跌是灾难。 第五道:放量换手检测 日内实时监控持仓股票的换手率。如果今日换手率 > 10% 且超过 20 日均值的 2 倍,判定为 异常放量 ,立即卖出。 我之前只知道"放量上涨是好事",看了这段代码才明白:对于小市值股票来说,突然放量可能意味着主力在出货。 四、两个让我"恍然大悟"的细节 1. 冷却期机制 止损卖出的股票, 2 天内不能再买回来 : g.no_buy_after_day = 2 # 止损后不买入的窗口期 这个设计太人性化了。我以前手动交易的时候,经常止损后心怀不甘又买回来,结果亏得更多。策略相当于强制给自己"冷静"的时间。 2. 动态持股数量 策略根据中证 1000 的 10 日均线偏离度,动态调整持股数量: 指数偏离 ≥ +200 点 → 只持 3 只(市场过热,集中持仓) 偏离 ≥ -200 点 → 持 4 只 偏离 ≥ -500 点 → 持 5 只 偏离 <-500 点 → 持 6 只(市场低迷,分散风险) 市场越弱,持仓越分散;市场越强,持仓越集中。 这个思路我之前完全没想过,一直以为"分散就是好的"。但仔细想想,牛市里集中持仓才能抓住涨幅最大的票。 五、我从这个策略中学到了什么 读完这 1163 行代码,我最大的感悟是: 风控不是"加上去"的,而是"长出来"的。 每一道防线背后,可能都有作者一次惨痛的亏损经历。 好的策略是不断迭代的。 从 v1 到 v3 ,从简单的审计筛选到九项排雷,这不是一天就写出来的。 框架比参数重要。 与其纠结"止损线到底设 8%还是 9%",不如先把多层防御体系搭起来。 小市值策略的核心不是选到牛股,而是活得够久。 30 倍收益不是靠一两只翻倍股实现的,而是靠五年如一日地避开地雷、控制回撤积累出来的。 六、学完之后,拿去实战 PK 一下? 读完这个策略之后,我一直在想一个问题: 回测 30 倍的策略,拿到真实市场里到底能排第几? 后来我发现了一个叫 9db 量化竞技场 的网站。它的玩法很有意思——你可以把自己看好的策略上传交割单,然后和其他人的策略 同台 PK ,******/模拟收益率实时排名。 我把这个小市值策略参与竞技上去之后,发现: 有些周期确实能排进前 10 ,说明策略的爆发力是真的强 但也有些周期排名靠后,尤其是大盘连续下跌的时候 这给了我一个很大的启发: 单看 5 年的回测收益率是不够的,还要看策略在不同市场环境下的稳定性。 在 9db 上和几百个策略一起比,能够更客观地评估自己策略的水平。 如果你也在学习量化,推荐去 9db.com 看看,不用注册就能浏览排行榜,看看大佬们的策略都是什么水平。知道差距,才知道努力的方向。 我知道这篇文章可能有很多理解不到位的地方,毕竟我还是一个入门半年的新手。如果哪里理解有误,欢迎大佬们在评论区指正。 也特别感谢 Mean.Saint 老师的无私分享,让我这样的新手有机会学习到一套如此完整的策略框架。对我来说,学到的不仅是代码,更是一种**"敬畏市场、系统思考"**的量化思维方式。 最后,如果你也是刚入门的朋友,我的建议是: 先别急着跑策略赚钱,找一个好的策略,一行一行读下去。 你会发现,最好的教材不在书本里,而在社区大佬的代码里。 以上是一个量化小白的学习笔记,欢迎交流讨论 ?
🧠 Steam 式"囤货"心理学机制深度分析与接口设计 📊 一、心理学驱动机制拆解 1. 所有权幻觉( Endowment Effect ) 心理原理:人们对自己拥有的物品估值 > 未拥有物品 Steam 实现: ✓ 无限库容量(无物理限制) ✓ 永久拥有权(即使不玩) ✓ 库总价值显示("你已拥有 ¥12,450 的游戏") ✓ 已购游戏永不消失(即使下架也能下载) 2. 稀缺性焦虑( FOMO - Fear of Missing Out ) 心理原理:害怕错过限时机会 Steam 实现: ⏰ 倒计时器("折扣剩余 2 小时 15 分") 📅 季节性大促(夏促/冬促,一年仅 2 次) 🔥 每日特惠( 24 小时轮换) 💎 闪购( Flash Sale ,随机突发) 3. 锚定效应( Anchoring Effect ) 心理原理:首次看到的价格成为心理锚点 Steam 实现: 💰 原价划线(¥198 → ¥59 ) 📉 折扣百分比(-70% 比省 ¥139 更醒目) 🏷️ "历史最低价"标签(绿色高亮) 📦 捆绑包("单独购买需 ¥500 ,捆绑仅 ¥199") 4. 收集欲与完成欲( Completionism ) 心理原理:人类天生有收集完整集合的冲动 Steam 实现: 🏆 成就系统( 0/100 → 99/100 让人抓狂) 🃏 集换式卡牌(差 1 张合成徽章) ️ 个人资料等级(升级需收集徽章) 📚 系列捆绑("集齐 Half-Life 全系列") 5. 沉没成本谬误( Sunk Cost Fallacy ) 心理原理:已投入成本影响后续决策 Steam 实现: 💵 库总价值统计("已投资 ¥8,234") ⏱️ 游戏时长显示("已玩 127 小时") 📊 已玩 vs 未玩分类("库中 342 款,已玩 56 款") 🎁 礼物库存("你有 3 个未发送礼物") 6. 社交证明( Social Proof ) 心理原理:他人行为影响自己决策 Steam 实现: 👥 好友正在玩("3 位好友在玩 Elden Ring") 📈 同时在线人数("当前 125,234 人在玩") ⭐ 好评率("好评如潮 95%") 💬 评测数量("最近 30 天有 12,456 篇评测") 7. 心理账户( Mental Accounting ) 心理原理:人们为不同用途设立独立心理账户 Steam 实现: 💳 钱包余额("Steam 钱包 ¥156.80",必须花掉) 🎫 优惠券("你有 ¥20 优惠券即将过期") 🎁 礼物卡(收到的礼物必须入库或转赠) 🪙 积分商店( Steam Points ,只能买装饰品) 做商城的时候,参考这个来实现,真的很好玩,哈哈
最近在某社区看到 Mean.Saint 老师分享的小市值策略,回测 5 年收益 30 倍、最大回撤仅 17%,这个数据震撼到我了。于是我花了整整两个周末,逐行拆读了这份将近 1200 行的代码。今天把我的学习笔记分享出来,希望能帮到和我一样正在入门的朋友。 一、第一眼:这不只是一个选股策略 刚打开代码的时候,我以为小市值策略就是"选市值最小的股票买入"。但读完之后我才发现, 选股只占了整个策略的 20%,剩下 80%全是风控 。 这是我学到的第一个认知:好的量化策略,不是"怎么赚更多",而是"怎么少亏"。 策略的整体架构大致是这样的: 每周二执行: 1. 早盘 9:05 → 预处理(一致性检查、昨日涨停记录) 2. 早盘 9:31 → 顶背离检测 3. 早盘 9:40 → 卖出不在目标列表的持仓 4. 早盘 9:45 → 买入新的目标股票 5. 盘中 10:00 → 止盈止损检查 6. 盘中 10:30 → ATR 止损价更新 + 放量换手检测 7. 尾盘 14:00 → 涨停打开检测 + ATR 再次更新 8. 尾盘 14:50 → 成交额宽度防御检查 看到这个时间表的时候,我第一次意识到: 一个成熟策略,是在盘中不断"巡检"的,而不是开盘买了就不管了 。 二、选股模块:三代进化,越来越"讲究" 策略提供了三个版本的选股逻辑( v1/v2/v3 ),默认使用 v3 。我逐个读了一遍,能清晰看到作者的思路演变: v1 — 最朴素的想法 从中证 1000 成份股里选流通市值最小的 50 只,再按总市值排序取前 30 只,最后做 行业分散 (每个二级行业只选 1 只)。 我的理解:v1 的核心思想很简单——"买最小的,但别都买同一个行业"。 v2 — 加入了财务门槛 在 v1 基础上增加了 ROE>15%、ROA>10%、归母净利润>0 、营业收入>1 亿等条件,并且限制股价≤20 元。 我的理解:开始有"排雷"意识了,不再是无脑买最小的,而是要求公司"真的在赚钱"。 v3 — 终极版本 v3 最大的亮点是引入了一个 九项年报排雷系统 ( apply_nine_point_audit ),我觉得这是整个策略里最值得学习的模块之一。它会检查: 排雷项 检查内容 踩雷扣分 1 年报是否晚于 4 月 20 日才披露 +1 2 业绩预告是否预减/亏损 +1 3 审计意见是否非标(直接剔除) 直接 OUT 4 扣非净利润是否为负或占比过低 +1 5 净利润为正但经营性现金流为负 +1 6 商誉占净资产超过 30% +1 7 负债率>70%或短期借款>现金 +1 8 大股东质押比例超 80% +1 9 近一年是否被监管立案调查 +1 累计扣分≥2 分的股票直接剔除。 读到这里的时候我非常感慨——很多初学者(包括之前的我)只关心"这只股票能涨多少",但这套排雷系统关心的是"这只股票会不会爆雷"。在小市值的世界里,一颗雷就可能把所有收益炸没。 另外 v3 还有一个细节让我印象深刻: 2025 年 1 月 1 日之前用简单的审计意见筛选,之后才切换到九项排雷 。这说明作者是在持续迭代策略的,不是一蹴而就的。 三、风控体系:五道防线,层层设防 这是我花时间最久、也收获最大的部分。策略一共有 五道防线 : 第一道:固定止损 + 成本保护止损 最基础的风控——亏损 9%直接卖出。但在此基础上,策略还增加了一个 阶梯式成本保护 : 盈利 ≥ 15% → 止损线提升到成本价(保本) 盈利 ≥ 30% → 止损线提升到 +10%(锁定利润) 盈利 ≥ 100% → 直接止盈卖出 这让我想到一句话:"让利润奔跑,但给它系上安全绳。"以前我做手动交易的时候,经常眼看着 30%的浮盈变成亏损,如果当时有这套逻辑,至少能保住 10%。 第二道:ATR 动态止损 这是我第一次在实际策略中看到 ATR 的用法。策略用 14 日 ATR 计算一个动态止损价: 止损价 = 买入成本 - 2 倍 ATR 关键是这个止损价 只会往上移,不会往下移 ( trailing stop )。股价涨的时候,止损价跟着涨;股价跌的时候,止损价不动。一旦跌破就卖出。 这比固定止损线聪明太多了——波动大的股票,止损线会自动放宽;波动小的股票,止损线会自动收紧。 第三道:MACD 顶背离检测 策略会检测中证 1000 指数( 399101 )的 MACD 顶背离信号:价格创新高、但 DIF 没有创新高,同时 MACD 柱由正转负。 一旦检测到顶背离,直接清仓所有非涨停股票,并且在接下来 10 个交易日内暂停买入。 我的感受:这是一个"大势判断"的模块。无论个股多好,大盘不行的时候就不玩了。 第四道:微盘股一致性风控 这个模块我读了三遍才理解。它的思路是: 取全市场最小 5%市值的股票,看它们昨天的涨跌幅 计算这些股票涨跌幅的 一致性 (在均值±标准差范围内的比例) 用 120 日布林带动态计算一致性的上轨 如果 中位数跌幅>2% 且 一致性超过上轨 → 全场微盘在同步暴跌 → 清仓! 翻译成人话就是: 如果所有小股票都在一起跌,说明是系统性风险,赶紧跑。 但如果大盘均线是向上的(牛市环境),这个检查直接跳过。作者的意思是:牛市里的同步回调是机会,熊市里的同步下跌是灾难。 第五道:放量换手检测 日内实时监控持仓股票的换手率。如果今日换手率 > 10% 且超过 20 日均值的 2 倍,判定为 异常放量 ,立即卖出。 我之前只知道"放量上涨是好事",看了这段代码才明白:对于小市值股票来说,突然放量可能意味着主力在出货。 四、两个让我"恍然大悟"的细节 1. 冷却期机制 止损卖出的股票, 2 天内不能再买回来 : g.no_buy_after_day = 2 # 止损后不买入的窗口期 这个设计太人性化了。我以前手动交易的时候,经常止损后心怀不甘又买回来,结果亏得更多。策略相当于强制给自己"冷静"的时间。 2. 动态持股数量 策略根据中证 1000 的 10 日均线偏离度,动态调整持股数量: 指数偏离 ≥ +200 点 → 只持 3 只(市场过热,集中持仓) 偏离 ≥ -200 点 → 持 4 只 偏离 ≥ -500 点 → 持 5 只 偏离 <-500 点 → 持 6 只(市场低迷,分散风险) 市场越弱,持仓越分散;市场越强,持仓越集中。 这个思路我之前完全没想过,一直以为"分散就是好的"。但仔细想想,牛市里集中持仓才能抓住涨幅最大的票。 五、我从这个策略中学到了什么 读完这 1163 行代码,我最大的感悟是: 风控不是"加上去"的,而是"长出来"的。 每一道防线背后,可能都有作者一次惨痛的亏损经历。 好的策略是不断迭代的。 从 v1 到 v3 ,从简单的审计筛选到九项排雷,这不是一天就写出来的。 框架比参数重要。 与其纠结"止损线到底设 8%还是 9%",不如先把多层防御体系搭起来。 小市值策略的核心不是选到牛股,而是活得够久。 30 倍收益不是靠一两只翻倍股实现的,而是靠五年如一日地避开地雷、控制回撤积累出来的。 六、学完之后,拿去实战 PK 一下? 读完这个策略之后,我一直在想一个问题: 回测 30 倍的策略,拿到真实市场里到底能排第几? 后来我发现了一个叫 9db 量化竞技场 的网站。它的玩法很有意思——你可以把自己看好的策略上传交割单,然后和其他人的策略 同台 PK ,******/模拟收益率实时排名。 我把这个小市值策略参与竞技上去之后,发现: 有些周期确实能排进前 10 ,说明策略的爆发力是真的强 但也有些周期排名靠后,尤其是大盘连续下跌的时候 这给了我一个很大的启发: 单看 5 年的回测收益率是不够的,还要看策略在不同市场环境下的稳定性。 在 9db 上和几百个策略一起比,能够更客观地评估自己策略的水平。 如果你也在学习量化,推荐去 9db.com 看看,不用注册就能浏览排行榜,看看大佬们的策略都是什么水平。知道差距,才知道努力的方向。 我知道这篇文章可能有很多理解不到位的地方,毕竟我还是一个入门半年的新手。如果哪里理解有误,欢迎大佬们在评论区指正。 也特别感谢 Mean.Saint 老师的无私分享,让我这样的新手有机会学习到一套如此完整的策略框架。对我来说,学到的不仅是代码,更是一种**"敬畏市场、系统思考"**的量化思维方式。 最后,如果你也是刚入门的朋友,我的建议是: 先别急着跑策略赚钱,找一个好的策略,一行一行读下去。 你会发现,最好的教材不在书本里,而在社区大佬的代码里。 以上是一个量化小白的学习笔记,欢迎交流讨论 ?
🧠 Steam 式"囤货"心理学机制深度分析与接口设计 📊 一、心理学驱动机制拆解 1. 所有权幻觉( Endowment Effect ) 心理原理:人们对自己拥有的物品估值 > 未拥有物品 Steam 实现: ✓ 无限库容量(无物理限制) ✓ 永久拥有权(即使不玩) ✓ 库总价值显示("你已拥有 ¥12,450 的游戏") ✓ 已购游戏永不消失(即使下架也能下载) 2. 稀缺性焦虑( FOMO - Fear of Missing Out ) 心理原理:害怕错过限时机会 Steam 实现: ⏰ 倒计时器("折扣剩余 2 小时 15 分") 📅 季节性大促(夏促/冬促,一年仅 2 次) 🔥 每日特惠( 24 小时轮换) 💎 闪购( Flash Sale ,随机突发) 3. 锚定效应( Anchoring Effect ) 心理原理:首次看到的价格成为心理锚点 Steam 实现: 💰 原价划线(¥198 → ¥59 ) 📉 折扣百分比(-70% 比省 ¥139 更醒目) 🏷️ "历史最低价"标签(绿色高亮) 📦 捆绑包("单独购买需 ¥500 ,捆绑仅 ¥199") 4. 收集欲与完成欲( Completionism ) 心理原理:人类天生有收集完整集合的冲动 Steam 实现: 🏆 成就系统( 0/100 → 99/100 让人抓狂) 🃏 集换式卡牌(差 1 张合成徽章) ️ 个人资料等级(升级需收集徽章) 📚 系列捆绑("集齐 Half-Life 全系列") 5. 沉没成本谬误( Sunk Cost Fallacy ) 心理原理:已投入成本影响后续决策 Steam 实现: 💵 库总价值统计("已投资 ¥8,234") ⏱️ 游戏时长显示("已玩 127 小时") 📊 已玩 vs 未玩分类("库中 342 款,已玩 56 款") 🎁 礼物库存("你有 3 个未发送礼物") 6. 社交证明( Social Proof ) 心理原理:他人行为影响自己决策 Steam 实现: 👥 好友正在玩("3 位好友在玩 Elden Ring") 📈 同时在线人数("当前 125,234 人在玩") ⭐ 好评率("好评如潮 95%") 💬 评测数量("最近 30 天有 12,456 篇评测") 7. 心理账户( Mental Accounting ) 心理原理:人们为不同用途设立独立心理账户 Steam 实现: 💳 钱包余额("Steam 钱包 ¥156.80",必须花掉) 🎫 优惠券("你有 ¥20 优惠券即将过期") 🎁 礼物卡(收到的礼物必须入库或转赠) 🪙 积分商店( Steam Points ,只能买装饰品) 做商城的时候,参考这个来实现,真的很好玩,哈哈
VideoLens 访问地址 https://videolens.cc/zh 可用于短视频反推提示词。 贴一个小红书/抖音短视频的分享链接,或者直接传本地短视频,你就能得到: 编导级拆解报告:逐字稿(带时间戳)、镜头、节奏与钩子、画面信息等。 还原的提示词:可用于复刻视频的提示词(含中英文对照) 适合谁用 / 能干嘛: 短视频创作者 / 博主:拆解爆款的结构钩子与节奏,快速产出同类内容 内容运营 / MCN:批量拆解对标账号,沉淀可复用的选题与脚本方法论 电商 / 带货商家:还原种草视频的痛点钩子与转化逻辑,套用到自己的产品 AI 视频创作者:把喜欢的视频还原成可投喂 Sora / 可灵 / 即梦 的生成提示词 编导 / 剪辑师:逐镜拆解视听语言(景别、构图、转场、BGM 卡点),做分镜参考 广告 / 营销策划:研究爆款创意公式,提炼可复制的脚本框架 新版功能 优化了提示词,升级了大模型,新增了 MCP 功能 欢迎使用~
1、什么是条件随机场 拆解词语,就是条件、随机、场。 随机场 这里不能按顺序说,先说场。电场,空间中每个位置都有。这里的场,则是随机变量的场。比如说,一句话里面每个词语的词性都是随机的。一张图上每个像素点所属的类别也都是随机的。 条件 意思是条件变量。条件随机场是给定随机变量X的 条件下 ,随机变量Y的马尔可夫随机场。 2、于是就不得不介绍马尔可夫随机场。(又叫概率无向图模型)(实际上书上是先介绍了这个) 1、概率无向图模型是满足成对、局部、全局马尔可夫性的联合概率分布P(Y),这里Y是一组随机变量. (这些马尔可夫性全都等价) 2、概率图里面,结点表示一个随机变量 Y_v (这个latex怎么不渲染) 3、要满足马尔可夫性挺容易,就是如果两个节点之间没有边(或者两团节点之间没有边)那他们必须条件独立. 马尔可夫场的最大特点是易于因子分解。我目前还不知道这玩意有什么用,但是我已经看懂了。 1、最大团是什么 2、势函数 3、Hammersley-Clifford定理 (也就是因子分解定理) 接下来我会写什么。 1、条件随机场的参数化形式、简化形式和矩阵形式。 2、条件随机场的概率计算问题 3、条件随机场的学习算法 4、条件随机场的预测算法 1 个帖子 - 1 位参与者 阅读完整话题
具体工作流程:你给它一个大任务,它自己拆解,一次性派出几十到几百个并行的 subagent(子智能体)去干,干完会让另一批 agent 去验证,甚至专门派 agent 去挑刺,反复迭代到结果收敛,最后给你一个整合好的答案。整个过程能跑几小时甚至几天,中途断了还能接着跑。 看起来就挺耗token的,也不知道好不好用,而且“Max、Team 套餐和 API 用户默认开启,Enterprise 套餐默认关闭,要管理员手动打开”,Pro似乎还用不了。 4 个帖子 - 4 位参与者 阅读完整话题