阶段涨幅
{n日收盘价的差值的百分比}
(close-ref(close,n))/ref(close,n)*100;
再创新高
{当结果值为1时,就是创新高了}
high = hhv(high,n);
放量上攻
{价格上扬:5日上涨20%}
m1 := close/ref(close,5) > 1.2;
{成交量剧增:成交量超过5日均量的3倍}
m2 := vol > ma(vol,5)*3;
{价格上扬且成交量剧增}
m1 and m2;
窄幅整理
{20日收盘价振幅在8%以内}
(hhv(close,20)-llv(close,20))/close < 0.08;
{20日内最高价到现在的周期数}
hhvbars(high,20); {等于6则表示前期高点出现在6日前}
{60天前到40天前之间的最高价}
{解析:实际上就是一个20天最高价,只不过是40天前的20日最高价}
ref(hhv(high,20),40);
- 求1998年8月1日到1998年12月31日间的最高价
hh := if(year=1998 and month>=8 and month<=12,high,0);
hhv(hh,0);
点到面转换
- 有时我们需要过去发生的事件,例如条件选股最近20日内是否发生涨停等,由于涨停仅在当天可以计算出来,因此需要用点到面转换将该影响延续成一段时间。count、sum、hhv、llv等函数均有点到面转换的作用。
{最近20日内是否发生涨停}
tt := close/ref(close,1)>1.099; {表示涨幅大于10%}
count(tt,20) > 0; {统计20日内涨停天数}
历史某阶段的涨幅
- 得到1999年5月19日到1999年6月29日这一时期的涨幅
{得到5月19日的收盘价}
a1 := if(date=990519,close,0);
a2 := sum(a1,0);
{得到6月29日的收盘价}
b1 := if(date=990629,close,0);
b2 := sum(b1,0);
面到点转换
- 有时我们需要反过来做面到点转换,例如当rsi高于80表示股价处于超买阶段,应该卖出。单由于超过80是一个阶段,如果这个阶段中每天都发出卖出信号就不好了,需要一个将连续区间转化为一个信号的函数,即面到点的转换。
{判断rsi是否上穿80}
cross(rsi,80);
线性回归
{求10周期线性回归预测本周期收盘价}
forcast(close,10);
{10周期内是否有每日平均5%的升幅趋势}
slope(close,10)/ref(close,10) > 0.05;