這個函數將會傳回目前 Bar 所屬時間的週選擇權的第幾週合約,正常來說是 1~5。也就是下圖中圈起來的這個數字。
函數名稱:WOptionWeekth。傳回:數值。程式碼如下:
var: passedWeek(false), theWeek(1),
passedMonth(false), theMonth(""),
weekAddable(false);
var: j(0), lastDay(0);
var: isNight(false);
isNight= time=sess2firstbartime;
if month(D)<>month(D)[1] then
weekAddable= false;
if weekAddable=false and dayofweek(D)>=3 and dayofweek(D)<5 and isNight then
theWeek= 0;
if theWeek<=1 then
weekAddable= true;
if dayofweek(D)<dayofweek(D)[1] then
passedWeek= false;
if dayofweek(D)>=3 and passedWeek=false and weekAddable=true then begin
if isNight or (T[1]=sess2endtime and D<>D[1]) then begin
theWeek= theWeek + iff(datetojulian(D)-datetojulian(lastDay)<9,1,2);
passedWeek= true;
lastDay= D;
end;
end;
if dayofweek(D)>=3 and dayofmonth(D)>=24 and isNight then begin
if month(D)<>month( JulianToDate(datetojulian(D)+(10-dayofweek(D))) ) then begin
theMonth= text( (1900+Year(D)+iff(month(D)=12,1,0)):0:0, "/", (month(D)+1):0:0 );
theWeek= 1;
end;
end;
WOptionWeekth= theWeek;
我是利用期交所宣傳週選擇權加掛規則的說明去做,規則如下:
你可以建立好上述函數後,使用 指標 或是 訊號去呼叫它。例如 plot1( WOptionWeekth ); 在圖表上顯示出每根 Bar 當時正在交易的週選擇權第 N 週。