楼上这位朋友辛苦了!
宝塔线与鬼变脸指标我想应该是一回事吧。要较好的解决这个指标的公式编写,我想可能要用到一些中间变量,比如说:昨天红盘(红脸)条件下,今天又收红盘(红脸),其中就有两种情形,一种是今天收盘价创新高收红盘(也就是你所说的真阳宝塔),一种是今天收盘价不能创新高但没跌破昨天的下巴而收红盘(也就是你所说的假阳宝塔)。如果今天收盘价不能创新高而且又跌破昨天的下巴的话,那就是收绿盘了。正如你所说“同一个条件因上一天不同类型的宝塔线而产生不同结果”。所以每天都要将当天收盘价与昨天的价位进行比较,以确定红盘的最高价和次高价(若昨天是绿盘即确定绿盘的最低价和次低价),这就要用到控制类语句和中间变量了。但本人觉得飞狐的控制类公式编程语句恰恰不够强大,比如下面这条语句:
if b=0 .and. (c>=d .or. (c<d .and.c>=x))
a=a+1
......
endif
第一条语句条件在飞狐中好象无法运用。嵌入VBScript中是否能够解决我不得而知,因为我对VBScript脚本语言不熟悉。
我以前在DOS系统用FOXBASE语言编过童牧野的鬼变脸指标,觉得还较为成功。现将主要部分附录于后,愿您能在飞狐中给编出公式。
a=0 &&a代表昨红盘(红脸)
b=0 &&b代表昨绿盘(绿脸)
h=0 &&h代表今收盘价
d=h &&d代表较大数
x=0 &&x代表较小数
if b=0 .and. (h>=d .or. (h<d .and. h>=x))
&&如果昨红盘 和 (今收盘价>=昨大数 或 (今收盘价<昨大数 和 今收盘价>=昨小数))
a=a+1
......
pd=max(d,h) &&求两数较大者
px=min(d,h) &&求两数较小者
d=pd
x=px
else
if b>0 .and. h>d &&如果昨绿盘 和 今收盘价>=昨大数
a=a+1
b=b+1
......
pd=max(d,h) &&求两数较大者
px=min(d,h) &&求两数较小者
d=pd
x=px
b=0
endif
endif
if a=0 .and. (h<=x .or. (h>x .and. h<=d))
&&如果昨绿盘 和 (今收盘价<=昨小数 或 (今收盘价>昨小数 和 今收盘价<=昨大数))
b=b+1
......
pd=max(d,h) &&求两数较大者
px=min(d,h) &&求两数较小者
d=pd
x=px
else
if a>0 .and. h<x &&如果昨红盘 和 今收盘价<=昨小数
a=a+1
b=b+1
......
pd=max(d,h) &&求两数较大者
px=min(d,h) &&求两数较小者
d=pd
x=px
a=0
endif
endif
本贴由 原野 于 2005-3-20 11:52 最后编辑