如题。
例如:假设K线定位在2010-9-3的日K线上,如何计算2010-4-1日到2010-9-3日的周期数?从而求出这期间的HHV等。
ayear:= year;
amonth:=intpart((month-1)/3) * 3 + 1;
{计算本季度的 HIGH,LOW}
JDDATE:=ayear * 10000 + amonth * 100 + 01 - 19000000; //取得当前日K线所在季度的第一日,比如光标定位到2010-9-3时,JDDATE表示2010-7-1。
BARCOUNT:=barslast(date=JDDATE);//当光标移动到2010-7-1,date=JDDATE,BARCOUNT开始计数。
JDHIGH:=HHV(HIGH,BARCOUNT);
JDLOW:=LLV(LOW,BARCOUNT);
{计算5个季度内的低值}
JDDATE5:=IF(AMONTH=1,JDDATE - 20000 -300 +1200, JDDATE - 10000 -300);//取得当前日K线前5个季度的第一日,比如光标定位到2010-9-3时,JDDATE表示2009-4-1。
bar5count:=barslast(date=JDDATE5);//当光标移动到2009-4-1,JDDATE5又表示2008-1-1了,date<>JDDATE5,bar5count无法开始计数。
LLV:=LLV(LOW,bar5count);
-------------------------------------
蓝色部分没有问题,红色部分永远也不能满足date=JDDATE5这个表达式,因为JDDATE5随着date变化的。
谢谢版主!
为什么通过计算得到的1100401,将其存入变量JDDATE,再调用barslast(DATE<JDDATE)就无法得到结果?如下:
ayear:= year;
amonth:=intpart((month-1)/3) * 3 + 1;
{计算本季度的 HIGH,LOW}
JDDATE:=ayear * 10000 + amonth * 100 + 01 - 19000000; //取得当前日K线所在季度的第一日,比如光标定位到2010-9-3时,JDDATE表示2010-7-1。
BARCOUNT:barslast(date<JDDATE);