第三章 研究方法與實驗設計
第三節 演化式智慧型投資代理實作
本節將採用台灣的股市歷史資料與各種操作指標來實作此模型的學習、驗證 與演化等子系統,並對整個演化的機制與相關步驟作深入的探討。在第一小節 中,我們主要探討研究樣本的選取及其處理轉換的過程。第二小節則是說明實作 系統的平台與環境。第三小節說明本研究的研究範圍與限制。最後在第四、五兩 個小節裡詳細說明系統的核心部分-操作策略與演化流程。
一、研究樣本的選取與轉換
本研究主要的實驗設計在於預測股市大盤的指數漲跌,而由於預測標的為大 盤指數,故將以廣泛的蒐集各種常用的技術面指標為主。模型所採用的原始股市 交易資料,主要來源係自台灣經濟新報社(Taiwan Economic Journal,TEJ)等 資料庫。該資料庫包含證交所所公佈之台灣各上市公司以及每日大盤之收盤價、
成交量等交易資料。本研究主要取用其中每個交易日大盤的加權股價指數開盤 價、最高價、最低價、收盤價與成交量等資料,並據以換算出其他指標,以作為 類神經網路系統的輸出入變數。
上述樣本亦可透過網際網路取得即時的資料,在此採用 XML-Base HTML Wrapper 的技術[楊建民,2001],彙整各異質性資訊來源,可立即轉換最新的資 料做為本研究模型中智慧型投資代理的輸入資料,其架構圖如圖 3-2 所示[張子 文,2001]。
圖 3-2 XML-Based HTML Wrapper 架構圖[張子文,2001]
至於資料選取的期間,則取民國 80 年 1 月起至民國 88 年 12 月止的 9 年歷 史資料。因為本研究的實驗設計乃採用遺傳演化方式,依時間序列做反覆的移動 學習與模擬操作,以期達到動態預測的目的,因此需要使用長期的連續資料。而 在分析台灣股市的歷史趨勢時,我們發現從民國 78 年末起一直到 79 年末,股市 的大盤指數呈現出非常不穩定的情形。四個月內狂飆四千多點,然後崩盤,在八 個月內慘跌一萬點。這段期間內股票市場內的投機氣氛太過濃厚,加上政經情勢 也極不安定。而民國 89 年中之後因為台灣政治生態發生劇烈變動,加上世界性 的景氣暴跌,所以股價亦呈現極不穩定的走勢。這兩段時間的股市已經表現出明 顯的結構性改變,因此本研究決定將民國 80 年之前和民國 89 年之後的資料視為 極端資料而排除,只取從 80 年至 88 年的歷史資料,以增加訓練資料的代表性。
本研究所建立的的演化式智慧型投資代理,其基因庫的組成來源是各類常用 的股市指標,每個個體乃是根據不同的股市指標做為輸入變數當作其基因來做學 習和模擬操作。因此,為了避免因類神經網路的「Garbage In,Garbage Out」
特性而推導出不具代表性意義的預測,所以採用的技術指標本身應該要具備能夠 反應某方面股市行情的代表性,故對於本模型所使用的指標我們依照下列的指標 定義原則來選取[金必煌,1995]︰
(1) 指標應具有代表性,亦即每個指標必須要能夠反應某一方面的特徵,並且 要有實用性。
(2) 指標要能符合客觀的標準與可行性,更不能失去評估的意義。
(3) 各指標能各自說明對象的各個層面。
(4) 所選定的指標體系應結合反應研究的特徵。
綜合上述的原則,並根據過去的文獻所常引用的指標,我們將採用下列 48 個不同的技術指標來當作演化系統中的基因,如表 3-1 所示。
另外,在做類神經網路學習時,為了避免資料量度的差異過大而造成訓練的 失真,且考慮到使用 Sigmoid Active Function,因此本研究將對輸入資料做正 規化的動作,將網路輸出入值控制於 0~1 之間。
表 3-1 選取指標列表
指標代碼 指標名稱 指標代碼 指標名稱
1 開盤價 25 ADX10
2 最高價 26 +DI14
3 最低價 27 -DI14
4 收盤價 28 ADX14
5 成交量 29 MTM10
6 成交值 30 MTM-A10
7 MA6 31 OSC10
8 MA12 32 OSC-A10
9 MA24 33 CDP
10 BIAS6 34 AH
11 BIAS12 35 NH
12 BIAS24 36 NL
13 BIAS72 37 AL
14 RSI6 38 AR6
15 RSI12 39 BR6
16 K9 40 AR26
17 D9 41 BR26
18 WMS%R9 42 VR26 19 KINDER%R9 43 TAPI10
20 DIF 44 ADR10
21 MACD9 45 OSBS10 22 MACD12 46 PSY6
23 +DI10 47 PSY13
24 -DI10 48 PSY26
資料來源:本研究整理
二、研究平台
本研究所採用的主要平台為 FreeBSD 4.3-Release 加上 XFree86 4.0。主要 使用的類神經網路軟體為 Don Tveter 使用 C Language 所撰寫的 Backprop Package for Unix[1998],至於研究資料的處理與演化過程的部分,則為自行開發,使用 Shell Script 與 Perl Language 來完成,整個系統的結構主要有下列四個模組:
1) Data Preparing:將正規化的原始資料依照每個世代演化進行的結果,即時 產生下一世代所需要的訓練資料集、測試資料集、以及類神經網路學習指令 檔。
2) Backprop Neural Network:倒傳遞類神經網路的主要執行程式,以及能夠自 動依照學習的 Average MSE 來動態改變相關的參數的副程式。
3) Performance Test and Ranking:依照類神經網路的輸出結果執行模擬操作,
並依照操作績效將所有的 Agent 作排序動作。
4) Evolution:根據這個世代 Agent 的學習排名執行遺傳演化的運算,並產生下 個世代的新 Agent。
三、研究範圍與限制
本研究旨在整合遺傳演算法的演化概念以及類神經網路的學習能力。研究範 圍將只界定於台灣的證券市場。限定於台灣股市的原因,一則為資料的取得較為 容易且詳盡,二則為台灣的法令、規模和市場特性均和國外有所差異 。故為了 研究的實用性與一致性,將只針對台灣股市作探討。
其次,研究的資料來源與時間將採用台灣地區股市的歷史交易資料,從民國 80 年 1 月到民國 88 年 12 月之間九年內的每日交易資料,包括加權指數的開盤、
收盤、最高、最低、以及交易量等。其中將使用移動學習的方式,逐步地引用各 年份的資料為學習與驗證之用。
本研究將基於下列的假設來進行︰在適當的學習之後,Agents 將會進行模擬 操作來驗證學習的效果。但其操作的效果相對於整個股票市場只屬於微不足道的 小量散戶行為。亦即,Agents 的買賣行為並不會影響整個股市的走向。
此外,本研究的限制還有下列幾點︰
(1) Agents 在進行模擬操作時,操作對象並不是個股而是具代表性的大盤 指數。
(2) 模擬交易的過程為一理想化的情況,在實際交易時有可能發生無法以 預定的價格交易股票的情況。
(3) 因為本研究主要目的在於驗證演化式模型是否能夠預測出優於大盤的 績效表現,因此交易的手續費和稅金部分將被省略。
(4) 受限於資料的取得,以及各種基本面與技術面指標的數目繁多,本研 究並無法將全部的指標納入考量,將僅以具代表性的部分指標表現出 演化式預測系統之可行性。
四、智慧型投資代理的操作策略
由以上的指標選取,我們得到基因庫中 48 個可用的技術指標。首先,將其 隨機分成 6 組,每組各擁有不同的 8 個指標。8 個指標就是 8 個不同的基因,6 種不同的基因組合,就分別構成了 6 條不同的染色體與其所代表的類神經網路系 統個體,這也就是演化的初始化動作。
在初始化完成後,即以歷史資料開始作第一階段的學習,學習的架構如前述 採用倒傳遞類神經網路模型來進行。學習時間取半年的歷史資料,在學習階段結 束之後再以次一季的資料作為模擬驗證操作之用。操作的過程乃針對大盤指數以 預設的買賣策略進行,當一季的操作期結束,亦即一個世代的完成後,就可以結 算每個智慧型投資代理的操作績效,並據以當作適合度函數來決定演化機制的動 作。
我們在前面曾經說明過,操作策略主要設定有三種,分別為每日交易策略、
預測漲跌比例策略、和買入持有策略。由於本研究的目的主要在於驗證智慧型投 資代理的預測能力,且根據研究假設智慧型投資代理的操作不能影響大盤,故設
定智慧型投資代理所能夠操作的單位皆為一單位,但可以正反兩面作操作,對象 為大盤指數。亦即當手中已持有一單位時,只能進行賣出或續抱策略,而不能再 繼續無限制的買進;而當手中已放空一單位時,只能進行買回或續抱策略,而不 能繼續無限制的放空。三種策略的詳細操作方法如下所述:
1) 每日交易策略:
假設智慧型投資代理每日盤後能夠立即取得所需的指標資料,並馬上進行預 測的動作。在預測完成之後,判斷明日的指數為上漲或下跌。若預測為上漲,
則進行買入策略;若預測為下跌,則進行放空策略。由於市場對於整體價值 的看法仍未改變,因此假設智慧型投資代理仍以盤後定價交易的方式以收盤 價買進或賣出一單位。到了下個交易日,無論昨天的預測為何,智慧型投資 代理都將在今日將手中持股以收盤價再賣出或買回,並在盤後繼續反覆進行 前述的預測與交易動作。如此即可依每日的交易計算其累積的漲跌績效。這 種策略是最基本的策略,也可以說是單純反映預測能力的基本旗標。
2) 預測漲跌比例策略:
此策略為前一種策略的延伸,但更加充分發揮類神經網路的預測能力。此策 略預測和交易的動作都和每日交易策略相同,差異在於對於買賣的判斷不再 是單純的測漲即買、測跌即賣,而是將預測出來的明日指數與今日收盤指數 作比較,計算其漲跌比率是否超過一定的幅度(在本研究是以 1.5%為判斷的 門檻值),若超過則代表出現交易訊號並進場,詳細操作方法見表 3-2。此策 略的優點在於能夠消除類神經預測時小幅度的上下震盪誤差,因為類神經網 路雖然可以預測到近似的明日收盤指數,但不可避免的仍會出現誤差的情 況,而其中最常發生的誤差情況之一就是方向的錯誤。股市並非每日都在大 漲或大跌,其中最常發生的反而是盤整的局面。在這種上下小幅震盪的情況
此策略為前一種策略的延伸,但更加充分發揮類神經網路的預測能力。此策 略預測和交易的動作都和每日交易策略相同,差異在於對於買賣的判斷不再 是單純的測漲即買、測跌即賣,而是將預測出來的明日指數與今日收盤指數 作比較,計算其漲跌比率是否超過一定的幅度(在本研究是以 1.5%為判斷的 門檻值),若超過則代表出現交易訊號並進場,詳細操作方法見表 3-2。此策 略的優點在於能夠消除類神經預測時小幅度的上下震盪誤差,因為類神經網 路雖然可以預測到近似的明日收盤指數,但不可避免的仍會出現誤差的情 況,而其中最常發生的誤差情況之一就是方向的錯誤。股市並非每日都在大 漲或大跌,其中最常發生的反而是盤整的局面。在這種上下小幅震盪的情況