UID504667
积分123
学分
推广 个
预报后涨停 支
阅读权限20
在线时间 小时
注册时间2025-10-2
最后登录1970-1-1
|
楼主 |
发表于 2025-11-23 20:32
|
显示全部楼层
转载使用,请说明来源:一路高歌
TOTAL:=IF(PERIOD=1,5,IF(PERIOD=2,15,IF(PERIOD=3,30,IF(PERIOD=4,60,IF(PERIOD=5,TOTALFZNUM,1)))));
DTIME:=IF(FROMOPEN<15,0.1746/15*FROMOPEN,
IF(FROMOPEN<30,0.1746+0.1059/15*(FROMOPEN-15),
IF(FROMOPEN<45,0.2805+0.0823/15*(FROMOPEN-30),
IF(FROMOPEN<60,0.3628+0.0635/15*(FROMOPEN-45),
IF(FROMOPEN<75,0.4263+0.0559/15*(FROMOPEN-60),
IF(FROMOPEN<90,0.4822+0.0477/15*(FROMOPEN-75),
IF(FROMOPEN<105,0.5299+0.0432/15*(FROMOPEN-90),
IF(FROMOPEN<120,0.5731+0.0392/15*(FROMOPEN-105),
IF(FROMOPEN<135,0.6123+0.0446/15*(FROMOPEN-120),
IF(FROMOPEN<150,0.6569+0.0430/15*(FROMOPEN-135),
IF(FROMOPEN<165,0.6999+0.0440/15*(FROMOPEN-150),
IF(FROMOPEN<180,0.7439+0.0414/15*(FROMOPEN-165),
IF(FROMOPEN<195,0.7853+0.0436/15*(FROMOPEN-180),
IF(FROMOPEN<210,0.8289+0.0439/15*(FROMOPEN-195),
IF(FROMOPEN<225,0.8728+0.0531/15*(FROMOPEN-210),
0.9260+0.0740/15*(FROMOPEN-225)
)))))))))))))));
MTIME:=MOD(FROMOPEN,TOTAL);
CTIME:=IF(MTIME<0.5,TOTAL,IF((PERIOD=5 AND SETCODE<3),DTIME*240,MTIME));
VVOL:=IF((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VOL*(TOTAL+3)/(CTIME+3),DRAWNULL);
STICKLINE((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VVOL,0,-1,-1),COLOR00C0C0;
VOLUME:VOL,VOLSTICK;
{三一二一标尺相关定义}
SANYI:=BETWEEN(VOLUME, REF(VOLUME,1)*0.60, REF(VOLUME,1)*0.70); {3/10区间}
ERYI:=BETWEEN(VOLUME, REF(VOLUME,1)*0.45, REF(VOLUME,1)*0.55); {2/10区间}
XIAOBEI:=BETWEEN(VOLUME/REF(VOLUME,1),1.8,2.2) AND C>O; {小倍量柱(1.8-2.2倍)}
DABEI:=VOLUME/REF(VOLUME,1)>2.2 AND C>O; {大倍量柱(2.2倍以上)}
{==================== 修复:10天最低量柱定义(用LLV替代LLVX,兼容所有软件) ====================}
{1. 固定10天周期:最近30天分3个固定区间(1=1-10天,2=11-20天,3=21-30天)}
FIXED_PERIOD:=10; {固定周期长度:10天}
{2. 判断当前K线所在的固定区间(用IF替代CEILING,避免部分软件不兼容)}
CURRENT_RANGE:=IF(CURRBARSCOUNT<=10,1,
IF(CURRBARSCOUNT<=20,2,3)); {区间1:1-10天;区间2:11-20天;区间3:21-30天}
{3. 计算当前区间的最低量(用LLV替代LLVX,通用函数)}
RANGE_LOW:=IF(CURRENT_RANGE=1,LLV(VOLUME,10), {区间1:取最近10天最低量}
IF(CURRENT_RANGE=2,LLV(VOLUME,10), {区间2:取最近10天最低量(对应11-20天)}
LLV(VOLUME,10))); {区间3:取最近10天最低量(对应21-30天)}
{4. 标记条件:仅最近30天 + 当天是所在区间最低量 + 区间内唯一标记(避免重复)}
LOW10:=CURRBARSCOUNT <= 30 {仅最近30天标记}
AND VOLUME=RANGE_LOW {当天是所在固定10天区间的最低量}
AND NOT(REF(VOLUME,1)=RANGE_LOW); {排除同区间内连续2天都是最低量的情况(仅标记第一天)}
{100日内最低成交量定义及标记(仅最近30天)}
LOW100:=LLV(VOLUME,100);
LOW100_FLAG:=CURRBARSCOUNT <= 30 AND VOLUME=LOW100 AND LOW100>0;
{30日内最低成交量定义及标记(仅最近30天)}
LOW30:=LLV(VOLUME,30);
LOW30_FLAG:=CURRBARSCOUNT <= 30 AND VOLUME=LOW30 AND LOW30>0;
{假阴真阳/假阳真阴判断(仅最近30天)}
JIAYIN:=CURRBARSCOUNT <= 30 AND C < O AND C > REF(C,1) AND O > REF(C,1); {假阴真阳}
JIAYANG:=CURRBARSCOUNT <= 30 AND C > O AND C < REF(C,1) AND O < REF(C,1); {假阳真阴}
{长阴短柱定义(仅最近30天)}
CHANGYIN:=CURRBARSCOUNT <= 30 AND (C-REF(C,1))/REF(C,1)*100 < -4; {跌幅超过5%}
DUANZHU:=VOLUME < REF(VOLUME,1);
CHANGYIN_DZ:=CHANGYIN AND DUANZHU;
{==================== 修正后的“长腿”定义 ====================}
UPPER_SHADOW:=H - MAX(C, O); {上影线:最高价 - 实体顶端(阳线C/阴线O)}
LOWER_SHADOW:=MIN(C, O) - L; {下影线:实体底端(阳线O/阴线C) - 最低价}
BODY_HEIGHT:=ABS(C - O); {实体高度:阴阳线统一用绝对值}
LONG_LEG:=CURRBARSCOUNT <= 30
AND LOWER_SHADOW >= BODY_HEIGHT * 2
AND LOWER_SHADOW >= UPPER_SHADOW * 1.5
AND LOWER_SHADOW >= C * 0.01;
{==================== 原有“长阳矮柱”定义 ====================}
LONG_YANG:=C/O>1.04 AND C>O; {涨幅超过3%的阳线}
LOW_VOL:=VOLUME<MA(VOLUME,2)*0.8; {成交量低于近5日平均的80%}
CHANGYANG_AIZHU:=CURRBARSCOUNT <= 30 AND LONG_YANG AND LOW_VOL;
{定义基柱条件}
倍量柱:=VOL>=REF(VOL,1)*1.5;
大阳柱:=(C-REF(C,1))/REF(C,1)*100>5;
高量柱:=VOL=HHV(VOL,10);
次阳柱:=REF(C<O,1) AND C>O; {前一日阴线,当日阳线}
基柱条件:=倍量柱 OR 大阳柱 OR 高量柱 OR 次阳柱;
{后三日价格判断}
后三日最低:=MIN(MIN(REFX(C,1),REFX(C,2)),REFX(C,3));
基柱收盘:=REFX(C,0);
基柱开盘:=REFX(O,0);
后三日均价:=(REFX(C,1)+REFX(C,2)+REFX(C,3))/3;
{后三日量判断}
后三日量1:=REFX(VOL,1);
后三日量2:=REFX(VOL,2);
后三日量3:=REFX(VOL,3);
缩量条件:=后三日量3<后三日量2 OR 后三日量3<后三日量1; {宽松的缩量条件}
{跳空判断}
跳空上涨:=REFX(O,1)>REFX(C,0)*1.005;
{柱子类型判断}
元帅柱:=基柱条件 AND 后三日最低>基柱收盘 AND 跳空上涨 AND 缩量条件;
黄金柱:=基柱条件 AND 后三日最低>=基柱收盘 AND NOT(跳空上涨) AND 缩量条件;
将军柱:=基柱条件 AND 后三日最低>=基柱开盘 AND 后三日最低<基柱收盘 AND 缩量条件;
{柱子颜色-修改为指定颜色}
STICKLINE(元帅柱,0,VOL,2,0),COLORYELLOW; {紫色}
STICKLINE(黄金柱,0,VOL,2,0),COLORYELLOW; {黄色}
STICKLINE(将军柱,0,VOL,2,0),COLORYELLOW; {白色}
{文字标记-放在柱子中间,统一白色}
DRAWTEXT(元帅柱,VOL*0.5,'帅'),COLORRED;
DRAWTEXT(黄金柱,VOL*0.5,'黄'),COLORRED;
DRAWTEXT(将军柱,VOL*0.5,'将'),COLORRED;
{==================== 跳空下跌定义 ====================}
TIAOKONG_XIADIE:=CURRBARSCOUNT <= 30
AND O < REF(C,1) AND C<O
AND (REF(C,1)-O)/REF(C,1)*100 > 1.5 ;
{标记显示}
DRAWTEXT(SANYI, VOLUME*0.8, '3'), COLORWHITE;
DRAWTEXT(ERYI, VOLUME*0.8, '2'), COLORWHITE;
DRAWTEXT(XIAOBEI, VOLUME*1.3, '小&倍'), COLORRED;
DRAWTEXT(DABEI, VOLUME*1.3, '大&倍'), COLORRED;
DRAWTEXT(LOW10, VOLUME*0.2, '低'), COLORWHITE; {10天低量标记,最多3个}
DRAWTEXT(LOW30_FLAG, VOLUME*1.3, '30'), COLORRED;
DRAWTEXT(LOW100_FLAG, VOLUME*1.2, '百'), COLORRED;
DRAWTEXT(JIAYIN, VOLUME*1.3, '假&阴'), COLORRED;
DRAWTEXT(JIAYANG, VOLUME*1.3, '假&阳'), COLORGREEN;
DRAWTEXT(CHANGYIN_DZ, VOLUME*1.3, '长&阴&短'), COLORRED;
DRAWTEXT(LONG_LEG, VOLUME*1.3, '长&腿'), COLORRED;
DRAWTEXT(CHANGYANG_AIZHU, VOLUME*1.3, '长&阳&短'), COLORRED;
DRAWTEXT(TIAOKONG_XIADIE, VOLUME*1.3, '跳&跌'), COLORGREEN;
{涨停判断与基因统计}
ZT:=C/REF(C,1)>1.09;
LAST_ZT:=BARSLAST(ZT);
LIMIT:=IF(LAST_ZT=-1,20,IF(LAST_ZT=0,1,LAST_ZT));
{涨停基因统计}
XB_COUNT:=COUNT(XIAOBEI, LIMIT);
CYD_COUNT:=COUNT(CHANGYIN_DZ, LIMIT);
CYA_COUNT:=COUNT(CHANGYANG_AIZHU, LIMIT);
CT_COUNT:=COUNT(LONG_LEG, LIMIT);
L30_COUNT:=COUNT(LOW30_FLAG, LIMIT);
JY_COUNT:=COUNT(JIAYIN, LIMIT);
ZT_TOTAL:=XB_COUNT+CYD_COUNT+CYA_COUNT+CT_COUNT+L30_COUNT+JY_COUNT;
{不利基因统计}
JY2_COUNT:=COUNT(JIAYANG, LIMIT);
TKX_COUNT:=COUNT(TIAOKONG_XIADIE, LIMIT);
BL_TOTAL:=JY2_COUNT+TKX_COUNT;
{缩量情况统计}
SUO13:=VOLUME < REF(VOLUME,1)*2/3;
SUO12:=VOLUME < REF(VOLUME,1)*1/2;
DIL:=LOW30_FLAG;
BAI_DIL:=LOW100_FLAG;
SUO13_COUNT:=COUNT(SUO13, LIMIT);
SUO12_COUNT:=COUNT(SUO12, LIMIT);
DIL_COUNT:=COUNT(DIL, LIMIT);
BAI_DIL_COUNT:=COUNT(BAI_DIL, LIMIT);
SUO_TOTAL:=SUO13_COUNT+SUO12_COUNT+DIL_COUNT+BAI_DIL_COUNT;
{三行文字显示}
ZT_STR1:=STRCAT6('涨停基因:小倍阳',CON2STR(XB_COUNT,0),'个,长阴短',CON2STR(CYD_COUNT,0),'个,长阳短',CON2STR(CYA_COUNT,0));
ZT_STR2:=STRCAT6(ZT_STR1,'个,长腿',CON2STR(CT_COUNT,0),'个,',CON2STR(L30_COUNT,0),'个30低,假阴');
ZT_STR3:=STRCAT(ZT_STR2,STRCAT(CON2STR(JY_COUNT,0),'个,合'));
ZT_STR_FIN:=STRCAT(ZT_STR3,STRCAT(CON2STR(ZT_TOTAL,0),'个'));
DRAWTEXT_FIX(1,0.01,0.01,0,ZT_STR_FIN),COLORRED;
BL_STR1:=STRCAT6('不利基因:假阳',CON2STR(JY2_COUNT,0),'个,跳空跌',CON2STR(TKX_COUNT,0),'个,合','');
BL_STR_FIN:=STRCAT(BL_STR1,STRCAT(CON2STR(BL_TOTAL,0),'个'));
DRAWTEXT_FIX(1,0.01,0.08,0,BL_STR_FIN),COLORGREEN;
SUO_STR1:=STRCAT6('缩量情况:1/3缩',CON2STR(SUO13_COUNT,0),'个,1/2缩',CON2STR(SUO12_COUNT,0),'个,低量',CON2STR(DIL_COUNT,0));
SUO_STR2:=STRCAT6(SUO_STR1,'个,百日低',CON2STR(BAI_DIL_COUNT,0),'个,合','','');
SUO_STR_FIN:=STRCAT(SUO_STR2,STRCAT(CON2STR(SUO_TOTAL,0),'个'));
DRAWTEXT_FIX(1,0.01,0.15,0,SUO_STR_FIN),COLORFFFFFF;
{==================== 新增第四行:王牌柱统计(最近涨停到当前日区间) ====================}
{1. 统计区间内的元帅柱、黄金柱、将军柱数量}
YUANSHUAI_COUNT:=COUNT(元帅柱, LIMIT); {元帅柱数量}
HUANGJIN_COUNT:=COUNT(黄金柱, LIMIT); {黄金柱数量}
JIANGJUN_COUNT:=COUNT(将军柱, LIMIT); {将军柱数量}
WANGPAI_TOTAL:=YUANSHUAI_COUNT+HUANGJIN_COUNT+JIANGJUN_COUNT; {合计数量}
{2. 构建文字字符串(参照前序语法)}
WANGPAI_STR1:=STRCAT6('王牌柱:元帅柱',CON2STR(YUANSHUAI_COUNT,0),'个,黄金柱',CON2STR(HUANGJIN_COUNT,0),'个,将军柱',CON2STR(JIANGJUN_COUNT,0));
WANGPAI_STR_FIN:=STRCAT6(WANGPAI_STR1,'个,合计',CON2STR(WANGPAI_TOTAL,0),'个','','');
{3. 固定位置显示(Y坐标0.22,避免与第三行重叠;颜色用亮黄色区分)}
DRAWTEXT_FIX(1,0.01,0.22,0,WANGPAI_STR_FIN),COLORYELLOW;
|
|