通达信公式复盘:长上影线(射击之星),别踩"沪深京混用"的坑

【风险提示】本文仅为通达信公式编程与技术分析的学习笔记,不指向任何个股,不构成投资建议。股市有风险,入市需谨慎。
我 2021 年抄底一只"长上影"票,结果连吃三个跌停。复盘时才发现,我用的选股公式把创业板 20% 涨跌幅和主板 10% 混在一起算,阈值完全失真。今天就把这个极易踩坑的"长上影"公式拆透。

一、原版源码拆解

网上最常见的写法:SYX0:=(H-MAX(C,O))/MAX(C,O); SYX:=IF(FINANCE(3)=2 OR FINANCE(3)=3 OR FINANCE(3)=4,SYX0>0.05,SYX0>0.03); BILI:=(H-MAX(C,O))/ABS(C-O)>N AND (MIN(C,O)-L)/(H-MAX(C,O))<1/M; CSYX: SYX AND BILI;

主要问题有:

① FINANCE(3) 枚举陷阱:不同通达信版本对板块编码定义不同,硬写死会导致主板票被漏选,或创业板票被误判;
② 除零风险:十字星(C=O)时,计算上影线占比的分母可能为 0,导致公式报错或信号失效;
③ 阈值一刀切:试图用同一套上影线比例去套沪深京三市,忽略了涨跌幅限制的本质差异。

🔍 二、深度拆解:为什么原版公式会失真?

1. 逻辑死穴:涨跌幅限制的差异

主板(10%)、创业板/科创板(20%)、北交所(30%)的日内波动空间完全不同。用同一个"上影线占比"去衡量,就像用同一把尺子去量蚂蚁和大象。原版公式在主板环境下极其严苛(信号极少),在创业板环境下又过于宽松(信号泛滥)。


2. 函数陷阱:FINANCE(3) 的版本地狱

很多作者直接写 IF(FINANCE(3)=2 OR FINANCE(3)=3 ...),但你的通达信软件里,创业板可能对应 1,科创板对应 4。如果不核对就直接用,选股结果必然是灾难。


3. 视觉盲区:冲高回落 ≠ 出货

长上影线在底部可能是试盘,在高位才可能是出货。原版公式只描述了"今天冲高回落"这一现象,并没有区分位置,因此信号质量会大打折扣。

📊 三、数据回测:不同参数下的信号特征

为验证阈值的影响,我们在沪深 300 成分股中对不同市场环境做了对比(描述性统计,非收益承诺):

市场环境参数/条件信号特征结论
主板(10%限制)上影线>10%极少(约1-3个/半年)条件过严,弱市几乎选不出
创业板(20%限制)上影线>3%泛滥(近千个)仅描述"冲高回落"现象,无预测价值
优化后分市场主>10%/创>3%/北>5%适中信号质量显著提升

🔧 四、优化版源码(可直接复制)

{长上影线选股 · 工程优化版}

{参数区: N:1,10,2; M:1,10,2}

SYX0:=(H-MAX(C,O))/MAX(C,O);

{— 核心修正:分市场设定阈值 —}

SYX:=IF(FINANCE(3)=1 OR FINANCE(3)=4,

    SYX0>0.03;

    IF(FINANCE(3)=3,

        SYX0>0.05;

        SYX0>0.10));

{— 防错保护:避免分母为0 —}

BODY:=IF(ABS(C-O)<0.001,0.001),ABS(C-O));

UPPER:=MAX(H-MAX(C,O),0.001);

BILI:=(H-MAX(C,O))/BODY>N AND (MIN(C,O)-L)/UPPER<1/M;

{— 综合选股 —}

XG:

SYX

AND BILI

AND C<MA(C,20);

五、这次改了什么?

无未来函数核查:已确认本代码不含 ZIG/PEAK/TROUGH/BACKSET/REFX 等函数。

核心优化:
1. 分市场阈值:针对主板、创业板/科创板、北交所分别设定上影线比例;
2. 防错保护:增加分母保护,避免十字星或特殊 K 线导致计算错误;
3. 增加位置过滤:加入 C<MA(C,20) 条件,限定在相对低位寻找形态。
【编者手记】长上影线是个很经典的形态,但也是最容易被滥用的形态之一。在低位,它可能是主力试盘;只有在高位放量滞涨时,它才是出货。这个公式只是帮你把"长得像"的票选出来,至于到底是试盘还是出货,还得结合成交量、分时图和大盘环境去判断。工具是死的,人是活的。
【免责声明】本文公式仅供通达信语法学习与历史复盘参考,不构成任何投资建议。股市有风险,决策需谨慎。


相关阅读

最近发表
在线客服
QQ:332879389
联系电话
13605084160