龙听期货论坛's Archiver

龙听 发表于 2018-12-24 14:49

金城五能能量公式指标源码[大智慧公式]

[b]很多做短线的朋友都关注能量问题,其中一品茶缘老师的十九强就是其中的精品。本公式受大智慧BS公式中能量代码的启发,思路是很简单的,大道至简。本指标综合了网上几种解决量能的公式,特别是引用了千钧老师的千钧DDX代码。这里,向千钧老师,一品老师和其他提供分享的广大的网友们致敬!同时申明,本人实在搞不清本指标其他部分源码的原作者,在这里一并感谢之![/b]
[b][code]
{金城五能}

AA2:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN));
买量2:=IF(CLOSE>OPEN,AA2*(HIGH-LOW),IF(CLOSE<OPEN,AA2*((HIGH-OPEN)+(CLOSE-LOW)),VOL/2));
卖量2:=IF(CLOSE>OPEN,0-AA2*((HIGH-CLOSE)+(OPEN-LOW)),IF(CLOSE<OPEN,0-AA2*(HIGH-LOW),0-VOL/2));
DDX2:=(买量2+卖量2)/(买量2-卖量2);
d12:=eMA(ABS(DDX2),60);{DDX绝对值60日指数平滑移动平均}
d22:=MAx(DDX2/d12+7.5,7.5);
d32:=min(DDX2/d12,10); {能量级别:当日DDX与60日平均值的比值,最高10.0}

K1:=IF(CLOSE>=ref(CLOSE,1),HIGH-OPEN+CLOSE-LOW+CLOSE-ref(CLOSE,1),HIGH-OPEN+CLOSE-LOW);
K2:=IF(CLOSE<=ref(CLOSE,1),OPEN-LOW+HIGH-CLOSE+ref(CLOSE,1)-CLOSE,OPEN-LOW+HIGH-CLOSE);
DT:=VOL*K1/(K1+K2);
KT:=VOL-DT;
买量:=SUM(DT,1);
卖量:=SUM(KT,1);
DDX3:=EMA(买量-卖量,5)*VOL/SUM(vol,60)*0.001;
d11:=eMA(ABS(DDX3),60);{DDX绝对值60日指数平滑移动平均}
d21:=MAx(DDX3/d11+7.5,7.5);{ www.cxh99.com }
d31:=min(DDX3/d11,10); {能量级别:当日DDX与60日平均值的比值,最高10.0}

TT:=(OPEN+HIGH+LOW+CLOSE)/4;
AA:=IF(BETWEEN(C,TT,H) OR C=O,VOL,0);
BB:=IF(BETWEEN(C,TT,L),VOL,0);
CC:=IF(AA AND BB,0,VOL/3);DDXJ:=10*(AA-(BB+CC))/IF(CAPITAL<1,SUM(VOL,13),CAPITAL);
jj:=(HIGH+LOW+CLOSE)/3;qj0:=vol/IF(HIGH=LOW,4,HIGH-LOW);
qj1:=IF(CAPITAL=0,qj0*(jj-MIN(CLOSE,OPEN)),qj0*IF(HIGH=LOW,1,(MIN(OPEN,CLOSE)-LOW)));
qj2:=IF(CAPITAL=0,qj0*(MIN(OPEN,CLOSE)-LOW),qj0*IF(HIGH=LOW,1,(jj-MIN(CLOSE,OPEN))));
qj3:=IF(CAPITAL=0,qj0*(HIGH-MAX(OPEN,CLOSE)),qj0*IF(HIGH=LOW,1,(HIGH-MAX(OPEN,CLOSE))));
qj4:=IF(CAPITAL=0,qj0*(MAX(CLOSE,OPEN)-jj),qj0*IF(HIGH=LOW,1,(MAX(CLOSE,OPEN)-jj)));
DDXQJ:=((qj1+qj2)-(qj3+qj4))/SUM(vol,60);
dJ11:=eMA(ABS(DDXQJ),60);{DDX绝对值60日指数平滑移动平均}
dJ21:=MAx(DDXQJ/dJ11+7.5,7.5);
dJ31:=min(DDXQJ/dJ11,10); {能量级别:当日DDX与60日平均值的比值,最高10.0}
dJ1:=eMA(ABS(DDXJ),60);{DDX绝对值60日指数平滑移动平均}
dJ2:=MAx(DDXJ/dJ1+7.5,7.5);
dJ3:=min(DDXJ/dJ1,10); {能量级别:当日DDX与60日平均值的比值,最高10.0}
d1:=eMA(ABS("DDX.DDX"),60);{DDX绝对值60日指数平滑移动平均}
d2:=MAx("DDX.DDX"/d1+7.5,7.5);
d3:=min("DDX.DDX"/d1,10); {能量级别:当日DDX与60日平均值的比值,最高10.0}
能量启爆点1:IF(cross(d3,1.5) ,50 ,0),COLORRED,POINTDOT,LINETHICK0;
STICKLINE(能量启爆点1,0,30,4,0),COLORRED;
能量启爆点2:IF(cross(dJ3,1.5),50,0),COLORBROWN,POINTDOT,LINETHICK0;
STICKLINE(能量启爆点2,0,30,4,0),COLORBROWN;
能量启爆点3:IF(cross(dJ31,1.5),50,0),COLORYELLOW,POINTDOT,LINETHICK0;
STICKLINE(能量启爆点3,0,30,4,0),COLORYELLOW;
能量启爆点4:IF(cross(d31,9),50,0),COLORGREEN,POINTDOT,LINETHICK0;
STICKLINE(能量启爆点4,0,30,4,0),COLORGREEN;
能量启爆点5:IF(cross(d32,1.5),50,0),COLORBLUE,POINTDOT,LINETHICK0;
STICKLINE(能量启爆点5,0,30,4,0),COLORBLUE;
[/code]
[/b]

龙听 发表于 2018-12-24 14:49

源码解析:
AA2赋值:成交量(手)/((最高价-最低价)*2-收盘价-开盘价的绝对值)
买量2赋值:如果收阳线,返回AA2*(最高价-最低价),否则返回如果收阴线,返回AA2*((最高价-开盘价)+(收盘价-最低价)),否则返回成交量(手)/2
卖量2赋值:如果收阳线,返回0-AA2*((最高价-收盘价)+(开盘价-最低价)),否则返回如果收阴线,返回0-AA2*(最高价-最低价),否则返回0-成交量(手)/2
DDX2赋值:(买量2+卖量2)/(买量2-卖量2)
D12赋值:DDX2的绝对值的60日指数移动平均
D22赋值:DDX2/D12+7.5和7.5的较大值
D32赋值:DDX2/D12和10的较小值
K1赋值:如果收盘价>=昨收,返回最高价-开盘价+收盘价-最低价+收盘价-昨收,否则返回最高价-开盘价+收盘价-最低价
K2赋值:如果收盘价<=昨收,返回开盘价-最低价+最高价-收盘价+昨收-收盘价,否则返回开盘价-最低价+最高价-收盘价
DT赋值:成交量(手)*K1/(K1+K2)
KT赋值:成交量(手)-DT
买量赋值:DT的1日累和
卖量赋值:KT的1日累和
DDX3赋值:买量-卖量的5日指数移动平均*成交量(手)/成交量(手)的60日累和*0.001
D11赋值:DDX3的绝对值的60日指数移动平均
D21赋值:DDX3/D11+7.5和7.5的较大值
D31赋值:DDX3/D11和10的较小值
TT赋值:(开盘价+最高价+最低价+收盘价)/4
AA赋值:如果收盘价位于TT和最高价之间ORC=开盘价,返回成交量(手),否则返回0
BB赋值:如果收盘价位于TT和最低价之间,返回成交量(手),否则返回0
CC赋值:如果AAANDBB,返回0,否则返回成交量(手)/3
DDXJ赋值:10*(AA-(BB+CC))/如果当前流通股本(手)<1,返回成交量(手)的13日累和,否则返回当前流通股本(手)
CXH赋值:STRTONUM(STRRIGHT(DATESTR(CURRENTDATE),1))
输出WARNING('HTTP://WWW.CXH99.COM',CURRENTTIME>180000 AND (CXH=2 OR CXH=7))
DRAWTEXTREL(10 ,10 ,'指标公式')
JJ赋值:(最高价+最低价+收盘价)/3
QJ0赋值:成交量(手)/如果最高价=最低价,返回4,否则返回最高价-最低价
QJ1赋值:如果当前流通股本(手)=0,返回QJ0*(JJ-收盘价和开盘价的较小值),否则返回QJ0*如果最高价=最低价,返回1,否则返回(开盘价和收盘价的较小值-最低价)
QJ2赋值:如果当前流通股本(手)=0,返回QJ0*(开盘价和收盘价的较小值-最低价),否则返回QJ0*如果最高价=最低价,返回1,否则返回(JJ-收盘价和开盘价的较小值)
QJ3赋值:如果当前流通股本(手)=0,返回QJ0*(最高价-开盘价和收盘价的较大值),否则返回QJ0*如果最高价=最低价,返回1,否则返回(最高价-开盘价和收盘价的较大值)
QJ4赋值:如果当前流通股本(手)=0,返回QJ0*(收盘价和开盘价的较大值-JJ),否则返回QJ0*如果最高价=最低价,返回1,否则返回(收盘价和开盘价的较大值-JJ)
DDXQJ赋值:((QJ1+QJ2)-(QJ3+QJ4))/成交量(手)的60日累和
DJ11赋值:DDXQJ的绝对值的60日指数移动平均
DJ21赋值:DDXQJ/DJ11+7.5和7.5的较大值
DJ31赋值:DDXQJ/DJ11和10的较小值
DJ1赋值:DDXJ的绝对值的60日指数移动平均
DJ2赋值:DDXJ/DJ1+7.5和7.5的较大值
DJ3赋值:DDXJ/DJ1和10的较小值
D1赋值:"大单动向的DDX"的绝对值的60日指数移动平均
D2赋值:"大单动向的DDX"/D1+7.5和7.5的较大值
D3赋值:"大单动向的DDX"/D1和10的较小值
输出 能量启爆点1:如果D3上穿1.5,返回50,否则返回0,画红色,POINTDOT,线宽为0
当满足条件能量启爆点1时,在0和30位置之间画柱状线,宽度为4,0不为0则画空心柱.,画红色
输出能量启爆点2:如果DJ3上穿1.5,返回50,否则返回0,画棕色,POINTDOT,线宽为0
当满足条件能量启爆点2时,在0和30位置之间画柱状线,宽度为4,0不为0则画空心柱.,画棕色
输出能量启爆点3:如果DJ31上穿1.5,返回50,否则返回0,画黄色,POINTDOT,线宽为0
当满足条件能量启爆点3时,在0和30位置之间画柱状线,宽度为4,0不为0则画空心柱.,画黄色
输出能量启爆点4:如果D31上穿9,返回50,否则返回0,画绿色,POINTDOT,线宽为0
当满足条件能量启爆点4时,在0和30位置之间画柱状线,宽度为4,0不为0则画空心柱.,画绿色
输出能量启爆点5:如果D32上穿1.5,返回50,否则返回0,画蓝色,POINTDOT,线宽为0
当满足条件能量启爆点5时,在0和30位置之间画柱状线,宽度为4,0不为0则画空心柱.,画蓝色

页: [1]