
等级: 新手上路
- 注册:
- 2025-1-12
- 曾用名:
|
主图PEL代码实现//参数设置INPUT:N(30,5,100,1),//计算周期(默认30根K线)ValueAreaPer(70,50,90,1),//价值区域比例(默认70%)[1](@ref)ShowVA(1),//显示价值区域ShowPoC(1),//显示成交量峰值点[1](@ref)ShowLVN(1);//标记低量节点VAR:i(0),j(0),HighPrice(0),LowPrice(0),TotalVol(0),PoCPrice(0),MaxVol(0),CurrentVol(0),VAL(0),VAH(0),VolArray[2000](0),//存储各价格成交量PriceStep(0.01);//价格精度(可调)METHODCalcVolumeProfile://初始化变量HighPrice=HHV(HIGH,N);LowPrice=LLV(LOW,N);TotalVol=SUM(VOL,N);PriceStep=(HighPrice-LowPrice)/200;//动态精度//清空历史数据ARRAYFILL(VolArray,0);//遍历周期内所有K线FORi=1TONBEGIN//计算每根K线的价格分布FORj=ROUND(LOW[i]/PriceStep)TOROUND(HIGH[i]/PriceStep)BEGINCurrentPrice=j*PriceStep;//累加对应价格成交量(按收盘位置加权)Weight=(CLOSE[i]-CurrentPrice)/PriceStep;VolArray[j+1000]=VolArray[j+1000]+VOL[i]*ABS(Weight);END;END;//寻找PoC(峰值点)MaxVol=0;FORj=1TO2000BEGINIFVolArray[j]>MaxVolTHENBEGINMaxVol=VolArray[j];PoCPrice=(j-1000)*PriceStep;END;END;//计算价值区域(动态百分比)ValueVol=TotalVol*ValueAreaPer/100;CurrentSumVol=0;VAH=PoCPrice;VAL=PoCPrice;//向上寻找VAHWHILECurrentSumVol<ValueVolANDVAH<HighPriceBEGINCurrentSumVol+=VolArray[ROUND((VAH+PriceStep)/PriceStep)+1000];VAH+=PriceStep;END;//向下寻找VALCurrentSumVol=0;WHILECurrentSumVol<ValueVolANDVAL>LowPriceBEGINCurrentSumVol+=VolArray[ROUND((VAL-PriceStep)/PriceStep)+1000];VAL-=PriceStep;END;END;//主图绘制逻辑IFBARPOS>=NTHENBEGIN//调用计算模块CalcVolumeProfile;//绘制价值区域IFShowVATHENBEGINDRAWLINE(BARPOS=1,VAL,BARPOS=REF(BARPOS,N),VAL,0),COLORRED;DRAWLINE(BARPOS=1,VAH,BARPOS=REF(BARPOS,N),VAH,0),COLORGREEN;FILLRGN(VAH,VAL,0,COLORRGB(255,235,200,50));END;//标记PoCIFShowPoCTHENBEGINDRAWTEXT(BARPOS=1,PoCPrice,'PoC:'+NUMTOSTR(PoCPrice,2)),COLORMAGENTA;PLOT1(PoCPrice,'',COLORMAGENTA,0,1);END;//识别低量节点(LVN)IFShowLVNTHENBEGINFORj=ROUND(LowPrice/PriceStep)TOROUND(HighPrice/PriceStep)BEGINCurrentPrice=j*PriceStep;IFVolArray[j+1000]<MaxVol*0.3THENDRAWTEXT(BARPOS=1,CurrentPrice,'*'),COLORGRAY;END;END;//绘制成交量柱状图(右侧)IFISLASTBARTHENBEGINFORj=ROUND(LowPrice/PriceStep)TOROUND(HighPrice/PriceStep)BEGINCurrentVol=VolArray[j+1000];IFCurrentVol>0THENDRAWNUMBER(BARPOS+j*3,CLOSE,CurrentVol),COLORGRAY;END;END;END; |
|