上一次时间跟現在K线时间一样时的周期数
用处,可以知道同一时间但不同日子(可以是昨天或前兩天或一年前),那些K线曾发生过什么事
要通式,仼何周期(日以下)皆可用,仼何市场皆可用(即不同的开市/收市时间也可用)
x:=barslast(hour=9 and minute=47);
这只是指定一个时间,不是通式
也曾考慮过用for枚举所有时间,但耗CPU
首先多谢jinzhe老師提供以下的代碼:
方法一
nn:ref(todaybar,todaybar);
c1:ref(c,nn);
方法二
nn1:barslast(date<>ref(date,1));
cc1:ref(c,ref(nn1,nn1+1)+1)
这里nn/nn1就是要找的周期了,这是上一个交易同一时间但不同日子距今天的周期数
c1/cc1是对应的收市价,畫成了一个图
但以上公式需要每天的周期数一致,在1分鈡图有时会缺漏幾支棍的情況下,就不準確了,也未能用於半日市
覌察过一些品种後,发现HSI恒指连续最适合用来做测试,因为近三年其交易时间曾改过兩次,亦出現缺漏K线日及上/下
午半日市等不一致的交易日,若公式能在此品种通过,时间全部对得上的,就算成功了
-若找不到上一次周期的时间,畫图时可留空(DRAWNULL)或引用之前收市价作填充
-盡量不要耗用电腦資源,for等语句可免則免,若必須要用就用吧
这公式看似简单,實制上具挑戦性,请高手解决
请教各位老師,就以上所术,是否非要用for语句不可?有沒有其他简单方法?
以上问题好直覌地令人联想起barslast,但里面的时间怎样暫时固定起来呢?
x:=barslast(time=當前K线的时间);
因为是暫时固定,所以不能用const
又或者有其他函数能代替,而自己忽畧了?
老師啊,高人啊,请给个好的指引吧,不然公式会寫得長,计算又计得慢啊 ~~
穷举一天所有K线的情况,要用FOR了
时间的暂时固定,可用以下表示
TIME1:T0TOTIME(TIMETOT0(OPENTIME(1))+1*60); //1分钟周期开盘第一根K线---1*60表示60秒即1分钟
x1:barslast(time=TIME1)+1,linethick0;
第一种方法:只能帮你找到前一交易日的现在(就是当前最后一根K线)的周期:
nn:BARSLAST(date<>CURRENTDATE and time()=REFX(time(),DATACOUNT-BARPOS)),NODRAW;
例如,现在假如现在是周2下午2点03分,那么nn就是上一交易日(可能是周一)下午2点03分的K线,要看它的收盘价,那么:
cc:=ref(c,nn);
第二种方法:可以帮你找到前一交易日相同时间的周期:
bb:barslast(date()<>ref(date(),1))+1,NODRAW;
cc:refdate(c,ref(date(),bb),time());
bb是找到的那个周期那天的最后一根K线,cc是那个周期的close,上面这个代码的效果就是在今天显示昨天的收盘价线,你试试就知道了。
[此贴子已经被作者于2013-4-24 21:49:02编辑过]
给个图你看吧,直观点,序列也行,逐K也行:

此主题相关图片如下:未命名.jpg
[此贴子已经被作者于2013-4-24 21:52:01编辑过]