指标基于DMAn=DMA(C,DMRn)进行整合优化,对换手因子DMRn=V/HHV(V,PERIOD)做了指数级与线性调整。通过不同DMA均线组合,实现两种核心用途:成本分布和突破识别。
最终我给出的定型主图包含了三个参数:颜色、用途、周期(成交量标记副图只有一个颜色参数)。以下是细节展示:
(*)主图参数(缺省参数为MODE=2,TYPE=1,PARA=1);
(1)颜色模式调整:(MODE=1 or 2,TYPE=1,PARA=1);
(2、3)用途类型调整、周期参数调整:(MODE=1,TYPE=1,PARA=1 or 2)or(MODE=1,TYPE=2,PARA=1 or 2);
{苍山如海主图源码如下}
MODE:=2;
TYPE:=1;
PARA:=1;
{DEF-CA}
TYC:=(C+H+L)/3;
VPC:=0.01*AMO/V;
TVR:=0.01*TYC/VPC;
CASK:=IF(BETWEEN(TVR,0,0.05),1,0);
VRPC:=IF(BETWEEN(TVR,0,0.05)=1,VPC,IF(BETWEEN(TVR,0.95,1.05)=1,VPC*100,TYC));
{OP-BK}
LTC:=LLV(TYC,60);
HTC:=HHV(TYC,60);
MTC:=(LTC+HTC)/2;
LGB:=IF(CASK=1,MIN(LTC*0.92,MTC*0.75),DRAWNULL);
HGB:=IF(CASK=1,MAX(HTC*1.08,MTC*1.25),DRAWNULL);
DRAWBAND(HGB,RGB(200,200,200),LGB,RGB(200,200,200));
DRAWGBK(MODE=1,RGB(254,255,255),RGB(254,255,255),0,0,0);
DRAWGBK(MODE=2,RGB(12,24,36),RGB(12,24,36),0,0,0);
{DEF-T1}
DMR0:=POW(V/HHV(V,60*POW(2,PARA)),TYPE);
DMIN:=POW(0.10,4);
DMAX:=1-DMIN;
DMA1:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,8,1))/1)));
DMA2:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,4,2))/1)));
DMA3:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,2,4))/1)));
DMA4:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,1,8))/1)));
DMB1:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,8,1))/2)));
DMB2:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,4,2))/2)));
DMB3:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,2,4))/2)));
DMC1:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,8,1))/4)));
DMC2:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,4,2))/4)));
DMD1:=DMA(TYC,MAX(DMIN,MIN(DMAX,POW(DMR0,IF(TYPE=1,8,1))/8)));
MKIN:=MAX(MAX(MAX(MAX(MAX(MAX(MAX(MAX(MAX(DMA1,DMA2),DMA3),DMA4),DMB1),DMB2),DMB3),DMC1),DMC2),DMD1);
MKAX:=MIN(MIN(MIN(MIN(MIN(MIN(MIN(MIN(MIN(DMA1,DMA2),DMA3),DMA4),DMB1),DMB2),DMB3),DMC1),DMC2),DMD1);
{DEF-T2}
DKP1:=2.00;
DKP2:=4.00;
DKM1:=0.50;
DKM2:=0.25;
DMP1:=POW(DMR0,DKP1);
DMP2:=POW(DMR0,DKP2);
DMM1:=POW(DMR0,DKM1);
DMM2:=POW(DMR0,DKM2);
R0R0:=DMR0/TYPE;
R0P1:=DMR0/TYPE*DKP1;
R0P2:=DMR0/TYPE*DKP2;
R0M1:=DMR0/TYPE*DKM1;
R0M2:=DMR0/TYPE*DKM2;
P1R0:=DMP1/TYPE;
P1P1:=DMP1/TYPE*DKP1;
P1M1:=DMP1/TYPE*DKM1;
M1R0:=DMM1/TYPE;
M1P1:=DMM1/TYPE*DKP1;
M1M1:=DMM1/TYPE*DKM1;
P2R0:=DMP2/TYPE;
M2R0:=DMM2/TYPE;
DNA1:=DMA(TYC,MIN(DMAX,MAX(DMIN,R0P2)));
DNA2:=DMA(TYC,MIN(DMAX,MAX(DMIN,R0M2)));
DNA3:=DMA(TYC,MIN(DMAX,MAX(DMIN,P1P1)));
DNA4:=DMA(TYC,MIN(DMAX,MAX(DMIN,M1P1)));
DNA5:=DMA(TYC,MIN(DMAX,MAX(DMIN,P1M1)));
DNA6:=DMA(TYC,MIN(DMAX,MAX(DMIN,M1M1)));
DNA7:=DMA(TYC,MIN(DMAX,MAX(DMIN,P2R0)));
DNA8:=DMA(TYC,MIN(DMAX,MAX(DMIN,M2R0)));
DNB1:=DMA(TYC,MIN(DMAX,MAX(DMIN,R0P1)));
DNB2:=DMA(TYC,MIN(DMAX,MAX(DMIN,R0M1)));
DNB3:=DMA(TYC,MIN(DMAX,MAX(DMIN,P1R0)));
DNB4:=DMA(TYC,MIN(DMAX,MAX(DMIN,M1R0)));
DNC1:=DMA(TYC,MIN(DMAX,MAX(DMIN,R0R0)));
NKIN:=MAX(MAX(MAX(MAX(MAX(MAX(MAX(MAX(MAX(MAX(MAX(MAX(DNA1,DNA2),DNA3),DNA4),DNA5),DNA6),DNA7),DNA8),DNB1),DNB2),DNB3),DNB4),DNC1);
NKAX:=MIN(MIN(MIN(MIN(MIN(MIN(MIN(MIN(MIN(MIN(MIN(MIN(DNA1,DNA2),DNA3),DNA4),DNA5),DNA6),DNA7),DNA8),DNB1),DNB2),DNB3),DNB4),DNC1);
{OP-DK}
BKIN:=IF(TYPE=1,MKIN,NKIN);
BKAX:=IF(TYPE=1,MKAX,NKAX);
STICKLINE(MODE=1,BKIN,BKAX,2,1),COLORFFF8F4;
STICKLINE(MODE=2,BKIN,BKAX,2,1),COLOR302010;
{OP-T1L1}
NOTEXT1M1A4:IF(TYPE=1 AND MODE=1,DMA4,DRAWNULL),COLORFFE8E0;
NOTEXT1M1B3:IF(TYPE=1 AND MODE=1,DMB3,DRAWNULL),COLORFFE8E0;
NOTEXT1M1C2:IF(TYPE=1 AND MODE=1,DMC2,DRAWNULL),COLORFFE8E0;
NOTEXT1M1D1:IF(TYPE=1 AND MODE=1,DMD1,DRAWNULL),COLORFFE8E0;
NOTEXT1M2A4:IF(TYPE=1 AND MODE=2,DMA4,DRAWNULL),COLOR382513;
NOTEXT1M2B3:IF(TYPE=1 AND MODE=2,DMB3,DRAWNULL),COLOR382513;
NOTEXT1M2C2:IF(TYPE=1 AND MODE=2,DMC2,DRAWNULL),COLOR382513;
NOTEXT1M2D1:IF(TYPE=1 AND MODE=2,DMD1,DRAWNULL),COLOR382513;
{OP-T1L2}
NOTEXT1M1A3:IF(TYPE=1 AND MODE=1,DMA3,DRAWNULL),COLORFFD0C0;
NOTEXT1M1B2:IF(TYPE=1 AND MODE=1,DMB2,DRAWNULL),COLORFFD0C0;
NOTEXT1M1C1:IF(TYPE=1 AND MODE=1,DMC1,DRAWNULL),COLORFFD0C0;
NOTEXT1M2A3:IF(TYPE=1 AND MODE=2,DMA3,DRAWNULL),COLOR4B3219;
NOTEXT1M2B2:IF(TYPE=1 AND MODE=2,DMB2,DRAWNULL),COLOR4B3219;
NOTEXT1M2C1:IF(TYPE=1 AND MODE=2,DMC1,DRAWNULL),COLOR4B3219;
{OP-T2L1}
NOTEXT2M1A1:IF(TYPE=2 AND MODE=1,DNA1,DRAWNULL),COLORFFE8E0;
NOTEXT2M1A2:IF(TYPE=2 AND MODE=1,DNA2,DRAWNULL),COLORFFE8E0;
NOTEXT2M1A3:IF(TYPE=2 AND MODE=1,DNA3,DRAWNULL),COLORFFE8E0;
NOTEXT2M1A4:IF(TYPE=2 AND MODE=1,DNA4,DRAWNULL),COLORFFE8E0;
NOTEXT2M1A5:IF(TYPE=2 AND MODE=1,DNA5,DRAWNULL),COLORFFE8E0;
NOTEXT2M1A6:IF(TYPE=2 AND MODE=1,DNA6,DRAWNULL),COLORFFE8E0;
NOTEXT2M1A7:IF(TYPE=2 AND MODE=1,DNA7,DRAWNULL),COLORFFE8E0;
NOTEXT2M1A8:IF(TYPE=2 AND MODE=1,DNA8,DRAWNULL),COLORFFE8E0;
NOTEXT2M2A1:IF(TYPE=2 AND MODE=2,DNA1,DRAWNULL),COLOR382513;
NOTEXT2M2A2:IF(TYPE=2 AND MODE=2,DNA2,DRAWNULL),COLOR382513;
NOTEXT2M2A3:IF(TYPE=2 AND MODE=2,DNA3,DRAWNULL),COLOR382513;
NOTEXT2M2A4:IF(TYPE=2 AND MODE=2,DNA4,DRAWNULL),COLOR382513;
NOTEXT2M2A5:IF(TYPE=2 AND MODE=2,DNA5,DRAWNULL),COLOR382513;
NOTEXT2M2A6:IF(TYPE=2 AND MODE=2,DNA6,DRAWNULL),COLOR382513;
NOTEXT2M2A7:IF(TYPE=2 AND MODE=2,DNA7,DRAWNULL),COLOR382513;
NOTEXT2M2A8:IF(TYPE=2 AND MODE=2,DNA8,DRAWNULL),COLOR382513;
{OP-T2L2}
NOTEXT2M1B1:IF(TYPE=2 AND MODE=1,DNB1,DRAWNULL),COLORFFA080;
NOTEXT2M1B2:IF(TYPE=2 AND MODE=1,DNB2,DRAWNULL),COLORFFA080;
NOTEXT2M1B3:IF(TYPE=2 AND MODE=1,DNB3,DRAWNULL),COLORFFA080;
NOTEXT2M1B4:IF(TYPE=2 AND MODE=1,DNB4,DRAWNULL),COLORFFA080;
NOTEXT2M2B1:IF(TYPE=2 AND MODE=2,DNB1,DRAWNULL),COLOR724C26;
NOTEXT2M2B2:IF(TYPE=2 AND MODE=2,DNB2,DRAWNULL),COLOR724C26;
NOTEXT2M2B3:IF(TYPE=2 AND MODE=2,DNB3,DRAWNULL),COLOR724C26;
NOTEXT2M2B4:IF(TYPE=2 AND MODE=2,DNB4,DRAWNULL),COLOR724C26;
{OP-K1}
HZF:=100*(H/REF(C,1)-1);
DP1:=IF(CASK=1 AND HZF>=5,1,0);
DP2:=IF(CASK=0 AND HOD(HZF,240)<=60,1,0);
DPX:=SGN(DP1+DP2);
KXN:=IF(C>O OR (C=O AND C>=REF(C,1)),1,0);
STICKLINE(KXN=0 AND MODE=1,H,L,0,0),COLORC0C0A0;
STICKLINE(KXN=1 AND MODE=1,H,L,0,1),COLORC0A0C0;
STICKLINE(KXN=0 AND MODE=1,C,O,2,0),COLORC0C0A0;
STICKLINE(KXN=1 AND MODE=1,C,O,2,1),COLORC0A0C0;
STICKLINE(KXN=0 AND MODE=2,H,L,0,0),COLOR606050;
STICKLINE(KXN=1 AND MODE=2,H,L,0,1),COLOR605060;
STICKLINE(KXN=0 AND MODE=2,C,O,2,0),COLOR606050;
STICKLINE(KXN=1 AND MODE=2,C,O,2,1),COLOR605060;
{OP-T1L3}
NOTEXT1M1A2:IF(TYPE=1 AND MODE=1,DMA2,DRAWNULL),COLORFFA080;
NOTEXT1M1B1:IF(TYPE=1 AND MODE=1,DMB1,DRAWNULL),COLORFFA080;
NOTEXT1M2A2:IF(TYPE=1 AND MODE=2,DMA2,DRAWNULL),COLOR724C26;
NOTEXT1M2B1:IF(TYPE=1 AND MODE=2,DMB1,DRAWNULL),COLOR724C26;
{OP-K2}
STICKLINE(KXN=0 AND DPX=1,H,L,0,0),COLOR00A000;
STICKLINE(KXN=1 AND DPX=1,H,L,0,1),COLOR0000E0;
STICKLINE(KXN=0 AND DPX=1,C,O,2,0),COLOR00A000;
STICKLINE(KXN=1 AND DPX=1,C,O,2,1),COLOR0000E0;
{OP-T1L4}
NOTEXT1M1A1:IF(TYPE=1 AND MODE=1,DMA1,DRAWNULL),COLORC03000;
NOTEXT1M2A1:IF(TYPE=1 AND MODE=2,DMA1,DRAWNULL),COLORF0A050;
{OP-T2L4}
NOTEXT2M1C1:IF(TYPE=2 AND MODE=1,DNC1,DRAWNULL),COLORC03000;
NOTEXT2M2C1:IF(TYPE=2 AND MODE=2,DNC1,DRAWNULL),COLORF0A050;
{OP-TX}
TXMD:=IF(MODE=1,'【青花瓷】','【深蓝骇客】');
TXTP:=IF(TYPE=1,'量峰突破识别','模拟平均成本');
TXPA:=IF(PARA=1,'(季度)',IF(PARA=2,'(半年)','(一年)'));
DRAWTEXT_FIX(MODE=1,0,0,0,STRCAT(TXMD,STRCAT(TXTP,TXPA))),COLORFFA080;
DRAWTEXT_FIX(MODE=2,0,0,0,STRCAT(TXMD,STRCAT(TXTP,TXPA))),COLOR906030;
{成交量副图源码如下}
{DEF-WV}
WV:=V*POW(0.1,4);
WA:=AMO*POW(0.1,8);
{DEF-HV}
HVRN:=POW(V/HHV(V,120),2);
AVRN:=IF(HVRN>=0.2,1,0);
MODE:=2;
{OP-WV}
总量_万手:WV,NODRAW,COLORFF8000;
总额_亿元:WA,NODRAW,COLORFF8000;
{OP-BK}
DRAWGBK(MODE=1,RGB(254,255,255),RGB(254,255,255),0,0,0);
DRAWGBK(MODE=2,RGB(12,24,36),RGB(12,24,36),0,0,0);
DRAWBAND(IF(MODE=1,HHV(WV,240),DRAWNULL),RGB(254,255,255),IF(MODE=1,0,DRAWNULL),RGB(254,255,255));
DRAWBAND(IF(MODE=2,HHV(WV,240),DRAWNULL),RGB(12,24,36),IF(MODE=2,0,DRAWNULL),RGB(12,24,36));
{OP-VL}
KXN:=IF(C>O OR (C=O AND C>=REF(C,1)),1,0);
STICKLINE(MODE=1 AND KXN=0,0,WV,2,0),COLORC8E8A8;
STICKLINE(MODE=1 AND KXN=1,0,WV,2,1),COLORC8A8E8;
STICKLINE(MODE=2 AND KXN=0,0,WV,2,0),COLOR364824;
STICKLINE(MODE=2 AND KXN=1,0,WV,2,1),COLOR483060;
STICKLINE(KXN=0 AND AVRN=1,0,WV,2,0),COLOR00A000;
STICKLINE(KXN=1 AND AVRN=1,0,WV,2,1),COLOR0000E0;