在1分钟K线图表中,分2种情况计算5分钟K线的最大波幅:
第一种情况:当日第1次开仓之前,5分钟K线波幅最大值(假定开仓,是在当日开盘5分钟以后开的仓);
第二种情况:当日第2次以后开仓时,求前1次平仓以后到本次开仓之前,5分钟k线波幅最大值;
说明:5分钟K线波幅,指的是5分钟图表k线的最高价与最低价的差值;
被引用指标A:
bf:h-l;
maxbf:hhv(bf,TODAYBAR);
当前指标:
temp1:=STKINDI('','A.maxbf',0,2,0);
if count(buycond,TODAYBAR)<=1 then result1:=temp;//buycond是你的开仓条件,开仓条件需要写完整
temp2:=hhv(temp1,BARSLAST(sellcond));//sellcond是你平仓条件,平仓条件需要写完整
if count(buycond,TODAYBAR)>1 and count(sellcond,TODAYBAR)>0 then result2:=temp2;
你看下处理方式,然后再根据你具体代码做修改。
今天测试了下,第2种情况下 求的结果resuit2不对,求得的是当日开盘以来的5k最大波幅,而不是前次平仓以来的最大波幅
variabile:resu2=100;
if 平仓条件 then
begin
sell();
resu2:=0;
end
if temp1>resu2 and resu2=0 then tem1:=resu2;
if 开仓条件 then
begin
buy();
resu2:=0;
end
dd:ref(resu2,exitbars);
你这个是小引大,如果连续的开平仓的小周期K对应的都是同一个的大周期K,那么引用到的值可能是一样的。