本篇介紹在具備[盤後交易時段]的期權商品裡,公式在應用上的判斷寫作技巧。

若您還不清楚[盤後交易制度],請先到期貨交易所網站了解制度後再閱讀本篇。



觀念重點


◎[盤後交易時段]是歸屬於次一[一般交易時段]之交易日,解說如下:

 以盤後交易制度 2017/05/15 上線當日起為例:(台指期貨)

   歸屬05/15  ||    同一交易日: 歸屬05/16    ||  歸屬05/17  

  一般交易時段 || 盤後交易時段 |-| 一般交易時段 ||  盤後交易時段 

 08:45   13:45||15:00   05:00|-|08:45   13:45||15:00   05:00 |

 05/15   每日結帳||05/15      05/16|-|05/16   每日結帳||05/16      05/17 |


◎[盤後交易時段]不是天天都有,例如:

 1.若因天災侵襲或選舉投票日,當日[一般交易時段]已宣布休市則[盤後交易時段]不交易。

 2.當日[一般交易時段]有開市,若台北市政府於14:00前宣布當日下午或晚上台北市全體公
  教機關停止上班時,則[盤後交易時段]休市不交易。

  例如:2018/07/10 二 強颱來襲台北市下午四點停班停課,下午[盤後交易時段]休市。

 3.週六補行上班日[盤後交易時段]休市。

  例如:2017/09/30 六 下午無[盤後交易時段]交易。

 4.結算日當天下午新次次月商品無[盤後交易時段]交易(自次一[一般交易時段]開始)。

  例如:2018/07/18這天7月結算,新次次月為10月,下午無10月份[盤後交易時段]交易。

  註:2018/07/02起期交所實施新制,近月契約數量由原先的2個月份調整為3個月份。
    舊制結算後新加入的近月份為新次月。新制結算後新加入的近月份為新次次月。

 ※以上四點僅供參考,請以交易所實際公告為準(休市規則未來可能會變動)。

◎因為[盤後交易時段]不一定會有,所以有些狀況要因應,例如:

 1.每個交易日的分K數量不一定會相等。

 2.每個交易日的首根分K位置,時間不一定都相同。

 3.以該交易日第N根做進出,將會面臨問題(未必是同時間分K,必須區分時段)。

 4.把數個交易日同時段的值加總,將會面臨問題(未必存在同時間分K)。



問與答

問:

如何判斷當前商品是否具備[盤後交易時段]?

檢查商品名稱或商品代碼最後一個字是否為'+'即可判斷,例如:
CK:=StrRight(StkLabel,1)='+'; //若CK=1代表當前商品具備[盤後交易時段]



問:

如何判斷交易日變換?

DECK:=Tradedate<>ref(Tradedate,1); //若DECK=1代表交易日變換(換交易日後首根)



問:

如何判斷當前K棒是否為[一般交易時段]首根?

運用新函數 IsRegularFBar 即可直接判斷。



問:

如何在[盤後交易時段]首根和[一般交易時段]首根,都畫上垂直虛線?

VERTLINE(IsRegularFBar or Tradedate<>ref(Tradedate,1)) linedot;



問:

如何判斷當前K棒是位於哪個交易時段?

DECK:=Tradedate<>ref(Tradedate,1);

TMode:=DECK+IsRegularFBar*2;

TMode:=ref(TMode,barslast(TMode<>0)); //交易時段:{1.盤後 2.一般 3.僅一般}
當 TMode>1 代表當前K棒為[一般交易時段]。

當 TMode=1 代表當前K棒為[盤後交易時段]。

當 TMode=3 代表當前K棒為[一般交易時段],並且該交易日無[盤後交易時段]。



問:

如何在分線中取得前一個交易日之[一般交易時段]的開高低收?

DECK:=Tradedate<>ref(Tradedate,1);

RFSP:=barslast(IsRegularFBar);

RZSP:=barslast(DECK)+1;

YDO:ref(ref(Open,RFSP),RZSP);

YDH:ref(HHV(High,RFSP+1),RZSP);

YDL:ref(LLV(Low,RFSP+1),RZSP);

YDC:ref(Close,RZSP);



問:

如何在分線中取得取得當前交易日之[盤後交易時段]的開高低收?
若該交易日無[盤後交易時段]則用零值填補。

DECK:=Tradedate<>ref(Tradedate,1);

TMode:=DECK+IsRegularFBar*2;

TMode:=ref(TMode,barslast(TMode<>0)); //交易時段:{1.盤後 2.一般 3.僅一般}

ZFCK:=TMode=1 and ref(TMode,1)>1; //盤後交易時段首根

ZFSP:=barslast(ZFCK);

SP:=barslast(TMode=1);

ZO:if(TMode=3,0,ref(ref(Open,ZFSP),SP));

ZH:if(TMode=3,0,ref(HHV(High,ZFSP+1),SP));

ZL:if(TMode=3,0,ref(LLV(Low,ZFSP+1),SP));

ZC:if(TMode=3,0,ref(Close,SP));