聊天視窗

量化投資策略:理論到實踐的全景指南 - 第 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. 小結 本章闡述了量化投資的基礎構件:市場微觀結構、數據處理流程以及時間序列模型。這些技術與理論不僅為策略設計提供可衡量的指標,也構成了後續章節——機器學習、風險管理與系統部署——的基礎。透過實際案例與程式碼示範,我們將抽象概念轉化為可落地的交易腳本,確保讀者在實務操作中不會因理論與實際脫節而產生困擾。