上期文章中,用 4 组 AI 工具就均线理论、财务状况、海龟趋势、财务门槛等维度给出了宽松、严格、及适度的分层选股策略,本期在 4 组 AI 选股基础上,予以重新评估和整合。
4 个不同 AI:给出的 A 股科学中长线趋势选股公式(附源码 + 实操指南)– 执迷者 X
第一步:评价每组公式的侧重点
| 公式 | 核心逻辑 | 侧重点 | 独特之处 |
|---|---|---|---|
| 公式 1 | 20MA 金叉 60MA + 唐奇安通道突破(20 日高点)+ 量能 + ATR | 双重确认突破 | 要求均线金叉与价格突破同时发生,信号最严苛,属于“强中选强” |
| 公式 2 | 长期趋势(收盘 >60MA >120MA)+ 动量(20 日涨幅 >5%)+ 价值(ROE>10%,PE<30,股息率 >3%) | 价值趋势投资 | 强调长期均线多头排列、高股息、低 PE,属于基本面 + 趋势的复合策略 |
| 公式 3 | 20MA 金叉 60MA + 乖离控制(股价紧贴 20 日线)+ 全面财务排雷 | 稳健均线金叉 | 注重合理买点(不追高),排雷最细致,不含海龟突破 |
| 公式 4(新) | 纯海龟突破:突破 30 日最高点 + 中期趋势过滤(MA50>MA300)+ ATR 波动率 | 趋势启动捕捉 | 无均线金叉要求,完全遵循海龟交易法则,适应强势趋势市 |
总结:
- 公式 1 = 均线金叉 ∩ 海龟突破(严苛)
- 公式 3 = 均线金叉(温和,带乖离控制)
- 公式 4 = 海龟突破(纯趋势,无金叉)
- 公式 2 = 长期趋势∩价值∩动量(基本面导向)
第二步:统一中期、长期的定义
为保持一致性和 A 股习惯,折中统一为:
- 短期均线:20 日(MA20)
- 中期均线:60 日(MA60)
- 长期均线:120 日(MA120)
涉及调整:
- 公式 2 中的 N1=60(中期)、N2=120(长期)已符合,无需改动。
- 公式 4 中的中期趋势过滤原为 MA50>MA300(50 日与 300 日),偏长期且周期独特。为统一口径,将其改为 MA60 > MA120(中期均线在长期均线之上)。
- 公式 1 和公式 3 本身使用 20/60,符合定义。
修改后的公式 4 中期趋势条件 :
原 MA50>MA300 → 改为 MA60 > MA120。
第三步:去重与集合包含关系分析
3.1 重复与包含关系
- 公式 1 vs 公式 3 :公式 1 要求均线金叉 且 海龟突破(双重条件);公式 3 只要求均线金叉(不含海龟)。公式 1 是公式 3 的子集(更严格)。 保留公式 1 (更强的信号),公式 3 可视为公式 1 的宽松版本,可删除公式 3 以避免重复。
- 公式 1 vs 公式 4 :公式 1 同时包含均线金叉和海龟突破;公式 4 只包含海龟突破(且周期为 30 日而非 20 日)。两者不互相包含,但可以互补。
- 公式 2 :独立逻辑,无直接重复。
3.2 去重决策
- 删除 公式 3 (被公式 1 的部分条件覆盖,且公式 1 更严格)。
- 保留 公式 1 (均线金叉 + 海龟突破双重策略)。
- 保留 公式 4 (纯海龟突破,无金叉要求)。
- 保留 公式 2 (价值趋势策略)。
3.3 整合策略
最终输出 一套整合公式,将三个不同侧重点的策略通过“或”关系并联,同时共享统一的基础排雷模块。这样用户可以在一键选股中得到三个策略的交集候选,再根据市场环境人工选择适用哪一个。
整合逻辑:
- 基础排雷、财务质地、流动性等公共条件同时应用于三个子策略。
- 子策略 A(公式 1 风格):均线金叉∩海龟突破∩量能∩ATR(严苛)
- 子策略 B(公式 4 风格):纯海龟突破(30 日高点)∩中期趋势过滤(MA60>MA120)∩ATR
- 子策略 C(公式 2 风格):长期趋势(收盘 >MA60>MA120)∩动量(20 日涨幅 >3%~25%)∩价值(ROE>10%,PE<30)
最终选股条件为:(公共条件) AND (策略 A OR 策略 B OR 策略 C)
第四步:最终同花顺电脑版公式
text
{整合版_中长线选股_三策略并联}
{公共基础排雷与财务质地(源自公式 3 及优化)}
{统一周期:MA20 短期,MA60 中期,MA120 长期}
{================= 公共部分(所有策略共享)=================}
非 ST:=NOT(NAMELIKE('ST')) AND NOT(NAMELIKE('*ST'));
非退市:=NOT(NAMELIKE('退'));
非停牌:=DYNAINFO(4)>0;
非涨停:=DYNAINFO(7)<1.098; {剔除接近涨停股}
流动性:=AMOUNT/100000000>0.2; {日均成交额大于 0.2 亿}
估值过滤:=IF(FINANCE(38)>0, FINANCE(38)<=80, 1); {PE 在 (0,80] 或亏损排除}
ROE 质控:=FINANCE(39)/FINANCE(34)>=0.08; {ROE 加权≥8%}
负债安全:=FINANCE(42)<=70; {资产负债率≤70%}
营收增长:=FINANCE(44)>=1.05; {营收同比增速≥5%}
公共条件:= 非 ST AND 非退市 AND 非停牌 AND 非涨停 AND
流动性 AND 估值过滤 AND ROE 质控 AND 负债安全 AND 营收增长;
{================= 策略 A:均线金叉 + 海龟突破(源自公式 1,周期 20/60)=================}
MA20:=MA(CLOSE,20);
MA60:=MA(CLOSE,60);
金叉信号:=CROSS(MA20,MA60);
均线多头 A:=MA20>MA60 AND MA60>REF(MA60,1);
{海龟唐奇安突破(20 日高点)}
N_A:=20;
唐奇安上轨:=HHV(HIGH,N_A);
海龟突破 A:=CLOSE>REF(唐奇安上轨,1);
{ATR 波动过滤}
M_A:=10;
ATR_A:=ATR(M_A);
波动达标 A:=ATR_A>MA(ATR_A,5);
{量能确认}
量能确认 A:=VOL>MA(VOL,60)*1.2;
策略 A:= 金叉信号 AND 均线多头 A AND 海龟突破 A AND 波动达标 A AND 量能确认 A;
{================= 策略 B:纯海龟突破(源自公式 4,周期 30 日高点 + 中期趋势)=================}
{参数:N1=30 突破周期,中期趋势 MA60>MA120(统一后)}
N_B:=30;
HHV30:=HHV(HIGH,N_B);
海龟突破 B:=CROSS(CLOSE,REF(HHV30,1));
{中期趋势过滤(统一为 MA60>MA120)}
MA120:=MA(CLOSE,120);
中期趋势 B:=MA60>MA120;
{ATR 波动率(20 日平均)}
TR_B:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR_B:=MA(TR_B,20);
波动达标 B:=ATR_B>MA(ATR_B,5); {合并 ATR 过滤,与策略 A 逻辑一致}
策略 B:= 海龟突破 B AND 中期趋势 B AND 波动达标 B;
{================= 策略 C:价值趋势(源自公式 2,长期趋势 + 动量 + 价值)=================}
长期多头 C:=CLOSE>MA60 AND MA60>MA120; {收盘站上 60 线,60>120}
动量 C:= (CLOSE/REF(CLOSE,20)-1) > 0.03 AND (CLOSE/REF(CLOSE,20)-1) < 0.25; {20 日涨幅 3%~25%}
价值 C:= FINANCE(38) < 30 AND FINANCE(38) > 0; {PE 在 0~30 之间}
{可选:股息率条件(同花顺需要专业数据,暂时注释,用 PE 替代)}
策略 C:= 长期多头 C AND 动量 C AND 价值 C;
{================= 最终选股:公共条件 + 任一策略满足 =================}
选股: 公共条件 AND (策略 A OR 策略 B OR 策略 C);
公式说明与使用建议
- 信号含义:
- 满足 策略 A 的股票:均线刚形成金叉且价格突破 20 日最高点,同时放量、波动达标。这类股票通常处于中期启动初期,爆发力最强,但信号非常稀少(牛市每日 0 - 3 只)。
- 满足 策略 B 的股票:纯海龟突破(30 日高点),且中期趋势向上(MA60>MA120),无均线金叉要求。适用于强势趋势延续阶段,信号比策略 A 多。
- 满足 策略 C 的股票:长期均线多头排列、近期温和上涨(20 日涨幅 3~25%)、低 PE(<30)、高 ROE(≥8%)。属于稳健的价值趋势股,信号较多,适合震荡偏强市。
- 调仓与买卖规则(建议沿用原方案):
- 选出后每支买入 3000-5000 元固定金额。
- 止盈:5% 固定止盈(条件单);或对于策略 B 的海龟突破,可采用跟踪止盈(跌破 10 日低点离场)。
- 止损:统一为收盘跌破 20 日线或入场价下方 -5%。
适度宽松版
非 ST:=NOT(NAMELIKE('ST')) AND NOT(NAMELIKE('*ST'));
非退市:=NOT(NAMELIKE('退'));
非停牌:=VOL>0;
流动性:=AMOUNT/100000000>1;
容量控制:=CAPITAL*CLOSE/100000000>30;
换手率:=VOL/CAPITAL*100;
活跃度:= 换手率 >1 AND 换手率 <20;
公共条件:= 非 ST AND 非退市 AND 非停牌 AND 流动性 AND 容量控制 AND 活跃度;
MA20:=MA(CLOSE,20);
MA60:=MA(CLOSE,60);
金叉信号:=CROSS(MA20,MA60);
均线多头 A:=MA20>MA60 AND MA60>REF(MA60,1);
策略 A:= 金叉信号 AND 均线多头 A;
N_B:=30;
HHV30:=HHV(HIGH,N_B);
海龟突破 B:=CROSS(CLOSE,REF(HHV30,1));
MA120:=MA(CLOSE,120);
中期趋势 B:=MA60>MA120;
策略 B:= 海龟突破 B AND 中期趋势 B;
长期多头 C:=CLOSE>MA60 AND MA60>MA120;
动量 C:=(CLOSE/REF(CLOSE,20)-1)>0.02 AND (CLOSE/REF(CLOSE,20)-1)<0.35;
策略 C:= 长期多头 C AND 动量 C;
选股: 公共条件 AND (策略 A OR 策略 B OR 策略 C);
全方位宽松
非 ST:=NOT(NAMELIKE('ST')) AND NOT(NAMELIKE('*ST'));
非退市:=NOT(NAMELIKE('退'));
非停牌:=VOL>0;
流动性:=AMOUNT/100000000>0.5;
公共条件:= 非 ST AND 非退市 AND 非停牌 AND 流动性;
MA20:=MA(CLOSE,20);
MA60:=MA(CLOSE,60);
金叉信号:=CROSS(MA20,MA60);
策略 A:= 金叉信号;
N_B:=30;
HHV30:=HHV(HIGH,N_B);
海龟突破 B:=CROSS(CLOSE,REF(HHV30,1));
MA120:=MA(CLOSE,120);
中期趋势 B:=MA60>MA120;
策略 B:= 海龟突破 B AND 中期趋势 B;
长期多头 C:=CLOSE>MA60 AND MA60>MA120;
动量 C:=(CLOSE/REF(CLOSE,20)-1)>0.01 AND (CLOSE/REF(CLOSE,20)-1)<0.40;
策略 C:= 长期多头 C AND 动量 C;
选股: 公共条件 AND (策略 A OR 策略 B OR 策略 C);
- 先试方案一。复制代码到同花顺条件选股,执行选股。如果结果在 5~30 只之间,直接使用。
- 如果方案一结果仍为 0 ,改用方案二。方案二在一般震荡市中通常能选出 10~50 只。
- 可以自行调节参数:
- 若结果过多(>100 只),逐步收紧:
ROE 质控改回 0.08,PE改回 80,或加回营收增长。 - 若结果过少,可进一步删除
中期趋势 B、均线多头 A中的MA60>REF(MA60,1)等。
- 若结果过多(>100 只),逐步收紧:
正文完