通达信【AI重构逻辑】基于VWAP与ATR自适应算法逻辑公式源码


一、 指标的核心优势

1. 成本计算更科学(VWAP算法的运用)

   传统指标缺陷:普通的均线(如MA5、MA20)只考虑了价格,忽略了成交量。庄家的真实成本往往集中在成交量最大的地方。

   本指标优势:使用 `PI  VOL` 计算每日成交额,再除以总成交量。这是经典的VWAP(成交量加权平均价) 逻辑。它能更真实地反映过去N周期内(参数N)市场主力资金的平均持仓成本。黄线不仅仅是支撑线,更是庄家的“生命线”。

2. 引入ATR波动率自适应(拒绝一刀切)

   传统指标缺陷:很多指标用固定的百分比(如跌破5%止损)来判断买卖,导致在波动大的股票中频繁被打脸,在波动小的僵尸股中反应迟钝。

   本指标优势:引入了ATR(平均真实波幅) 模块。

       “动态安全线”和“动态压力线”是根据股价最近的波动速度动态计算的。

       这意味着,对于剧烈波动的股票,指标给出的容错空间更大;对于横盘震荡的股票,指标会变得敏感,从而捕捉微小突破。

3. 多维度的“评分机制”与“信号分类”

   传统指标缺陷:金叉就买,死叉就卖,胜率极低。

   本指标优势:通过“趋势得分”和“动能得分”对市场状态进行量化过滤。

       它不会盲目发出信号,而是将信号细分为四类:拐点(趋势反转)、撑(成本支撑)、超(超跌反弹)、强(趋势追涨)。这种分类让交易者清楚知道自己是在做“抄底”还是“追涨”,从而制定不同的策略。

4. 严格的“防坑”过滤器

   优势:

       趋势保护:当处于明确的下降趋势时,系统会屏蔽掉大部分抄底信号,只允许最极端的“超跌反弹”(信号C)出现,避免“接飞刀”。

5. 直观的风险收益比预期

   优势:指标明确画出了 `SAFE_LINE`(安全线)和 `RISK_LINE`(获利30%警戒线)。这为主图提供了清晰的坐标:下方是低估区,上方是高估区,中间是主力成本区,一目了然。

二、指标的使用方法与战法

在使用前,请务必在通达信参数设置中调整参数 N(代码中未给出具体数值,建议根据操盘风格设为20(短线) 或 60(中线))。

1. 读懂主图语言

   黄色粗线(ZJ_COST):主力平均成本。是股价最强的“引力线”和“支撑线”。

   绿色虚线(RISK_LINE):获利30%警戒线。股价触碰此线,代表短期获利盘丰厚,容易回调,是减仓或止盈的第一参考位。

   红色虚线(SAFE_LINE):固定安全线(成本0.95倍)。跌破此处通常意味着主力被套或深度洗盘。

   K线颜色:浅红色K线表示收盘价低于市场成本(C < ZJ_COST),属于“潜伏区”;正常颜色表示高于成本,属于“获利区”。

2. 四大信号战法详解

①    “拐”信号—— 趋势反转战法

   出现条件:均线系统刚发出金叉或拐头向上 + 股价仍低于市场成本 + 有MACD动能配合。

   含义:庄家吸筹完毕,刚启动拉升。

   操作:激进型首选。此时股价还在庄家成本附近或下方,安全边际高,爆发力强。

   止损:跌破信号当天的最低点。

② “撑”信号—— 成本支撑战法

   出现条件:股价回踩触碰黄线(或动态安全线)+ 出现锤子线/阳线 + 趋势得分>0。

   含义:上升趋势中的回调洗盘结束,庄家护盘。

   操作:稳健型首选。不做左侧接飞刀,等股价回踩主力成本线并获得支撑时介入。

   止损:收盘价跌破“动态安全线”。

③ “强”信号—— 强势追涨战法

   出现条件:均线多头排列(强势上升)+ 股价回踩20日线不破 + 再次放量上涨。

   含义:主力进入主升浪,逼空上涨。

   操作:短线高手首选。这是买入最强的股票,赚速度最快的钱。

   注意:必须结合“位置过滤”,如果在高位区出现此信号,需谨慎(代码中已过滤高位区)。

④ “超”信号—— 抢反弹战法

   出现条件:股价深度低于成本(跌破了动态安全线)+ RSI超卖或MACD底背离 + 低位区。

   含义:情绪性杀跌,主力被套或借机吓出恐慌盘。

   操作:左侧交易。风险较高,需要极高的纪律性。

   纪律:一旦反弹,遇“黄色成本线”必须先减仓或清仓,因为成本线由支撑变为压力。

3. 综合策略建议

1.  买入:

       首选“拐”和“撑”信号。

       必须确认股价没有处于`RISK_LINE`(绿色线)之上(代码已自动过滤,但仍需留意)。

       检查右下角所属板块,优选热门板块中的个股。

2.  卖出:

       第一止盈位:股价冲高至`RISK_LINE`(绿色线,成本1.3倍)附近滞涨。

       第二止盈位:K线实体明显高于黄线过多乖离率过大,且没有出现支撑信号。

       止损位:严格按照买入信号当天的最低点,或者跌破“动态安全线”无条件离场。
 
{庄家成本探测 - 基于原文方法一换手率加权法}
N:=60;

{1. 定义每日平均成交价格 PI = (开+收+高+低)/4}
PI:=(OPEN + CLOSE + HIGH + LOW) / 4;

{2. 计算加权成本}
总成交额:=SUM(PI * VOL, N);
总成交量:=SUM(VOL, N);

{计算出的庄家持仓成本}
ZJ_COST: 总成交额 / 总成交量, COLORYELLOW, LINETHICK2;

{3. 绘制辅助线}
RISK_LINE: ZJ_COST * 1.3, COLORGREEN, DOTLINE;
SAFE_LINE: ZJ_COST * 0.95, COLORRED, DOTLINE;

{4. 盘面信号}
DRAWTEXT(ISLASTBAR, ZJ_COST, ' ←市场成本'), COLORYELLOW;
DRAWTEXT(ISLASTBAR, RISK_LINE, ' ←30%获利警戒'), COLORGREEN;

{K线染色}
STICKLINE(C < ZJ_COST, O, C, 2.5, 0), COLORLIRED;


{=============== 优化后的买入信号系统 ===============}

{========== 一、波动率自适应模块 ==========}
{用ATR替代固定百分比,适应不同波动环境}

ATR14:= MA(MAX(MAX(HIGH-LOW, ABS(HIGH-REF(C,1))), ABS(LOW-REF(C,1))), 14);
ATR_RATIO:= ATR14 / C; {波动率比率}

{动态安全区间:基于波动率调整}
动态安全线:= ZJ_COST * (1 - ATR_RATIO * 2);
动态压力线:= ZJ_COST * (1 + ATR_RATIO * 3);

{动态容差:用于判断"接近"成本线}
容差:= ATR14 * 0.5;


{========== 二、趋势判断模块 ==========}

MA5:= MA(C, 5);
MA20:= MA(C, 20);
MA60:= MA(C, 60);

{趋势状态判断}
强势上升:= MA5 > MA20 AND MA20 > MA60 AND C > MA5;
温和上升:= MA5 > MA20 AND C > MA20;
趋势走平:= ABS(MA20 - REF(MA20, 5)) / MA20 < 0.02;
下降趋势:= MA5 < MA20 AND MA20 < MA60;

{趋势拐点识别}
MA20拐头:= MA20 > REF(MA20, 1) AND REF(MA20, 1) <= REF(MA20, 2);
MA5上穿MA20:= CROSS(MA5, MA20);
价格站上MA20:= CROSS(C, MA20) AND MA20 >= REF(MA20, 3);

{趋势得分:用于加权判断}
趋势得分:= IF(强势上升, 3, IF(温和上升, 2, IF(趋势走平, 1, 0)));


{========== 三、动能确认模块 ==========}

{MACD动能}
DIF:= EMA(C, 12) - EMA(C, 26);
DEA:= EMA(DIF, 9);
MACD柱:= (DIF - DEA) * 2;

MACD金叉:= CROSS(DIF, DEA);
MACD柱转正:= MACD柱 > 0 AND REF(MACD柱, 1) <= 0;
DIF上穿零轴:= CROSS(DIF, 0);
MACD底背离:= C < REF(C, 10) AND DIF > REF(DIF, 10) AND DIF < 0;

{RSI动能}
LC:= REF(C, 1);
RSI6:= SMA(MAX(C-LC, 0), 6, 1) / SMA(ABS(C-LC), 6, 1) * 100;
RSI超卖回升:= RSI6 > REF(RSI6, 1) AND REF(RSI6, 1) < 30;
RSI金叉50:= CROSS(RSI6, 50);

{量能动能}
量比:= VOL / MA(VOL, 20);
放量:= 量比 > 1.2;
温和放量:= 量比 > 0.8 AND 量比 < 2.5;
缩量企稳:= 量比 < 0.8 AND C >= O AND C >= REF(C, 1);

{动能综合得分}
动能得分:= IF(MACD金叉, 2, 0) + IF(RSI超卖回升, 1, 0) + IF(放量, 1, 0) + IF(MACD柱转正, 1, 0);


{========== 四、相对位置模块 ==========}

{相对于近期高低点的位置}
N20_HIGH:= HHV(H, 20);
N20_LOW:= LLV(L, 20);
N60_HIGH:= HHV(H, 60);
N60_LOW:= LLV(L, 60);

{位置百分比:0=最低点,100=最高点}
位置20:= (C - N20_LOW) / (N20_HIGH - N20_LOW + 0.01) * 100;
位置60:= (C - N60_LOW) / (N60_HIGH - N60_LOW + 0.01) * 100;

{相对成本线位置}
成本偏离:= (C - ZJ_COST) / ZJ_COST * 100;
接近成本线:= ABS(C - ZJ_COST) <= 容差;
低于成本线:= C < ZJ_COST;
深度低于成本:= C < 动态安全线;

{位置状态}
低位区:= 位置20 < 30 AND 位置60 < 40;
中位区:= 位置20 >= 30 AND 位置20 <= 70;
高位区:= 位置20 > 70 OR C > 动态压力线;


{========== 五、K线形态确认 ==========}

{阳线确认}
阳线:= C > O;
大阳线:= C > O AND (C - O) > ATR14 * 0.8;
锤子线:= (MIN(O, C) - L) > (ABS(C - O) * 2) AND (H - MAX(O, C)) < ABS(C - O);
吞没形态:= C > O AND C > REF(O, 1) AND O < REF(C, 1) AND REF(C, 1) < REF(O, 1);

{止跌信号}
止跌企稳:= REF(C, 1) < REF(C, 2) AND C >= REF(C, 1) AND L <= REF(L, 1);


{========== 六、综合买入信号 ==========}

{--- 信号类型A:趋势确认型(拐点突破)---}
信号A:= (MA5上穿MA20 OR MA20拐头 OR 价格站上MA20)
AND 低于成本线
AND (MACD金叉 OR MACD柱转正 OR DIF上穿零轴)
AND 温和放量
AND NOT (高位区);

{--- 信号类型B:支撑反弹型(成本线支撑)---}
信号B:= 接近成本线
AND (阳线 OR 锤子线 OR 吞没形态)
AND (趋势得分 >= 1 OR MA20拐头)
AND (动能得分 >= 1)
AND NOT (下降趋势)
AND NOT (高位区);

{--- 信号类型C:超跌反弹型(深度回调)---}
信号C:= 深度低于成本
AND (RSI超卖回升 OR MACD底背离)
AND (阳线 OR 止跌企稳)
AND (放量 OR 缩量企稳)
AND 低位区;

{--- 信号类型D:强势回踩型(趋势延续)---}
信号D:= 强势上升
AND REF(L, 1) <= MA20 AND C > MA20
AND 阳线
AND 温和放量
AND 成本偏离 < 20;


{========== 七、信号过滤与输出 ==========}

{合并原始信号}
原始信号:= 信号A OR 信号B OR 信号C OR 信号D;

{过滤1:趋势保护 - 强下降趋势中只接受信号C}
趋势过滤:= IF(下降趋势, 信号C, 原始信号);

{过滤2:位置保护 - 高位不发信号}
位置过滤:= 趋势过滤 AND NOT (高位区) AND C < RISK_LINE;

{过滤3:密集过滤 - 10根K线内只取第一个}
密集过滤:= 位置过滤 AND COUNT(位置过滤, 10) = 1;

{最终买入信号}
买入信号:= 密集过滤;


{========== 八、绘制标注 ==========}

{买入标注}
DRAWTEXT(买入信号, LOW * 0.97, '买'), COLORRED;
DRAWICON(买入信号, LOW * 0.96, 1);

{可选:显示信号类型}
DRAWTEXT(买入信号 AND 信号A, LOW * 0.94, '拐'), COLORYELLOW;
DRAWTEXT(买入信号 AND 信号B AND NOT (信号A), LOW * 0.94, '撑'), COLORWHITE;
DRAWTEXT(买入信号 AND 信号C AND NOT (信号A) AND NOT (信号B), LOW * 0.94, '超'), COLORCYAN;
DRAWTEXT(买入信号 AND 信号D AND NOT (信号A) AND NOT (信号B) AND NOT (信号C), LOW * 0.94, '强'), COLORMAGENTA;

DRAWTEXT_FIX(ISLASTBAR, 0.00, 0.00, 0,
STRCAT('所属: ', STRCAT(HYBLOCK, STRCAT(' ', STRCAT(DYBLOCK, STRCAT(' ', GNBLOCK)))))),
COLORYELLOW;




来函数检测结果如下
该公式包含未来函数:COST

定制、编写指标公式请联系QQ或微信同号:88652583

N赋值:60
PI赋值:(开盘价 + 收盘价 + 最高价 + 最低价) / 4
总成交额赋值:PI*成交量(手)的N日累和
总成交量赋值:成交量(手)的N日累和
输出ZJ_COST: 总成交额 / 总成交量, 画黄色, 线宽为2
输出RISK_LINE: ZJ_COST * 1.3, 画绿色, DOTLINE
输出SAFE_LINE: ZJ_COST * 0.95, 画红色, DOTLINE
当满足条件是否最后一个周期时,在ZJ_COST位置书写文字, 画黄色
当满足条件是否最后一个周期时,在RISK_LINE位置书写文字, 画绿色
当满足条件收盘价ATR14赋值: 最高价-最低价和最高价-1日前的收盘价的绝对值的较大值和最低价-1日前的收盘价的绝对值的较大值的14日简单移动平均
ATR_RATIO赋值: ATR14 / 收盘价
动态安全线赋值: ZJ_COST * (1 - ATR_RATIO * 2)
动态压力线赋值: ZJ_COST * (1 + ATR_RATIO * 3)
容差赋值: ATR14 * 0.5
MA5赋值: 收盘价的5日简单移动平均
MA20赋值: 收盘价的20日简单移动平均
MA60赋值: 收盘价的60日简单移动平均
强势上升赋值: MA5 > MA20 AND MA20 > MA60 AND 收盘价 > MA5
温和上升赋值: MA5 > MA20 AND 收盘价 > MA20
趋势走平赋值: MA20-5日前的MA20的绝对值 / MA20 < 0.02
下降趋势赋值: MA5 < MA20 AND MA20 < MA60
MA20拐头赋值: MA20 > 1日前的MA20 AND 1日前的MA20 <= 2日前的MA20
MA5上穿MA20赋值: MA5上穿MA20
价格站上MA20赋值: 收盘价上穿MA20 AND MA20 >= 3日前的MA20
趋势得分赋值: 如果强势上升,返回3,否则返回如果温和上升,返回2,否则返回如果趋势走平,返回1,否则返回0
DIF赋值: 收盘价的12日指数移动平均 - 收盘价的26日指数移动平均
DEA赋值: DIF的9日指数移动平均
MACD柱赋值: (DIF - DEA) * 2
MACD金叉赋值: DIF上穿DEA
MACD柱转正赋值: MACD柱 > 0 AND 1日前的MACD柱 <= 0
DIF上穿零轴赋值: DIF上穿0
MACD底背离赋值: 收盘价 < 10日前的收盘价 AND DIF > 10日前的DIF AND DIF < 0
LC赋值: 1日前的收盘价
RSI6赋值: 收盘价-LC和0的较大值的6日[1日权重]移动平均 / 收盘价-LC的绝对值的6日[1日权重]移动平均 * 100
RSI超卖回升赋值: RSI6 > 1日前的RSI6 AND 1日前的RSI6 < 30
RSI金叉50赋值: RSI6上穿50
量比赋值: 成交量(手) / 成交量(手)的20日简单移动平均
放量赋值: 量比 > 1.2
温和放量赋值: 量比 > 0.8 AND 量比 < 2.5
缩量企稳赋值: 量比 < 0.8 AND 收盘价 >= 开盘价 AND 收盘价 >= 1日前的收盘价
动能得分赋值: 如果MACD金叉,返回2,否则返回0 + 如果RSI超卖回升,返回1,否则返回0 + 如果放量,返回1,否则返回0 + 如果MACD柱转正,返回1,否则返回0
N20_HIGH赋值: 20日内最高价的最高值
N20_LOW赋值: 20日内最低价的最低值
N60_HIGH赋值: 60日内最高价的最高值
N60_LOW赋值: 60日内最低价的最低值
位置20赋值: (收盘价 - N20_LOW) / (N20_HIGH - N20_LOW + 0.01) * 100
位置60赋值: (收盘价 - N60_LOW) / (N60_HIGH - N60_LOW + 0.01) * 100
成本偏离赋值: (收盘价 - ZJ_COST) / ZJ_COST * 100
接近成本线赋值: 收盘价-ZJ_COST的绝对值 <= 容差
低于成本线赋值: 收盘价 < ZJ_COST
深度低于成本赋值: 收盘价 < 动态安全线
低位区赋值: 位置20 < 30 AND 位置60 < 40
中位区赋值: 位置20 >= 30 AND 位置20 <= 70
高位区赋值: 位置20 > 70 OR 收盘价 > 动态压力线
阳线赋值: 收阳线
大阳线赋值: 收阳线AND (收盘价 - 开盘价) > ATR14 * 0.8
锤子线赋值: (开盘价和收盘价的较小值 - 最低价) > (收盘价-开盘价的绝对值 * 2) AND (最高价 - 开盘价和收盘价的较大值) < 收盘价-开盘价的绝对值
吞没形态赋值: 收阳线AND 收盘价 > 1日前的开盘价 AND 开盘价 < 1日前的收盘价 AND 1日前的收盘价 < 1日前的开盘价
止跌企稳赋值: 1日前的收盘价 < 2日前的收盘价 AND 收盘价 >= 1日前的收盘价 AND 最低价 <= 1日前的最低价
信号A赋值: (MA5上穿MA20 OR MA20拐头 OR 价格站上MA20) AND 低于成本线 AND (MACD金叉 OR MACD柱转正 OR DIF上穿零轴) AND 温和放量 AND 取反
信号B赋值: 接近成本线 AND (阳线 OR 锤子线 OR 吞没形态) AND (趋势得分 >= 1 OR MA20拐头) AND (动能得分 >= 1) AND 取反 AND 取反
信号C赋值: 深度低于成本 AND (RSI超卖回升 OR MACD底背离) AND (阳线 OR 止跌企稳) AND (放量 OR 缩量企稳) AND 低位区
信号D赋值: 强势上升 AND 1日前的最低价 <= MA20 AND 收盘价 > MA20 AND 阳线 AND 温和放量 AND 成本偏离 < 20
原始信号赋值: 信号A OR 信号B OR 信号C OR 信号D
趋势过滤赋值: 如果下降趋势,返回信号C,否则返回原始信号
位置过滤赋值: 趋势过滤 AND 取反 AND 收盘价 < RISK_LINE
密集过滤赋值: 位置过滤 AND 统计10日中满足位置过滤的天数 = 1
买入信号赋值: 密集过滤
当满足条件买入信号时,在最低价*0.97位置书写文字, 画红色
当满足条件买入信号时,在最低价*0.96位置画1号图标
当满足条件买入信号AND信号A时,在最低价*0.94位置书写文字, 画黄色
当满足条件买入信号AND信号BANDNOT(信号A)时,在最低价*0.94位置书写文字, 画白色
当满足条件买入信号AND信号CANDNOT(信号A)ANDNOT(信号B)时,在最低价*0.94位置书写文字, 画青色
当满足条件买入信号AND信号DANDNOT(信号A)ANDNOT(信号B)ANDNOT(信号C)时,在最低价*0.94位置书写文字, 画洋红色
当满足条件是否最后一个周期时,在横轴0.00纵轴0.00位置书写文字, 画黄色
定制、找人做指标公式联系我们
  • QQ:88652583
  • 邮箱:88652583@qq.com
  • 工作时间:7:30-21:00
  • 微信:88652583或扫描如下二维码
指标公式网微信联系方式
月度排行
季度排行
半年排行


指标安装下载帮助  |   联系我们  |  指标公式网  |  指标网   |  指标公式  |   加入收藏   

@2005-2023 粤ICP备2025457605号-1 指标公式网别名指标网均来源互联网收集整理,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理
免责声明:指标公式网所有指标公式及文章由网络收集,不保障实时性和真实性, 仅供学习研究并不构成投资建议,请勿以此为依据进行股票交易,由此引起的投资亏损与本站无关。
QQ:88652583 微信 88652583
sitemap站点地图