量化投資與 FOF 投資:以 MATLAB + Python 為工具
內容描述
本書分為基礎篇和高級篇兩部分。基礎篇通過Q&A的方式介紹MATLAB和Python的主要功能、基本命令、數據處理等內容,使讀者對MATLAB和Python有一個基本的瞭解。高級篇分為24章,介紹MATLAB和Python結合具體量化投資的相關案例,包括MATLAB處理優化問題和數據交互、繪制交易圖形、構建行情軟件和交易模型、基於MATLAB的BP神經網絡和廣義極值分佈、基於MATLAB的正則表達式基礎教程、FQuantToolBox 股票期貨數據獲取&量化回測工具箱的介紹與使用等內容,通過豐富的實例和圖形幫助讀者理解和運用MATLAB和Python作為量化投資的工具。本書的特色在於不僅能滿足理論學習的需要,還可以幫助讀者邊學邊練,做到理論與實踐相結合。 本書適合經濟金融機構的研究人員和從業人員、進行量化投資的交易員、具有統計背景的科研工作者、高等院校相關專業的教師和學生及對量化投資和MATLAB感興趣的人士閱讀。
目錄大綱
基 礎 篇 第0章 N分鐘學會MATLAB(60<N<180) 1 0.1 引言 1 0.2 基礎知識 1 0.3 輸入/輸出 11 0.4 數據處理 13 0.5 數學運算 19 0.6 字符操作 27 0.7 日期時間 29 0.8 繪圖相關 30 0.9 數學、金融、統計相關 36 0.10 其他 50 第1章 Python快速入門與進階提高 53 1.1 快速入門 53 1.1.1 環境準備 53 1.1.2 開發工具 53 1.1.3 一張圖學Python 54 1.1.4 Jupyter Notebook啟動目錄 55 1.1.5 國內鏡像源 56 1.1.6 虛擬環境 56 1.1.7 包的安裝 57 1.1.8 TA-Lib安裝 57 1.1.9 Pandas顯示控制選項 57 1.1.10 Notebook顯示控制 58 1.2 進階提高 58 1.2.1 批處理中切換到虛擬環境 58 1.2.2 GitHub倉庫包的安裝 59 1.2.3 包的引入 59 1.2.4 在線平臺引入自定義包 60 1.2.5 pd.read_csv編碼 61 1.2.6 pd.read_csv中文路徑 61 1.2.7 pd.read_csv示例 62 1.2.8 pd.read_csv高級玩法 62 1.2.9 pickle技巧 63 1.2.10 MultiIndex多重索引的切片 63 1.2.11 星期 65 1.2.12 魔術命令 67 1.2.13 隱藏Notebook代碼區 67 1.2.14 完全屏蔽Jupter Notebook源代碼 67 1.2.15 Python源代碼保護 68 1.2.16 Python加速 69 1.2.17 多進程 69 1.2.18 繪圖內存泄露問題 70 1.2.19 ipynb轉html 70 1.2.20 TA-Lib中的EMA計算 71 1.2.21 績效指標計算 72 1.2.22 動態圖表 75 高 級 篇 第2章 基於Python的優化問題 76 2.1 數值優化 76 2.1.1 線性規劃 76 2.1.2 非線性優化 79 2.2 組合優化 80 2.2.1 風險預算 80 2.2.2 風險平價 84 2.2.3 bt庫風險平價示例 86 第3章 資產配置中如何分配資金 89 3.1 由分配獎金說起 89 3.2 整體框架 89 3.3 組合優化動物園 91 3.3.1 零輸入 91 3.3.2 價格外信息加權 93 3.3.3 方差協方差 94 3.3.4 均值-方差優化 99 3.4 其他 103 3.4.1 權重約束 103 3.4.2 方差協方差估計 103 3.4.3 多優化器 104 3.5 總結 105 第4章 K線圖及常用技術指標的MATLAB實現 106 4.1 K線圖的MATLAB實現 107 4.1.1 MATLAB內置函數candle實現 107 4.1.2 自己編寫函數實現 108 4.2 常用技術指標的MATLAB實現 113 4.2.1 簡單移動平均線(SMA)和指數移動平均線(EMA) 113 4.2.2 自適應移動平均線(AMA) 118 4.2.3 指數平滑異同移動平均線(MACD) 122 4.2.4 平均差(DMA) 125 第5章 基於MATLAB的行情軟件 128 5.1 基於MATLAB的行情軟件使用介紹 130 5.1.1 面板介紹 130 5.1.2 功能介紹 130 5.2 基於MATLAB的行情軟件建立過程 133 5.2.1 GUI版面佈局設計 133 5.2.2 核心函數編寫 135 5.3 擴展閱讀 144 5.3.1 MATLAB通過網頁抓取從雅虎網站獲取股票歷史數據 145 5.3.2 MATLAB通過網頁抓取從新浪網站獲取股票實時數據 148 第6章 含衍生品的投資組合風險度量——基於嵌套隨機模擬方法 153 6.1 金融風險度量 153 6.1.1 常見的幾種金融風險度量 153 6.1.2 衍生品投資組合的損失及風險 155 6.2 嵌套隨機模擬方法 156 6.2.1 嵌套隨機模擬的框架 156 6.2.2 基於自助採樣法的計算量分配方法 159 第7章 基於MATLAB的風險管理 164 7.1 背景介紹 164 7.1.1 VaR模型 164 7.1.2 VaR計算方法 167 7.2 MATLAB實現 167 7.2.1 數據讀取 167 7.2.2 數據處理 177 7.2.3 歷史模擬法程序 179 7.2.4 參數模型法程序 181 7.2.5 蒙特卡羅模擬程序 182 7.2.6 計算結果比較 186 第8章 期權定價模型的MATLAB實現 187 8.1 概述 187 8.1.1 關於布萊克、斯科爾斯和莫頓的故事 187 8.1.2 Black-Scholes定價模型 188 8.2 Black-Scholes定價模型及希臘字母研究 189 8.2.1 Black-Scholes微分方程的推導 189 8.2.2 希臘字母研究及MATLAB模擬測試 195 8.3 二叉樹定價模型研究 214 8.3.1 期權定價的數值方法概述 214 8.3.2 二叉樹定價模型 216 8.3.3 二叉樹模型下的希臘字母計算和測試 221 8.3.4 美式期權與歐式期權的風險指標對比 225 8.4 BAW定價模型研究 229 8.4.1 美式期權定價模型方法概述 229 8.4.2 BAW定價模型 229 8.4.3 BAW定價模型模擬測試 233 第9章 基於MATLAB的支持向量機(SVM)在量化投資中的應用 235 9.1 背景介紹 235 9.1.1 SVM概述 235 9.1.2 LibSVM工具箱 237 9.2 上證指數開盤指數預測 239 9.2.1 模型建立 239 9.2.2 MATLAB實現 240 9.3 上證指數開盤指數變化趨勢和變化空間預測 247 9.3.1 信息粒化簡介 247 9.3.2 模型建立 250 9.3.3 MATLAB實現 251 9.4 基於C-SVM的期貨交易策略 256 9.4.1 引言 256 9.4.2 模型建立 257 9.4.3 MATLAB實現 258 9.5 擴展閱讀 273 9.5.1 MATLAB自帶的SVM實現函數與LibSVM的差別 273 9.5.2 關於SVM的學習資源匯總 273 第10章 MATLAB與其他金融平臺終端的通信 277 10.1 DataHouse平臺MATLAB接口介紹 277 10.1.1 DataHouse平臺簡介 277 10.1.2 MATLAB接口簡介 279 10.2 Wind平臺MATLAB接口介紹 294 10.2.1 Wind平臺簡介 294 10.2.2 MATLAB接口簡介 295 第11章 基於MATLAB的交易品種選擇分析 300 11.1 品種的流動性 300 11.2 品種的波動性 303 11.3 小結 307 第12章 基於MATLAB的交易品種相關性分析 308 12.1 背景介紹 308 12.2 MATLAB實現 311 12.2.1 計算相關性的時間長度和時間周期的選擇 312 12.2.2 不同交易品種(資產)的時間軸校正 314 12.2.3 全市場品種的相關性圖形展示 314 12.3 擴展閱讀 317 第13章 基於MATLAB的國內期貨證券交易解決方案 321 13.1 國內期貨櫃台系統介紹 321 13.2 MATLAB對接CTP的各種方式 323 13.3 開發前準備 324 13.3.1 文檔下載 324 13.3.2 MATLAB安裝 325 13.3.3 監控工具 325 13.3.4 開發工具 326 13.4 C# 版對接原理 326 13.5 XAPI版項目介紹 327 13.6 MATLAB對接期貨接口介紹(XAPI項目.NET版) 329 13.6.1 導入C# 庫 330 13.6.2 啟動行情連接 330 13.6.3 顯示連接狀態 334 13.6.4 訂閱行情 338 13.6.5 行情連接參數 338 13.6.6 啟動交易連接 338 13.6.7 交易的相關事件 339 13.6.8 下單 340 13.6.9 撤單 341 13.6.10 退出 342 13.6.11 改進 342 13.7 MATLAB對接期貨接口介紹(XAPI項目COM版) 343 13.7.1 COM組件註冊 343 13.7.2 COM組件運行 344 13.7.3 COM事件註冊 346 13.7.4 下單 348 13.8 MATLAB對接證券接口 349 13.9 MATLAB對接個股期權接口 350 第14章 構建基於MATLAB的 回測系統 352 14.1 基於MATLAB的量化回測平臺框架介紹 353 14.1.1 回測平臺實現細節思考 353 14.1.2 回測平臺框架 354 14.2 簡單均線系統的MATLAB實現 355 14.3 基於MATLAB的策略回測模板樣例 361 14.3.1 模板結構 361 14.3.2 相關回測變量和指標的定義 361 14.3.3 策略描述 363 14.3.4 數據準備 365 14.3.5 回測計算 366 14.3.6 策略評價 372 14.4 其他基於MATLAB的回測平臺展示 379 14.4.1 HTS1.0——基於MATLAB設計的回測平臺體驗版 379 14.4.2 GreenDragon期貨交易算法研發平臺 381 14.4.3 交易策略回測GUI(Trading Strategy Back Tester) 381 第15章 基於MATLAB的多因子選股模型的實現 383 15.1 多因子模型介紹 383 15.1.1 背景 383 15.1.2 因子種類 383 15.1.3 因子庫 384 15.1.4 全局參數 385 15.1.5 初始股票池 385 15.1.6 股票組合 386 15.1.7 情景分析 387 15.1.8 測試流程 387 15.1.9 評價體系 388 15.2 MATLAB實現 389 15.2.1 主腳本 389 15.2.2 提取數據 391 15.2.3 因子選股 393 15.2.4 回測 394 15.2.5 策略評價 398 15.3 總結 400 第16章 基於MATLAB和Wind的量化交易終端AsTradePlatform 介紹與使用 401 16.1 背景介紹 401 16.2 面板介紹 401 16.3 模塊介紹 403 16.3.1 前期準備 403 16.3.2 初始化 407 16.3.3 登錄/退出模塊 408 16.3.4 策略控制模塊 415 16.3.5 標的池模塊 442 16.3.6 策略監控模塊 452 16.3.7 賬戶信息模塊 462 16.3.8 手動交易 464 16.3.9 選股模型 465 16.4 總結與改進 469 第17章 基於MATLAB的BP神經網絡在量化投資中的應用 470 17.1 基礎簡介 470 17.1.1 BP神經網絡概述 470 17.1.2 基於MATLAB的BP神經網絡的非線性系統建模 477 17.2 基於MATLAB的BP神經網絡對股指連續收盤價進行預測 481 17.2.1 數據與指標選取 481 17.2.2 基於BP神經網絡的股指連續的預測實現 482 第18章 基於MATLAB的廣義極值分佈在量化投資中的策略挖掘與回測 485 18.1 背景介紹 485 18.1.1 廣義極值分佈 485 18.1.2 GEV分佈與目標價格的突破概率 488 18.2 GEV策略與回測的MATLAB實現 494 18.2.1 策略準則 494 18.2.2 GEV策略構建 499 18.2.3 HS300回測 507 18.2.4 股指期貨5分鐘連續主力合約回測 511 第19章 基於MATLAB的正則 表達式基礎教程 516 19.1 引言 516 19.2 單個字符的匹配 517 19.2.1 句點符號 517 19.2.2 方括號符號 518 19.2.3 方括號中的連接符 518 19.2.4 特殊字符 519 19.2.5 類表達式 519 19.3 字符串的匹配 520 19.3.1 多次匹配 520 19.3.2 邏輯運算符 521 19.3.3 左顧右盼——利用上下文匹配 522 19.4 標記(tokens) 523 19.4.1 什麽是標記 523 19.4.2 如何使用標記 524 19.5 多行字符串與多正則表達式 525 19.5.1 多個字符串與單個正則表達式匹配 525 19.5.2 多個字符串與多個正則表達式匹配 526 19.5.3 多字符串的替換 526 19.6 應用實例 526 第20章 FQuantToolBox股票期貨數據獲取&量化回測工具箱的 介紹與使用 528 20.1 FQuantToolBox是做什麽用的 528 20.2 FQuantToolBox工具箱內容簡介 529 20.3 行情數據和基本面數據獲取函數 530 20.4 工具箱各版本更新說明 556 第21章 雙動量模型在資產配置 中的作用 559 21.1 背景 559 21.2 他山之石 560 21.2.1 魯棒資產配置(Robust Asset Allocation) 561 21.2.2 中信大類資產趨勢策略指數(CSI CITIC Multi 562 Asset Trend Index) 562 21.2.3 全球戰術資產配置(Global Tactical Asset Allocation) 563 21.2.4 自適應資產配置策略(Adaptive Asset Allocation) 565 21.2.5 全球權益動量(Global Equities Momentum) 565 21.2.6 綜合雙動量模型(Composite Dual Momentum) 566 21.2.7 分散的雙動量模型(Diversified Dual Momentum) 567 21.2.8 加速雙動量(Accelerating Dual Momentum) 567 21.2.9 保護型資產配置(Protective Asset Allocation) 568 21.2.10 警惕型資產配置(Vigilant Asset Allocation) 569 21.2.11 防禦型資產配置(Defensive Asset Allocation) 570 21.2.12 主動型混合資產配置(Active Combined Asset) 571 21.2.13 Mozaic指數 571 21.3 可以攻玉 572 21.3.1 數據 572 21.3.2 基本統計 573 21.3.3 橫截面動量 575 21.3.4 時間序列動量 576 21.3.5 雙動量 577 21.4 結論 578 第22章 基於低滯後均線在滬深300指數上的量化擇時模型 580 22.1 低滯後均線介紹 580 22.2 低滯後均線策略回測的MATLAB實現 583 第23章 從量化角度詳解美國ETF行業大獎的Buffer ETF創新產品 593 23.1 Buffer ETF基礎知識 593 23.2 Buffer ETF的投資策略 596 第24章 量化FOF組合構建和分析技術在基金投顧中的應用 600 24.1 基金研究 600 24.1.1 基金評價方法 600 24.1.2 基金經理評價方法 601 24.2 大類資產配置與FOF組合構建 602 24.2.1 大類資產配置方法 602 24.2.2 大類資產配置方法的Python實現 604 24.2.3 FOF組合構建策略 607 24.2.4 FOF組合策略的Python實現 608 24.3 FOF組合分析 609 24.3.1 FOF組合分析概述 609 24.3.2 FOF組合分析舉例 611 24.4 基金投顧與智能FOF 612 24.4.1 智能FOF 612 24.4.2 蘿卜理財 613