Professional Documents
Culture Documents
數,而在第五章中,本書也提及可以針對操作策略測試不同參數組合,由不同參數組合的報酬率(當
然也可綜合多項績效指標成單一指標),推知最佳的參數組合的方法(VBA_V7_1.xls 程式)。
但是,該程式用以尋找最佳操作策略參數組合的方法,係最笨也最暴力的「窮舉法」,假若參數
組合多,而每一參數的變化 域大,則會耗費相當的 CPU 時間。雖然,就離線分析而言,有比線上
交易更充裕的時間,電腦的速度也日益成長,但每增添一個測試參數,就會讓計算時間指數成長,
更何況,分析期間與分析標的也會成長;該如何突破此困境呢?大致可分為以下兩個方向:
1. 加快執行速度。做法除了購買更高等級的電腦、加大記憶體外,可以運用分散平行計算的做法,例
如以同樣的程式在 3 台不同的電腦執行,每一台電腦測試不同的參數組合範圍。假若,讀者在學
術機構服務,甚至可以將參數最佳化程式讓一整間的電腦執行,隔日再整合戰果(早期電腦資源
稀少的時候,就是透過網路遠端登入充分利用全球計算資源)。
2. 精簡演算程序。 「操作策略參數最佳化」問題在學術上就是所謂組合最佳化的問題,此問題最擔 心
組合爆炸,假若決策參數是離散變數(例如長短均線的計算日數)則還好,若為連續變數(例如心理
線、RSI 進出判斷上下限值),除非遇到特殊問題型態,甚至不可能找到保證為全域最佳解的解。更
何況,即使時間不緊迫,仍然會受到時間上的限制(至少要在下一個交易日資料產生前算完)。
所幸,經過學術界的努力,針對組合最佳化問題,找到一些至少可以找到高品質解 (也許非最佳
解,但雖不近亦不遠的解)的做法(啟發式演算法),列示如下(由於這些方法頗為複雜—有點學術,因
此以下僅探討其概念):
以上方法又被稱為 Meta-heuristics,可以之架構在原問題之上,與問題互動;演算法丟出一組參
數組合,由欲解決的問題模型回報該組參數的績效,演算法再依據其內部邏輯產生下一組參數組合,
直到無法改善或終止條件滿足為止。其架構如圖 8.2.1 所示。
不同 Meta-heuristics
多層次精進法 提供起始解
分支界線法
禁忌搜尋法
模擬退火法 回傳求解績效
變數鄰近搜尋法 欲求解之
引導式區域搜尋法 「組合最佳化」
多起始點建構法 提供下一組解 問題
蟻群演算法
遺傳演算法
週而復始
圖 8.2.1
在作者主持的高應大「計算智慧研發團隊」中,即針對以上人工智慧方法與演算法做深入研究,待研
究成果累積到一定程度,再以著作分享讀者,不再深述。