{1. 定义每日平均成交价格 PI = (开+收+高+低)/4}
N:=60;
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;
