金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 241|回复: 1

因金字塔没有成交量分布,自己编写的,源码一起分享

[复制链接]

3

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2025-1-12
曾用名:
发表于 2025-2-19 09:26 来自手机 | 显示全部楼层 |阅读模式
主图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;
回复

使用道具 举报

3

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2025-1-12
曾用名:
 楼主| 发表于 2025-2-19 09:50 来自手机 | 显示全部楼层
交易信号逻辑//突破VAH买入信号BuySignal=CROSS(CLOSE,VAH)ANDVOL>REF(MA(VOL,20),1)*1.5;//跌破VAL卖出信号SellSignal=CROSS(VAL,CLOSE)ANDVOL>REF(MA(VOL,20),1)*2;注意事项K线周期建议使用1小时及以上周期运行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-4-20 07:48 , Processed in 0.140151 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表