返回目錄
A
量化投資策略:理論到實踐的全景指南 - 第 2 章
第2章 市場微觀結構與數據科學基礎
發布於 2026-03-03 05:02
# 第2章 市場微觀結構與數據科學基礎
> **本章要點**
> - 了解交易所結構與資訊流動
> - 掌握數據獲取、清理與存儲
> - 建立時間序列基礎模型
> - 為策略構建奠定技術與理論基礎
## 1. 市場微觀結構:交易者的舞台
### 1.1 交易所的「零售」與「批發」兩面
- **零售面**:個人投資者透過經紀商下單,交易執行速度與成本受限於平台的撮合效率。
- **批發面**:機構投資者透過大型交易系統(如FIX)直接進入市場,享有較低的撮合延遲與手續費。
> **實務提醒**:量化策略的執行延遲往往是「滑點」與「交易成本」的主要來源,對於高頻策略尤為重要。
### 1.2 資訊流動與價格形成
1. **公開資訊**:公告、財報、經濟數據等,經由新聞、研報即時傳播。
2. **非公開資訊**:機構內部交易決策、套利訊號,往往以訂單流形式表現。
> **案例**:當多頭訂單壓力增大,賣盤薄弱時,價格往往快速上行;反之亦然。
### 1.3 訂單簿與深度數據
- **訂單簿(Order Book)**:顯示所有掛單的價格、數量。用於分析市場深度與流動性。
- **深度數據**:透過「Level 2」或「Level 3」訂單簿,量化「買賣兩面深度」與「買賣差價」等指標。
> **程式碼片段**(Python + Alpaca API)
> ```python
> import alpaca_trade_api as tradeapi
> api = tradeapi.REST(API_KEY, SECRET_KEY, BASE_URL, api_version='v2')
> order_book = api.get_order_book('AAPL')
> bids = order_book.bids # 購入掛單
> asks = order_book.asks # 賣出掛單
> ```
## 2. 數據獲取與預處理
### 2.1 數據來源
| 類型 | 典型來源 | 特色 |
|------|----------|------|
| **行情** | Yahoo Finance, Bloomberg, 交易所API | 具備歷史價格、分筆交易等 |
| **新聞** | Reuters, Bloomberg, Twitter API | 需要自然語言處理 |
| **結構化數據** | 產業報告、經濟指標 | 需定期更新 |
| **高頻** | 交易所原始訂單簿 | 需要高頻數據處理 |
### 2.2 數據清洗
1. **缺失值處理**:線性插值、前向/後向填充。
2. **異常值偵測**:基於Z-score、IQR等統計量。
3. **時間對齊**:將多源時間序列以相同頻率重樣本。
> **程式碼片段**(Pandas)
> ```python
> df = pd.read_csv('price.csv', parse_dates=['timestamp'])
> df.set_index('timestamp', inplace=True)
> df = df.resample('1D').ffill() # 1天頻率,前向填充
> ```
### 2.3 數據存儲
- **時序資料庫**:InfluxDB、TimescaleDB 等,適合高頻數據。
- **資料湖**:S3、Azure Blob Storage,結合Spark、Flink 進行大規模處理。
- **SQL/NoSQL**:根據查詢需求選擇關聯式或文檔型資料庫。
> **實務提醒**:選擇資料庫時,應考慮查詢頻率、寫入吞吐量與成本平衡。
## 3. 時間序列基礎模型
### 3.1 趨勢與季節性
- **滑動平均**(SMA)與**指數加權平均**(EMA):平滑波動,捕捉長期趨勢。
- **季節調整**:使用差分、季節指數或 STL 分解。
### 3.2 自回歸與滑動平均(ARMA/ARIMA)
- **ARMA(p,q)**:結合自回歸(AR)與滑動平均(MA)。
- **ARIMA(p,d,q)**:在 ARMA 基礎上加入差分(I)以達到平穩化。
> **示例**:使用 statsmodels 估計 ARIMA 模型。
> ```python
> import statsmodels.api as sm
> model = sm.tsa.ARIMA(df['close'], order=(1,1,1))
> results = model.fit()
> print(results.summary())
> ```
### 3.3 波動率模型
- **ARCH/GARCH**:捕捉異方差性。
- **EGARCH、GJR-GARCH**:引入非對稱效應。
> **實務提醒**:波動率預測對風險管理至關重要,常用於波動率套利與資產配置。
## 4. 從理論到實踐:策略骨幹
1. **信號生成**:基於技術指標、統計套利、機器學習模型等。
2. **風險控制**:止損、倉位限制、波動率調節。
3. **交易執行**:批量下單、分塊交易、滑點模擬。
4. **績效評估**:夏普比率、最大回撤、Information Ratio 等。
> **程式碼片段**(簡易均值回歸策略)
> ```python
> import numpy as np
> df['spread'] = df['price'] - df['benchmark']
> mu, sigma = df['spread'].mean(), df['spread'].std()
> df['signal'] = np.where(df['spread'] > mu + sigma, -1, np.where(df['spread'] < mu - sigma, 1, 0))
> ```
## 5. 小結
本章闡述了量化投資的基礎構件:市場微觀結構、數據處理流程以及時間序列模型。這些技術與理論不僅為策略設計提供可衡量的指標,也構成了後續章節——機器學習、風險管理與系統部署——的基礎。透過實際案例與程式碼示範,我們將抽象概念轉化為可落地的交易腳本,確保讀者在實務操作中不會因理論與實際脫節而產生困擾。