最近经常看到兄弟们提的问题是:如何引用分时图的黄色均价,在此,我想再次发帖,给大家一个精确算法:
首先,我批判“常见问题汇总里提供的结算价的算法”
{今日结算价}
ZQ:=IF(LLV(DAY,0)=HHV(DAY,0),0,BARSLAST(DAY<>REF(DAY,1))+1),LINETHICK0;
结算价:IF(SUM(VOL,ZQ)=0,(HIGH+LOW+OPEN+CLOSE)/4,SUM((HIGH+LOW+OPEN+CLOSE)/4*VOL,ZQ)/SUM(VOL,ZQ)) ;
很明显,这种算法偏差大了些。
要精确计算,就要知道算法。分时图的黄色均价的算法是什么呢?
“所有成交价格按成交量的加权平均价。”
换一种说法,就是=sum(每个价格*成交量)/sum(成交量)
=sum(每个价格*成交量*单位)/sum(成交量*单位)
=成交总额/(成交总量*单位)
于是比较精确的结算价算法如下:
cond:=day<>ref(day,1);
n:=barslast(cond)+1;
jj:sum(amount,n)/sum(vol,n)/multiplier;//适用日线及日线以下周期的K线,也试用所有品种
大家尽管把我的指标加载在分时图上,看是否和系统自带的黄色均价完全重叠!!
其实,这个问题我之前就有发表过,不过,帖子被沉入海底了
http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=4550&skin=0
——————————————————————————————————————————————————————————————————————————————————
期货的结算价与黄线基本相同 以下写法更好些
n1:=todaybar;
dm:=4-INTPART(LOG(C));
结算价:ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm),colorred;
Rogarz 2013.5.6