2016年4月22日 星期五

函數(_NthBarInSession):交易時段內的第N根


好些開發策略應用在台指時的常用簡單觀念與寫法,轉進國外期貨的時候常常會發現一堆奇奇怪怪的狀況出現,比如:我想知道最近第幾天前的高點的價位。在台灣,交易時段的時間不會出現跨日的狀況,但是現在沒有不保證未來不會有呢。當我要知道昨天日線的最高點,通常就直接引用內建函數 highD(1),一點問題都沒有。但是國外期貨呢?



以道瓊期貨來說,交易時段的開始到結束就會跨越零時,也就是同一天的交易,其實是會跨日的。而同一個日期,卻會有兩個交易時段,如下圖所示:

因此,過去我習慣用來計算目前 K棒屬於當天的第幾根就不能用 K=iff(D<>D[1], 1, K+1); 這麼簡易的方式了。得另外想個寫法來做這件事,由於這個方式也能適用在台指這樣交易時間不會跨日的商品,它就能取代過去的作法,所以把它做成函數以方便未來引用,名稱: _NthBarInSession,回傳值類型為數值。
var: sessionClosing(false);
var: counting(0);

sessionClosing= sessionlastbar;

if sessionClosing[1]= true then
  counting= 1
else
  counting= counting[1]+1;

_NthBarInSession= counting;  


讓我們來看看這函數的效果。plot1( _NthBarInSession ); 。


下一篇,我們將引用 _NthBarInSession 這個函數,來做另外一個函數去取代 highD(N):http://www.yctseng.net/2016/04/n_22.html

熱門文章