期中試解答 Midterm 溫習:訂單簿、組合風險與移動平均計算全拆解|Quant Theory 第 34 講筆記
第 34 課・共 34 課
目錄
這一講是 Quant Theory 課程的期中試解答(Midterm Solutions),講者 Liu Peng 逐題講解期中試卷,內容覆蓋前半個課程的核心概念:限價訂單簿(LOB)結構、各類訂單的執行特性、EMA 與 SMA 計算、投資組合回報與方差、最大回撤。這篇溫習筆記按題目重構講者的解答思路,並完整保留關鍵公式推導,適合考前重温或自測概念掌握程度。
學習重點
- 買賣差價的本質:最佳買價與最佳賣價之間的價格差距,是市場流動性的指標,而非券商利潤
- 訂單類型二分法:市價單保證執行但不保證價格(承受滑點),限價單保證價格但不保證執行;止蝕單與 MIT 單觸發後都會變成市價單
- EMA 遞推公式:$\text{EMA}_t = \alpha S_t + (1-\alpha)\text{EMA}_{t-1}$,加權平均當期價格與上期均線
- 組合風險公式:$\text{Var}(R_p) = \mathbf{w}^\top \Sigma \mathbf{w}$,必須同時考慮個別方差與協方差
- SMA 滾動更新:新均線 = 舊均線 +(新價格 − 移出價格)/ 窗口大小,無需保存完整歷史
詳細筆記
這份期中試卷前半部分是概念選擇題,考訂單簿結構與訂單類型的定義;後半部分是計算題,要求寫出簡短計算過程。講者的講解方式值得留意:選擇題逐個選項分析對錯原因,計算題則先建立符號系統再套公式。以下按題號重構各題的考點與解答思路。
概念選擇題:訂單簿與訂單類型
第 1 題:買賣差價代表甚麼?
考點是限價訂單簿 Limit Order Book 的基本結構(詳見限價訂單簿 LOB 全解構|第 5 講)。訂單簿記錄所有尚未成交的掛單,買賣雙方各自按價格分層排列:買方由最佳買價(best bid)向下遞減,賣方由最佳賣價(best ask)向上遞增,兩者之間的空隙就是買賣差價 Bid-Ask Spread。
講者逐一分析選項:「代表可買賣的總股數」只屬部分正確——訂單簿按不同價格層級記錄股數,並非單一總數;「反映買方最高出價與賣方最低要價」同樣只說了兩端,沒有點出「差距」本身;「代表券商利潤」是常見誤解——差價本質上是市場流動性的指標,流動性差的資產差價闊,但不等於券商必賺這段差價。正確答案是:給定金融工具在訂單簿中最佳買價與最佳賣價之間的價格差。
第 2 題:止蝕單會否承受滑點?
考點是把關鍵字映射到概念(詳見觸發訂單完全拆解|第 6 講)。止蝕單 Stop Order 是一種附帶觸發價的市價單:當市價跌穿觸發點,訂單立即激活,自動賣出以防止進一步虧損,屬於安全機制。關鍵在於激活之後——它變成一張市價單,保證執行但不保證價格。實際成交價與觸發價通常並不相同,這個差距就是滑點 Slippage。對流動性低或波動高的資產,滑點尤其明顯。答案是:會。
第 3 題:MIT 單與限價單的主要分別
觸及市價單 Market-if-Touched(MIT)同樣屬於市價單家族:當市價觸及指定水平,訂單變成市價單並保證執行,但不保證成交價。用途與止蝕單相反——止蝕單用來防守止損,MIT 單用來在理想價位進場(買低賣高)。限價單 Limit Order 則以指定價格或更優價格成交,保證價格但不保證執行,可能要等很久才成交。正確選項是:「限價單以指定價格或更優價格買賣;MIT 單在市價觸及觸發價時變成市價單」。
第 6 題:限價買單的執行條件
題目情境:高波動股票現價 $150,投資者想以不高於指定上限的價格買入、避開短暫價格尖峰。講者提醒,見到「立即執行」這類字眼要警惕——立即成交是市價單的特徵,不是限價單。限價買單只在價格跌至限價或以下時成交,不保證執行;反過來,限價賣單的條件是價格升至限價或以上。
計算題:公式與推導
第 4 題:EMA 計算
指數移動平均 Exponential Moving Average 是當期價格與上期 EMA 的加權平均:
$$\text{EMA}_t = \alpha \, S_t + (1-\alpha)\,\text{EMA}_{t-1}, \quad \alpha \in [0,1]$$代入題目數字:$S_t = 50$,$\text{EMA}_{t-1} = 48$,$\alpha = 0.1$:
$$\text{EMA}_t = 0.1 \times 50 + 0.9 \times 48 = 5 + 43.2 = 48.20$$講者強調毋須死背公式(期末試可用自設的 cheat sheet),重點是懂得運用;SMA 亦同理(實作見SMA 與 EMA 平滑均線的 Python 實戰|第 19 講)。
第 5 題:限價單在訂單簿中的成交
截圖出自原片(Liu Peng)
訂單簿快照:買方 50 股 @ $100、100 股 @ $98、150 股 @ $95;賣方 50 股 @ $105、100 股 @ $107、150 股 @ $110。投資者放限價買單 200 股,上限 $106。
解題思路:買入要看賣方(ask side),限價條件是成交價 $\leq 106$。賣方只有 $105$ 一層符合條件(\$107$、\$110$ 超出限價),故只成交 50 股:
- 買入股數:$50$
- 平均成交價:$105
- 剩餘未成交:$200 - 50 = 150$ 股,留在訂單簿等待
題目假設無市場衝擊(price impact),純考訂單簿結構理解。
第 7 題:兩資產組合的回報與方差
截圖出自原片(Liu Peng)
講者建議:遇到計算題,第一時間寫下符號。已知:
$$\mu_S = 8\%, \quad \sigma_S = 12\%, \quad \mu_T = 14\%, \quad \sigma_T = 18\%, \quad \rho_{ST} = 0.6, \quad w_S = 0.6, \quad w_T = 0.4$$組合期望回報是權重向量與回報向量的點積:
$$\mathbb{E}[R_p] = \mathbf{w}^\top \boldsymbol{\mu} = \begin{bmatrix} w_S & w_T \end{bmatrix} \begin{bmatrix} \mu_S \\ \mu_T \end{bmatrix} = 0.6 \times 8\% + 0.4 \times 14\% = 10.4\%$$組合方差用矩陣形式:
$$\text{Var}(R_p) = \mathbf{w}^\top \Sigma \, \mathbf{w} = \begin{bmatrix} w_S & w_T \end{bmatrix} \begin{bmatrix} \sigma_S^2 & \sigma_{ST} \\ \sigma_{TS} & \sigma_T^2 \end{bmatrix} \begin{bmatrix} w_S \\ w_T \end{bmatrix}$$其中協方差由相關係數定義得出:相關係數是協方差的標準化版本,即 $\rho_{ST} = \dfrac{\sigma_{ST}}{\sigma_S \sigma_T}$,故:
$$\sigma_{ST} = \rho_{ST} \, \sigma_S \sigma_T = 0.6 \times 0.12 \times 0.18 = 0.01296$$展開計算($1\times2$、\$2\times2$、\$2\times1$ 相乘,結果為純量):
$$\text{Var}(R_p) = w_S^2 \sigma_S^2 + w_T^2 \sigma_T^2 + 2 w_S w_T \sigma_{ST} = 0.005184 + 0.005184 + 0.0062208 \approx 0.01659$$講者補充:緊湊形式 $\mathbf{w}^\top \Sigma \mathbf{w}$ 方便日後做數學分析,實際計算時則要寫開矩陣逐項代入。
第 8 題:最大回撤
截圖出自原片(Liu Peng)
考點是最大回撤 Max Drawdown 的計算步驟(詳見最大回撤的定義、計算與局限|第 13 講)。講者先講意義:一個策略回報 200% 聽起來很好,但若最大回撤達 50%,代表途中幾乎爆倉——回撤與回報同等重要。
計算分三步。第一步:歷史峰值(prior peak)——每日與過去最高點比較,構造一條只升不跌的峰值曲線(NumPy 可用 np.maximum.accumulate 類函數)。第二步:每日回撤——計算當日值相對峰值的百分比跌幅:
第三步:取最小值(最深跌幅),報告時寫成正數。以題目數列為例:$110{,}000 \to 105{,}000$ 一段,回撤為 $(105 - 110)/110 \approx -4.55%$,是整段期間最深的一次,故最大回撤約 \$4.55%$。
第 9 題:市價單加限價單的組合執行
截圖出自原片(Liu Peng)
訂單簿:買方 100 @ $50、150 @ $49、200 @ $48;賣方 100 @ $51、150 @ $52、200 @ $53。
第一步:市價買單 250 股,由最佳賣價起逐層成交——100 股 @ $51 加 150 股 @ $52。總成本:
$$\text{Cost} = 100 \times 51 + 150 \times 52 = 5{,}100 + 7{,}800 = 12{,}900$$第二步:成交後這兩層賣盤從訂單簿消失,投資者掛出限價賣單 300 股 @ $52。由於當時最佳賣價已升至 $53,此單報價更優,等於為市場提供流動性。若全部成交,收入為:
$$\text{Revenue} = 300 \times 52 = 15{,}600$$淨現金流(盈虧)為 $15{,}600 - 12{,}900 = +2{,}700$;持股淨倉位則是買入 250、賣出 300,即淨淡倉 50 股。
第 10 題:SMA 滾動更新與交叉訊號
截圖出自原片(Liu Peng)
這題有「機關」:題目只給第 250 日的兩條均線值、第 251 日收市價、以及 200 日前的收市價,沒有完整價格歷史。為何夠用?關鍵在 SMA 的滾動更新公式。
簡單移動平均 Simple Moving Average 定義(窗口 $n$):
$$\text{SMA}_t = \frac{S_t + S_{t-1} + \cdots + S_{t-n+1}}{n}$$新一天的窗口向前移一格:新價格 $S_{t+1}$ 進入窗口,最舊的 $S_{t-n+1}$ 移出。講者用「加一項、減一項」的技巧重組:
$$\text{SMA}_{t+1} = \frac{\overbrace{S_{t-n+1} + \cdots + S_t}^{n\,\text{SMA}_t} - S_{t-n+1} + S_{t+1}}{n} = \text{SMA}_t + \frac{S_{t+1} - S_{t-n+1}}{n}$$好處是不用保存整個窗口的歷史——每日只需記住上一期 SMA、新價格與移出價格。代入數字:200 日長線 $\text{LMA}_{250} = 19.50$,新價 $21$,200 日前價格 \$18$:
$$\text{LMA}_{251} = 19.50 + \frac{21 - 18}{200} = 19.515$$50 日短線方面,題目假設其他價格變動影響不顯著,短線仍處於 $20$ 附近,高於長線。按雙均線交叉策略(詳見移動平均線與雙均線趨勢跟隨策略|第 11 講),短線在長線之上應持好倉;原本已是好倉,故訊號不變、維持倉位,無需轉倉。
🙏 覺得內容有用?本站所有內容免費提供,使用推薦碼開戶就是支持我們繼續營運的最大鼓勵:
ZA Bank 邀請碼 P20923
—— 你享 HKD 2,000 迎新獎賞,本站獲得營運支持。
立即開戶 →
(聯盟連結|投資涉及風險,受條款及細則約束,此資料僅可於香港境內分發)
欣利克的看法
- 「保證執行 vs 保證價格」是本卷最常見的陷阱。市價單、止蝕單、MIT 單觸發後都歸入「保證執行」陣營,自然承受滑點;限價單屬「保證價格」陣營,代價是可能永不成交。考試時見到「立即成交」「保證以某價成交」等字眼,先問自己這句話屬於哪個陣營,多半能秒殺錯誤選項。
- 差價不是券商利潤,這個誤區值得記住。買賣差價反映的是掛單簿的供需厚度,即流動性狀況;券商或莊家能否從中獲利,取決於其庫存管理與成交頻率,是另一回事。把「差距」與「利潤」混為一談,是概念題的典型失分位。
- 公式題的得分技巧是「先寫符號」。講者示範的做法——把 $\mu$、$\sigma$、$\rho$、$w$ 逐項列出再套公式——不只防止代錯數,更強迫自己確認每個符號的定義。組合方差漏掉協方差項 $2w_S w_T \sigma_{ST}$,正是沒寫符號、只靠直覺代數的典型錯誤。
- SMA 滾動公式揭示了一個工程觀點:$\text{SMA}_{t+1} = \text{SMA}_t + (S_{t+1} - S_{t-n+1})/n$ 把 $O(n)$ 的重算變成 $O(1)$ 的增量更新。這與 EMA 的遞推結構一脈相承——好的指標設計,本身就考慮了計算成本。溫習時不妨把兩者並排比較。
- 時效提醒:本卷答案基於課堂講義的定義與簡化假設(無市場衝擊、無手續費)。截至 2026 年中的實務環境中,真實訂單簿還涉及隱藏訂單、冰山單與高頻掛撤單,考試答案不能直接套用到實盤執行層面。
名詞解釋
- 限價訂單簿 Limit Order Book:記錄所有未成交掛單的電子簿冊,買賣雙方按價格分層排列,是理解成交機制的基礎
- 買賣差價 Bid-Ask Spread:最佳買價與最佳賣價之間的差距,反映市場流動性
- 滑點 Slippage:預期成交價與實際成交價之間的差異,市價單家族的固有風險
- 止蝕單 Stop Order:附帶觸發價的市價單,觸發後保證執行但不保證價格
- 觸及市價單 Market-if-Touched:市價觸及指定水平時轉為市價單的訂單,用於在理想價位進場
- 指數移動平均 EMA:對近期價格賦予較高權重的遞推式均線
- 相關係數 Correlation Coefficient:協方差的標準化版本,量度兩項資產回報的線性關係強度
- 協方差矩陣 Covariance Matrix:記錄多項資產回報兩兩共同變動程度的方陣,組合風險計算的核心
- 最大回撤 Max Drawdown:資產淨值由歷史峰值回落的最大百分比跌幅
- 雙均線交叉 Crossover:短線均線穿越長線均線時產生買賣訊號的趨勢跟隨方法
常見問題 FAQ
止蝕單觸發後一定以觸發價成交嗎?
不一定。止蝕單觸發後會變成市價單,市價單保證執行但不保證價格,實際成交價與觸發價之間的差距就是滑點。流動性低或波動劇烈的資產,滑點可以相當明顯。
組合方差為何不能只用兩項資產各自的方差加權?
因為資產之間會共同變動。完整公式是 $\mathbf{w}^\top \Sigma \mathbf{w}$,除個別方差項 $w_S^2\sigma_S^2$、$w_T^2\sigma_T^2$ 外,還有協方差項 $2w_S w_T \sigma_{ST}$。漏掉這項等於假設兩項資產完全無關,會嚴重低估或高估組合風險。
計算 SMA 一定要保存整個窗口的歷史價格嗎?
不用。利用滾動更新公式 $\text{SMA}_{t+1} = \text{SMA}_t + (S_{t+1} - S_{t-n+1})/n$,每日只需記住上一期 SMA、新進入窗口的價格與移出窗口的價格,就能以固定成本更新均線。
最大回撤計算出來是負數,為甚麼報告時寫正數?
按定義 $\text{Drawdown}_t = (V_t - \text{Peak}_t)/\text{Peak}_t$,回撤本身是負值,取其最小值(最深跌幅)才是最大回撤。業界慣例報告其絕對值,例如「最大回撤 4.55%」,指的是曾經由峰值回落 4.55%。
原影片
本文整理自以下影片,版權屬原創作者所有,建議配合原片觀看: