用论坛上标准的求前一天的最高最低的代码,发现运行出来不对(CU1201,显示前一天最高为57990,实际应为55980)
代码如下
N:=BARSLAST(DATE>REF(DATE,1));
NN:=ref(N,N+1)+1;
highy:=ref(hhv(h,NN),N+1);
lowy:=ref(llv(l,NN),N+1);
//调试
if time=90100 then begin
aa:=0;
end
aa:=ref(N,1);
bb:=hhv(h,NN);
cc:=ref(hhv(h,NN),N+1);
dd:=ref(hhv(h,NN),1);
ee:=hhv(ref(h,1),NN);
调试结果如下图
发现ref(hhv(h,NN),1) 和 hhv(ref(h,1),NN) 结果是不一样的,求帮助
n:=barslast(date<>ref(date,1));
predayhigh:valuewhen(date<>ref(date,1),ref(hhv(h,n+1),1));昨高
predaylow:valuewhen(date<>ref(date,1),ref(llv(l,n+1),1));昨低
predayclose:valuewhen(date<>ref(date,1),ref(c,1));昨收
我用的是金字塔置顶的写法
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332
问题19
我不知道你的写法对不对,但是至少没有解决我的写法哪里错了的问题,以及ref与hhv交换后数值为何不同的问题
NN代表一天的k线数,比如1分钟1天就是270根
ref(hhv(h,NN),n+1)代表n+1个周期前(也就是当日第一根k线)的270周期(一天)内最高价。
hhv(ref(h,1),NN)代表上一周期的270周期内最高价
dd:=ref(hhv(h,NN),1);只会在当日第一根k线上和昨天最高价相等,其余k线不等
NN代表一天的k线数,比如1分钟1天就是270根
ref(hhv(h,NN),n+1)代表n+1个周期前(也就是当日第一根k线)的270周期(一天)内最高价。
hhv(ref(h,1),NN)代表上一周期的270周期内最高价
dd:=ref(hhv(h,NN),1);只会在当日第一根k线上和昨天最高价相等,其余k线不等
事实上截图的地方就是第一根K线,if time=90100 之后断点的
发现hhv(ref(h,1),NN) 和 hhv(ref(h,N+1),NN)数值不等,why
我再研究研究。
不同位置的NN不一样造成的呗.要一样,数据要一样,NN也要一样。你调试比较这2个数值就行了
另外:昨日高点的写法何必那么复杂,如此即可:
NN:=BARSLAST(DATE>REF(DATE,1))+1;
highy:=ref(hhv(h,NN),NN);
lowy :=ref(LLv(l,NN),NN);
不同位置的NN不一样造成的呗.要一样,数据要一样,NN也要一样。你调试比较这2个数值就行了
调试在同一个bar上的
我把问题化简一下好了:
N:BARSLAST(DATE>REF(DATE,1));
dd:hhv(ref(h,N+1),2);
ee:hhv(ref(h,1),2);
当时间是当天第一个K线,即90100时,N应该=0,dd和ee应该相等,但实际不相等,如图
能解决吗?