CurrentBar 這個指令, 在 HTS 裡面不常見.
不過, 倒是滿常在 TS 程式裡面看到的.
因此, 我認為有必要將它的意義和功用寫下來.

大概彙整一下網路上 & TS help 裡對 currentbar 的解釋如下:
指定 chart 裡對所寫的指標/策略 開始有效的 K bar.
ex. chart 裡的 “Maximun number of bars referenced by a study”(亦即 MaxBarsBack) 指定為 10, 則 chart 中由左開始數的第 11根 K bar 的 currentbar=1, 第 12根 K bar 的 currentbar=2,…and so on.

因此,
if currentbar=1 then begin
{


}
end
多用來對 indicator/strategy 一開始的初始變數做設定用, 這些設定只需在開頭做一次就好, 以後的 bar 就不必再做.

有聽也有懂嗎?
沒關係! 看一下範例…


為方便解釋, 我用一個簡單的平均線觸價買賣程式做例子. 程式碼如下:
2009-08-18_program


在 TS 選用這個策略後, 買賣點發生在 2004/4/2, 而這天是 chart 圖裡的第 27跟 K bar.

2009-08-18_ts w currentbar=1


好~
現在我們把程式裡 currentbar 改為 >=2.
結果會如何?

2009-08-18_ts w currentbar=2


有看到嗎?
Chart 裡第一個買賣動作在順延了一根 bar, 發生在 2004/4/5.

其實, 如果把 strategy format 裡的 Max number of bars strategy will 從 25(因為程式是算 25日平均值) 改為 26.
也是可以得到和 currentbar =2 相同的結果.

2009-08-18_strategy format

看到這裡, 對照本文最前面對 currentbar 的解釋文.
應該可以更清楚這指令的意義了吧?


現在, 我們稍稍改一下程式.
如果, 我們把上圖程式裡紅框裡的程式拿掉.
在 TS 裡的第一個買賣點也是發生在 2004/4/2 !

2009-08-18_ts wo currentbar


這樣的結果, 我猜想是 TS 裡其實有防呆機制, 會自動去選配正確的數值和動作出來.
不過依著多數人都會把 currentbar 加入程式碼裡, 應該是想更加確保 TS 把 signal/strategy 動作做正確的保險.

試到這裡!
我發現有一個疑點我無法明瞭.
就是 2004/4/2 是 chart 裡的 27th K bar.
為什麼不是 26th K bar?
若有人知道, 麻煩告訴我一下!

arrow
arrow
    全站熱搜

    htnvt241 發表在 痞客邦 留言(0) 人氣()