五分鐘線上開戶
快速又輕鬆~讓投資變簡單!

0906-079-031

歡迎來電詢問

點選右邊主選單查看更多資訊

用 Excel 接即時報價:DDE 公式怎麼寫、VBA 怎麼自動記錄,選擇權理論價也能自己算

分享至社群平台

一分鐘精華摘要:

用 Excel 接即時報價,最常見的做法是 DDE。DDE 公式像一個地址:「應用程式|主題!項目」三段,依序是哪個程式、哪一類資料、哪個欄位,Excel 照這個地址去看盤軟體拿報價,價格一跳,儲存格就跟著跳。三段的名稱每套軟體不同,以軟體自己的說明為準。報價進到 Excel 後,可以用 VBA 每隔幾秒記一筆,也能在旁邊直接算選擇權理論價和帳戶的整體槓桿。Excel 的信任中心裡有兩個 DDE 開關,接報價只需要第一個。要看盤後的歷史資料,期交所開放資料可以直接匯進 Excel。

「選擇權報價可以直接拉進 Excel 嗎?」「DDE 公式到底要怎麼寫?」「能不能讓 Excel 每五秒幫我記一次價格?」

這篇講 DDE 怎麼運作、公式怎麼寫、Excel 要先看懂哪兩個設定,再給一段可以直接貼上的 VBA 記錄程式,最後用接進來的報價算一次選擇權理論價和整體槓桿。

一、DDE 是什麼:照地址去拿報價

DDE(動態資料交換)是 Windows 上程式和程式互相傳資料的方式。看盤軟體有提供 DDE 的話,Excel 就能在儲存格寫一條公式,向它要報價。公式的形狀是這樣:

=應用程式|主題!項目
部分像地址的填什麼
應用程式縣市提供報價的那個程式
主題路名哪一類資料,常見是某一檔商品
項目門牌那一檔的哪個欄位,例如成交價、買價、賣價、總量

三段要填的名稱由看盤軟體自己訂,每套都不一樣。先去軟體的說明文件或設定裡找 DDE 的寫法;軟體有提供複製公式的功能,直接貼進儲存格最不容易打錯。主題或項目常要填商品代號,台指期的代號是「TXF+月份字母+年份最後一碼」,例如 2026 年 11 月是 TXFK6,換月之後公式也要跟著改。

看盤軟體要先開著,Excel 才拿得到資料。公式寫對之後,報價每跳一次,儲存格就跟著更新,不用按重新整理。

延伸閱讀:

二、Excel 要先看懂的兩個開關

DDE 的設定在 Excel 的「檔案 > 選項 > 信任中心 > 信任中心設定 > 外部內容」,裡面有兩個開關:

設定(英文介面原名)預設作用
DDE 伺服器查閱(Enable Dynamic Data Exchange Server Lookup)開啟讓 Excel 去找已經開著的程式要資料
DDE 伺服器啟動(Enable Dynamic Data Exchange Server Launch)關閉讓 Excel 自己把還沒開的程式叫起來

接報價只用得到第一個:先把看盤軟體開好,Excel 找得到它就行。第二個微軟建議維持關閉,打開之後,試算表裡的 DDE 公式就能自己啟動電腦上的程式,別人寄來的檔案也一樣。微軟的文件把 DDE 稱為比較舊、不安全的技術,所以來路不明的 Excel 檔,跳出要啟動程式或更新連結的提示時,先按否。

三、用 VBA 每隔幾秒記一筆

DDE 只顯示「現在」的價格,不會留下紀錄。想留下價格走過的軌跡,可以用 VBA 定時把儲存格的數字抄到另一張表。

準備兩張工作表,一張叫「報價」、一張叫「紀錄」,在「報價」的 B2 放 DDE 公式。按 Alt+F11 打開 VBA 編輯器,插入一個模組,貼上這段:

Public nextRun As Date

Sub StartLog()
    nextRun = Now + TimeValue("00:00:05")
    Application.OnTime nextRun, "LogQuote"
End Sub

Sub LogQuote()
    Dim ws As Worksheet, r As Long
    Set ws = Worksheets("紀錄")
    r = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
    ws.Cells(r, 1).Value = Now
    ws.Cells(r, 2).Value = Worksheets("報價").Range("B2").Value
    StartLog
End Sub

Sub StopLog()
    On Error Resume Next
    Application.OnTime nextRun, "LogQuote", , False
End Sub
程式做什麼
StartLog排定 5 秒後執行一次 LogQuote
LogQuote把現在時間和 B2 的價格寫到「紀錄」最後一列,再排下一次
StopLog取消排好的下一次,停止記錄

執行 StartLog 開始記,執行 StopLog 停下來;檔案要存成「啟用巨集的活頁簿」(.xlsm)。每 5 秒一筆,日盤 8:45 到 13:45 一天大約 3,600 筆,想記得疏一點,把 00:00:05 改大就好。不想在儲存格放公式,也可以在 VBA 裡用 DDEInitiate、DDERequest 直接向軟體要資料,名稱一樣照軟體的說明填。

這段程式只抄數字,不會下單。

延伸閱讀:

四、報價接進來之後:在旁邊算理論價和槓桿

報價會自己跳,旁邊的公式也會跟著重算。拿 2026 年 11 月 11 日的報價當例子:12 月臺股期貨 44,150 點,履約價 44,000 的 12 月買權,剩 35 天,波動率填 32.4%,用 Black 模型、利率當 0:

儲存格放什麼例子
B2期貨價格(DDE 公式)44,150
B3履約價44,000
B4剩幾天35
B5波動率32.4%
B6d1公式見下面
B7買權理論價公式見下面
B6:=(LN(B2/B3)+B5^2/2*B4/365)/(B5*SQRT(B4/365))
B7:=B2*NORM.S.DIST(B6,TRUE)-B3*NORM.S.DIST(B6-B5*SQRT(B4/365),TRUE)

算出來約 1,839 點,跟當天這個買權的結算價 1,840 點差不多。期貨價格一跳,B7 就跟著變,可以看到理論價怎麼隨行情走。

帳戶的整體槓桿也能這樣即時算:

整體槓桿 = 期貨價格 × 每點金額 × 口數 ÷ 權益數

假設做多 3 口微台,每點 10 元,權益數 500,000 元:44,150 × 10 × 3=1,324,500 元,槓桿約 2.6 倍。要維持三倍以下,權益數至少要 441,500 元。行情往不利的方向走、權益數變少時,這格會自己往上跳,比收盤後才算早看到。

延伸閱讀:

五、盤後資料:期交所開放資料直接匯進 Excel

DDE 拿的是盤中的即時報價。要看每天收盤後的整理資料,可以用期交所的開放資料:在政府開放資料或期交所網站搜尋「選擇權每日交易行情」,複製 CSV 的下載連結,在 Excel 的「資料 > 從 Web」貼上,就能把整張表匯進來。

欄位用途
契約、到期月份、履約價、買賣權篩出想看的那一檔,例如臺指選擇權 TXO
成交量、未沖銷契約量看哪些履約價最多人交易、留倉
結算價當天的結算價,可以拿來對照理論價
交易時段分「一般」和「盤後」,盤後時段沒有結算價和未沖銷量,篩「一般」

之後每次按重新整理,就會抓到最新一個交易日的資料。要做好幾年的回測,期交所網站另外有每年的選擇權行情檔可以下載。

延伸閱讀:

常見問題

Q1:選擇權的 DDE 公式怎麼寫?

形狀是「=應用程式|主題!項目」:哪個程式、哪一檔商品、哪個欄位。三段的名稱每套看盤軟體不同,照軟體的說明文件填;有提供複製公式的功能,直接複製貼上最不容易錯。

Q2:DDE 抓不到報價怎麼辦?

依序檢查四件事:看盤軟體有沒有開著、公式三段的名稱有沒有打錯、信任中心的「DDE 伺服器查閱」有沒有開、商品代號是不是還停在上個月的合約。

Q3:VBA 可以幫我自動下單嗎?

這篇的程式只記錄價格和計算,不會下單。要讓程式送出委託,要走期貨商提供的下單 API,而且上線前要先回測、算進滑價和稅,再用小部位試。

延伸閱讀:

總結:先讓報價進來,再讓 Excel 幫你算

DDE 公式像一個地址,照「應用程式|主題!項目」寫,名稱以看盤軟體的說明為準,信任中心只要開伺服器查閱就夠。報價進到 Excel 之後,VBA 可以每隔幾秒記一筆,旁邊的儲存格可以即時算選擇權理論價和整體槓桿,讓帳戶維持在三倍以下時一眼就看得到。盤後的整理資料,就交給期交所的開放資料。

程式交易系列:

分享至社群平台
台新期貨羅貞
台新期貨羅貞
文章: 218