DMA中的D,是中文的拼音:DONG。也可能是DYNAMIC。
这个函数,与SMA是一家的,看:
Y=M/N*X+(N-M)/N*Y';
Y=A*X+(1-A)*Y';
前者说,N必须大于M,后者说,A必须小于1。然后两者就一样了:A=M/N。
说“A为计算周期”似乎不妥,A明明要取小数才行。DMA在第一根K线就开始起算,SMA要到第二根K线开始起算。 七、
函数: HHV(X,N)
参数: X为数组,N为计算周期
返回: 返回数组
说明: 求N周期内X最高值,N=0则从第一个有效值开始。
示例: HHV(HIGH,30)
表示求30日最高价
函数: HHVBARS(X,N)
返回: X为数组,N为计算周期
参数: 返回数组
说明: 求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计
示例: HHVBARS(HIGH,0)
求得历史新高到到当前的周期数
这两个函数一起用,可以找到当前N天中的最高点。
A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1);
B:=COUNT(A,N)=1;{取得前N个周期内的最高点位置}
REF(H,BARSLAST(B));
DRAWICON(B,H,1),ALIGN2;{主图叠加。N:30,1,9999} 八、
函数: LLV(X,N)
参数: X为数组,N为计算周期
返回: 返回数组
说明: 求N周期内X最低值,N=0则从第一个有效值开始。
示例: LLV(LOW,0)
表示求历史最低价
函数: LLVBARS(X,N)
参数: X为数组,N为计算周期
返回: 返回数组
说明: 求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计
示例: LLVBARS(HIGH,20)
求得20日最低点到当前的周期数
当前N天之内的最高点和最低点就一目了然了:
A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1);
B:=COUNT(A,N)=1;{取得前N个周期内的最高点位置}
REF(H,BARSLAST(B));
DRAWICON(B,H,1),ALIGN2;
A2:=BACKSET(ISLASTPERIOD,LLVBARS(L,N)+1);
B2:=COUNT(A2,N)=1;{取得前N个周期内的最低点位置}
REF(L,BARSLAST(B2));
DRAWICON(B2,L,2),ALIGN1;{主图叠加。N:30,1,9999}
A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1);
B:=COUNT(A,N)=1;{取得前N个周期内的最高点位置}
REF(H,BARSLAST(B));
DRAWICON(B,H,1),ALIGN2;
A2:=BACKSET(ISLASTPERIOD,LLVBARS(L,N)+1);
B2:=COUNT(A2,N)=1;{取得前N个周期内的最低点位置}
REF(L,BARSLAST(B2));
DRAWICON(B2,L,2),ALIGN1;{主图叠加。N:30,1,9999}
这个公式求前期高低点,在600036等次新股上试调整参数就露马脚了,并不完善。
问题出在HHVBARS起算点等原因上。
南客刚发表了一个公式,就顺手牵羊牵过来吧。这个公式可以说是完美解决方案:
HH:HHV(H,N),LINETHICK2;
LL:LLV(L,N),LINETHICK2;{主图叠加,参数N:30,1,9999} <%
VH=FFL.VARDATA(\
VL=FFL.VARDATA(\
VN=FFL.VARDATA(\
LAST=UBOUND(VH)
IF VN>LAST THEN VN=LAST+1
FOR I=LAST TO LAST-VN+1 STEP-1
VH(I)=VH(LAST)
VL(I)=VL(LAST) NEXT
FFL.VARDATA(\
FFL.VARDATA(\
FFL.VARSTARTINDEX(\
FFL.VARSTARTINDEX(\ %>
当N个周期之内,有两个最高价,即有等高的情况出现,HHVBARS会返回哪个最高价到当前的周期数呢?
用副图公式观察一下,N取10:
HHVBARS(H,N);
如图,我们可以得出结论,返回的是前一个最高价到当前的周期数。
同样,当在N个周期之内,有两个等低的最低价出现时,LLVBARS会返回前一个最低价到当前的周期数。 九、
函数: SUMBARS(X,A)
参数: X为数组
返回: 返回数组
说明: 将X向前累加直到大于等于A,返回这个区间的周期数
示例: SUMBARS(VOL,CAPITAL)
求完全换手到现在的周期数
这个函数好用,在于它不但能精确地得到统计结果,而且能得到“模糊”的结果。
就以SUMBARS(VOL,CAPITAL)为例:
日期数:SUMBARS(VOL,CAPITAL);{返回成交量累加到流通盘的日期数}
验证:SUM(V,日期数)/CAPITAL;{把返回的日期数之内的成交量累计,再除以流通盘}
运行的结果中,我们可以看到,“验证”的输出,除了SUMBARS起算点附近之外,从来没有小于1的。可见SUMBARS只往多算,不往少算,非常“精明”。 十、
函数: BARSCOUNT(X)
参数: X为数组
返回: 返回数组
说明: 第一个有效数据到当前的天数
示例: BARSCOUNT(CLOSE)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库飞狐编程说明(6)在线全文阅读。
相关推荐: