Shopping Cart

購物車內沒有任何商品。

【程式碼分享】TradingView台指期結算怎麼看?從轉倉規則到 Pine Script 實作一次搞懂

對於進行期貨自動交易的投資人來說,正確掌握台指期結算日與轉倉時機是建立穩健策略的第一步。尤其是在使用 TradingView 撰寫 Pine Script 自動化策略時,更需要精準設計「什麼時候轉倉、何時平倉」的邏輯。

因此,本篇文章將帶你了解台指期結算與轉倉的時間邏輯,並透過實務案例說明如何使用 TradingView 撰寫出「判斷轉倉日並自動出場」的程式碼。

立即訂閱電子報,掌握最新資訊!

    稱呼

    電子郵件

    以下非必填,但若您願意分享,我們將能推送更精準的內容給您

    投資經驗

    是否為理工科背景、工程師或有寫程式的經驗?

    有興趣的主題
    量化交易台股期貨海外期貨虛擬貨幣美股

    有興趣的量化交易軟體/平台
    不清楚MultiChartsTradingViewPythonXQ

    想透過量化交易達成甚麼目的?
    不確定自動交易選股回測投資績效量化自己的投資方法想找現成的策略套用

    還有什麼想詢問的?

    零成本體驗TradingView台指期量化交易|全自動下單,小台微台也適用

    根據台灣期交所的規定,台指期(台灣指數期貨)每月的結算日固定為第三個星期三。

    市場實務上,為避免在結算日當天,遇到大幅波動與流動性不足的風險,多數交易者會選擇在結算日前一個交易日的夜盤提前完成「轉倉」操作。

    在期貨交易中,所謂的轉倉是指在舊的合約即將到期時,把持有的部位平倉,同時建立新的遠月合約部位,以持續維持相同方向的市場曝險(多單或空單)。

    也由於 TradingView 採用與國際期貨市場的轉倉習慣,其轉倉時間設為結算日的前一天(週二)下午三點(15:00)。這樣的設計目的,是為了讓用戶在圖表上能預先察覺轉倉節點,提早因應。

    總結來說,TradingView 台指期的轉倉時間,是在第三個星期三的「前一日」的夜盤 15:00。

    如果沒有設定轉倉標記,可以透過以下方式設定:

    1. 開啟台指期的合約圖表
    2. 右鍵點選圖表區域 → 選擇【設定】
    3. 在「連續合約」欄位中勾選【連續契約轉換】與【契約轉換中斷】
    Tradingview 回測 4
    Tradingview 回測 5

    啟用後,系統將在每月固定時間點,以紫色虛線標示出轉倉位置,讓策略回測與實盤操作更加一致。

    請注意,「第三個星期三的前一天」≠「第三個星期二」。

    以 2025 年 1 月為例:
    第三個星期三為 1/15,它的前一天是 1/14(二),但是當月的「第三個星期二」其實是 1/21!因此切記,「前一天」是指字面上的日曆順序,不是「同一週的星期二」。

    訂閱電子報,即時獲取TradingView快閃優惠

    台指期轉倉程式碼實際講解

    如下圖所示,由於每個月的第一天,會隨機分佈在週一到週日之間,因此在往後推算結算日時,也有可能會出現在不同的日期上。

    台指期結算 1

    但是根據我們所總結的經驗,可以得出轉倉日的規律如下:

    1. 必須為星期二(dayofweek == dayofweek.tuesday)
    2. 日期介於每月 14~20 日之間(dayofmonth >= 14 and dayofmonth <= 20)

    這兩個條件組合後,即可初步判斷轉倉日是否成立。以下為語法範例:

    or (dayofweek == dayofweek.tuesday and dayofmonth >= 14 and dayofmonth <= 20)

    碰到節假日怎麼辦?

    透過逐年資料對照,我們發現在遇到國定假日時,有可能會導致轉倉日異常提前,以下為具體案例:

    年份節日結算日實際轉倉日
    2024中秋節9/18(三)9/16(一)
    2023農曆新年1/30(一)1/17(二)
    2021農曆新年2/17(三)2/5(五)
    2018農曆新年2/21(三)2/12(一)

    因此在遇到特殊節假日的情況,我們會針對特定結算日撰寫程式碼,實際將會在下一章節說明。

    TradingView 程式碼邏輯解析:台指期轉倉換月

    台指期結算 3

    第一段:指定特定的結算日(農曆年假補班日等)

    Pine Script:

    OverMonthDate = time_tradingday==timestamp('GMT',2024,9,16) //2024中秋
                  or time_tradingday==timestamp('GMT',2023,1,17) //2023農曆年
                  or time_tradingday==timestamp('GMT',2021,2,5)  //2021農曆年
                  or time_tradingday==timestamp('GMT',2018,2,12) //2018農曆年
    

    講解說明:這段程式碼列出「歷年來特別的轉倉日(非固定日期,如農曆年或中秋)」並以 timestamp() 指定精確的日期時間點。time_tradingday 是 TradingView 的內建變數,代表目前 K 棒的時間。

    第二段:判斷正常換倉週期(每月第三個星期三前一日)

    Pine Script:

    or (dayofweek==dayofweek.tuesday and dayofmonth>=14 and dayofmonth<=20)

    這段是在捕捉「例行性轉倉日」:每月第三個星期三前一天的「星期二」,日期落在 14~20 日之間就符合條件。

    第三段:定義結算時間範圍

    Pine Script:

    OverMonthTime = time(timeframe.period, "1200-1345")

    講解說明: 定義當日中午 12:00 到 13:45 為「程式要監測是否結算出場」的時間範圍,避免提前或延遲出場。

    同時,因為出場時間並非單一固定值,以下的根據 K 棒週期不同所提供的建議出場時間,你可以根據交易週期自行調整:

    K 棒週期建議出場時間
    5分鐘K12:00-13:45 ~ 13:20-13:45
    15分鐘K12:00-13:45 ~ 13:00-13:45
    30分鐘K12:00-13:45 ~ 12:30-13:45
    60分鐘K12:00~13:45

    第四段:結算出場判斷條件

    Pine Script:

    OverMonthExit = OverMonthDate and OverMonthTime>1

    講解說明: 當「日期」與「時間」條件都成立時(也就是符合轉倉日並落在該時段內),才會觸發結算出場。至於程式碼的結尾「>1」,是為了確保只要有任何值出現,就符合我們所設定的條件。

    第五段:畫圖提示轉倉日出場時間

    Pine Script:

    bgcolor(OverMonthExit ? color.new(color.purple, 90) : na)

    講解說明: 如下圖所示,若當下符合出場條件,則在 TradingView 圖表上標記紫色背景,作為視覺提醒。

    台指期結算 4

    第六段:策略動作(清倉

    Pine Script:

    if OverMonthExit
        strategy.close_all("結算日出場")

    講解說明: 當 OverMonthExit 為 true 時,執行 strategy.close_all() 指令清倉所有持倉部位,並加上註解「結算日出場」。

    隨時更新!TradingView第一手折扣情報

    結語

    透過本篇教學,我們從台指期結算日的基本規則、轉倉時間判斷,到 Pine Script 的出場語法與視覺提示,都逐一拆解並示範具體實作方式。

    如果想要進一步瞭解如何打造屬於自己的量化交易系統,歡迎參考【TradingView x 台指期 x 加密貨幣|量化交易全方位實戰】線上課程。


    加入LINE社群量化交易討論群」無壓力討論與分享!

    加入Discord 「量化交易討論群」即時獲取實用的資源!

    Anti Fraud 10140382164
    Anti Fraud 10140382163
    Anti Fraud 10140382165

    🎬播放清單 -【從零開始自動交易!TradingView台指期實戰,保母級手把手教學】

    讀文章太慢?透過線上課程策略電子書加速學習吧!

    量化通
    量化通

    量化通是個致力於全民量化金融教育的社群,我們希望透過由淺入深的內容,帶領大家以正確觀念來實踐自動化的金融投資研究分析。

    文章: 223

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *