You are on page 1of 2

由第四章對股市操作的技術面與基本面指標分析中可知,許多操作策略都有相對應的可調變參

數,而在第五章中,本書也提及可以針對操作策略測試不同參數組合,由不同參數組合的報酬率(當
然也可綜合多項績效指標成單一指標),推知最佳的參數組合的方法(VBA_V7_1.xls 程式)。
但是,該程式用以尋找最佳操作策略參數組合的方法,係最笨也最暴力的「窮舉法」,假若參數
組合多,而每一參數的變化 域大,則會耗費相當的 CPU 時間。雖然,就離線分析而言,有比線上
交易更充裕的時間,電腦的速度也日益成長,但每增添一個測試參數,就會讓計算時間指數成長,
更何況,分析期間與分析標的也會成長;該如何突破此困境呢?大致可分為以下兩個方向:

1. 加快執行速度。做法除了購買更高等級的電腦、加大記憶體外,可以運用分散平行計算的做法,例
如以同樣的程式在 3 台不同的電腦執行,每一台電腦測試不同的參數組合範圍。假若,讀者在學
術機構服務,甚至可以將參數最佳化程式讓一整間的電腦執行,隔日再整合戰果(早期電腦資源
稀少的時候,就是透過網路遠端登入充分利用全球計算資源)。
2. 精簡演算程序。 「操作策略參數最佳化」問題在學術上就是所謂組合最佳化的問題,此問題最擔 心
組合爆炸,假若決策參數是離散變數(例如長短均線的計算日數)則還好,若為連續變數(例如心理
線、RSI 進出判斷上下限值),除非遇到特殊問題型態,甚至不可能找到保證為全域最佳解的解。更
何況,即使時間不緊迫,仍然會受到時間上的限制(至少要在下一個交易日資料產生前算完)。

所幸,經過學術界的努力,針對組合最佳化問題,找到一些至少可以找到高品質解 (也許非最佳
解,但雖不近亦不遠的解)的做法(啟發式演算法),列示如下(由於這些方法頗為複雜—有點學術,因
此以下僅探討其概念):

1. 多層次精進法(Multiple-level refinement)。先以較粗略的參數變化 測試,例如長期均線日數之參


數 域在 10~50 天之間,可以先測 10、20、30、40、50,電腦行有餘力,再逐步精進,每隔 5 跳動一
次、每隔 2 跳動等等。
2. 分支界線法(Branch and bound)。將問題建立成分支架構,例如心理線計算日期 5~10 共 6 個分支,
對每一分支採先淺後深的搜尋策略,由初步結果判斷每一分支找到更好的解的可能性,若無,則
放棄掉該分支。
3. 禁忌搜尋法(Tab oo search)。先找到一可行解(在參數最佳化問題中,任何一組參數組合均可作為可
行解,不妨以不同參數的均 組合為起始最佳解),作區域搜尋(即以起始解之周圍參數變化範圍,
測試解品質是否更好),若能改善,則移動到新的最佳解作為另一起點,為了避免在特定搜尋區
域繞動,對每一搜尋過的路徑作紀錄(視為禁忌),避免重複測試,重複執行至不能改善或執行次
數 多(終止條件)為止。
4. 模擬退火法(Simulated annealing)。此為模擬加熱物退火(由高 不穩定至低 穩定)物理過程的演算
方法,此法近似禁忌搜尋法,但利用高溫過程產生的隨機性,避免掉到區域最佳解,然隨著溫度
降低(即演算法演算次數增加),逐步降低隨機因子,終至穩定。
5. 變數鄰近搜尋法(Variable neighborhood search)。此法先找到一起始搜尋點(可以指標參數的習用
作為起點),設定一鄰近範圍,於鄰近範圍中隨機找到一組解,以之作區域搜尋,假若找到較佳
解,以之作為新的起始解,以此類推。
6. 引導式區域搜尋法(Guided local search)。先找到區域最佳解,藉由在目標函數中加入懲罰函數,
改變原來區域最佳解的位置,控制懲罰函數,讓搜尋可以跳脫範圍。
7. 多起始點建構法(Multi-start constructive approaches):在可能參數值域範圍內找到多起始點,由這
些起始點作區域搜尋,此法可延伸出適應性推理技術(Adaptive reasoning technique; ART)。
8. 蟻群演算法(Ant colony search)。此法模擬螞蟻尋找食物最短路徑的過程,蟻群一開始漫無目標的
到處搜尋(隨機過程),假若找到食物,藉由來回蟻巢與食物路徑間反覆經過,留下「味道」,強化
最佳路徑,而得解(參數組合)。
9. 遺傳演算法(Evolutionary algorithm):取法於達爾文在生物學上的進化論原理—「物競天擇、適者生
存」,所發展出來的演算法。每一世代在外在環境的篩選中留下適應力最佳的物種繼續交配、繁衍
再篩選,終而演化出一最符合環境定義的物種。此法最基本的精神即在於演化(Evolution)及篩選
(Selection);由程式設計的觀點視之,所謂演化即是經由基因演算法中的三個運算機制:複製
(Reproduction)、交配(Crossover)與突變(Mutation)交互運作,以產生新的個體,而篩選則是以一個
預先定義之評分函數(Fitness function)建構其生存環境,所有的物種皆以符合其要求為終極目標進
行演化,保留較符合評分函數的資料結構而淘汰較差者。

以上方法又被稱為 Meta-heuristics,可以之架構在原問題之上,與問題互動;演算法丟出一組參
數組合,由欲解決的問題模型回報該組參數的績效,演算法再依據其內部邏輯產生下一組參數組合,
直到無法改善或終止條件滿足為止。其架構如圖 8.2.1 所示。

不同 Meta-heuristics
多層次精進法 提供起始解
分支界線法
禁忌搜尋法
模擬退火法 回傳求解績效
變數鄰近搜尋法 欲求解之
引導式區域搜尋法 「組合最佳化」
多起始點建構法 提供下一組解 問題
蟻群演算法
遺傳演算法
週而復始

圖 8.2.1

在作者主持的高應大「計算智慧研發團隊」中,即針對以上人工智慧方法與演算法做深入研究,待研
究成果累積到一定程度,再以著作分享讀者,不再深述。

You might also like