以下即為函數程式碼:
input: daysAgo(Numeric);
array: record[](0);
var: temp(0);
array_setmaxindex(record, daysAgo+1);
temp= highest(High,_NthBarInSession);
if _NthBarInSession=1 then begin
_arrayShift(record);
record[1]= temp[1];
end;
if daysAgo=0 then
_highSession= temp
else
_highSession= record[daysAgo];
接著,我們比較看看,這個函數跟內建的 highD 會有怎樣的差異?綠色的線是 highD,紫紅色的線則是 _highSession。從下圖中的兩條線,與交易時段區分線,我想你一定很容易可以看出 highD 在這類交易時段會跨日的商品上,會有什麼問題了。
還有相對於內建的 openD、lowD、closeD ,就自行依樣畫葫蘆的做出 _openSession、_lowSession、_closeSession 吧 ^_^