本篇介紹在具備[盤後交易時段]的期權商品裡,公式在應用上的判斷寫作技巧。
若您還不清楚[盤後交易制度],請先到期貨交易所網站了解制度後再閱讀本篇。
◆觀念重點
◎[盤後交易時段]是歸屬於次一[一般交易時段]之交易日,解說如下:
以盤後交易制度 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)。
◆問與答
問: |
如何判斷當前商品是否具備[盤後交易時段]? |
答: |
檢查商品名稱或商品代碼最後一個字是否為'+'即可判斷,例如: |
問: |
如何判斷交易日變換? |
答: |
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=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)); |