3. 研究方法
3.2 建構階段
3.2.1 股票交易策略模型
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
3.2 建構階段
本階段在於界定解決問題的本質,再依問題本質選擇適當的模型予以因 應。本研究欲解決問題有二個層面,一是如何找到相對優質安全低風險股票,
二是找到股票最佳買賣點時機(低買高賣)。由於此兩種問題的本質不同,一 是 What 問題,即是股票選擇的問題;另一是 How Long 問題,即是股票交易時 間點問題,因此,本研究分別設計不同解決方法予以解決。其建模階段可以下 分為 4 個細部步驟,如表 3-1 所示,依序分別就解決股票交易問題(3.2.1)及 股票選擇問題(3.2.2)之建模步驟進行說明。
表 3-1:建構步驟(The Constructing Phase)
Step 1 : 定義應用領域問題流程,找出知識發掘重要議題。
Step 2: 由知識發掘重要議題中產生資料集合(subset data points)
Step 3: 設計資料驅動點
Step 4: 導入適合問題解決的資料分析方法
3.2.1 股票交易策略模型
步驟 1:定義應用領域問題流程,找出知識發掘重要議題。
以股票選擇及交易問題而言,終端使用者為投資人,而從投資人的角度來看,
在股票選擇部份,公司經營獲利能力或未來成長性為多數投資人考量的重點;而 在股票交易部份,所謂一個股票交易流程是由買點、賣點組成。投資人的股票買 賣交易決策決定了買賣點時機與價格,進而影響著股票交易成本及獲利多寡。然
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
投資人的股票交易決策受其本身股票交易決策準則影響,因此,在股票交易策略 的應用領域中,股票交易決策準則、買賣點訊號及態樣將是重要的知識發掘
(knowledge discovery)議題。
步驟 2:由知識發掘重要議題中產生資料集合(subset data point)
不同的投資人有不同的股票交易決策準則分析方式,本研究經文獻探討後 以投資人常用之簡單移動平均線及其黃金死亡交叉決策準則,定義為本研究識 別買賣點訊號的決策準則。黃金死亡交叉決策準則是股市技術分析學派中最常 用簡單之股票交易買賣點判斷決策準則,一般投資人通常以該規則分別以短、
中、長期天數之移動平均線交叉點來偵測買賣訊號,作為股票買賣決策參考。
該準則買賣訊號偵測方式以 60 天短中期(SMA60)及 200 天長期(SMA200) 之移動平均線交叉點為例,當 60 天短中期移動平均線(SMA60)上穿 200 天長 期移動平均線(SMA200)時,稱為黃金交叉(golden-cross),如圖 3-3 之 A 點
(SMA60> SMA200),被視為買入做好的訊號,後市有機會上升,持盤者因而獲 利。當 60 天短中期移動平均線(SMA60)下破 200 天長期移動平均線(SMA200) 時,即代表死亡交叉(death-cross),如圖 3-3 之 B 點(SMA60<SMA200),被 解讀為賣出做淡的訊號,後市有機會下跌,股市持貨者因而蒙受損失,其決策準 則公式如(3-1)所示。因此,黃金死亡交叉決策準則判斷關鍵,在於運用不同天 數移動平均線交叉來做為決策準則的基礎。其立論意涵建立在短、中、長期投資 人根據個人對於市場看法進行股票交易,投資人之投資成本是股票賣出重要指標,
亦是市場支撐或壓力的表現,投資獲利關鍵。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 3-3:SMA 黃金死亡交叉圖
𝑠𝑖𝑔𝑛𝑎𝑙𝑘 = {
𝑏𝑢𝑦, 𝑖𝑓 (𝑆𝑀𝐴𝑘60> 𝑆𝑀𝐴𝑘200) 𝑠𝑒𝑙𝑙, 𝑖𝑓 (𝑆𝑀𝐴𝑘60 < 𝑆𝑀𝐴𝑘200) ℎ𝑜𝑙𝑑, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
(3-1)
步驟 3:設計資料驅動點
在解決最佳化問題上,本研究從資料子集合的資料屬性中,找出影響流 程或目標的可調參數(EMC and VMware, 2014),並作為資料驅動點。亦即 資料子集合為 SMA 決策準則,其資料屬性透過 SMA 公式(3-1)可得每日 收盤價、SMA 天數兩個參數,然其決策準則是由短中期及長期天數 SMA 比 較決定買賣點,因此,SMA 的天數是影響股票交易決策流程達到獲利目標 的重要參數。
本研究對於 SMA 天數資料屬性,引用變動天數移動平均線理論(VLMA, variable length moving averages;Gunasekarage and Power, 2001),將 SMA 天 數變成可調參數,進而 SMA 天數依資料母體驅動經由訓練後來決定。本研
A
B
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
究交易決策準則詳如公式(3-2)所示(Hsu et al., 2011),T1、T2、T3、T4、 T5、T6、T7、T8為本研究之可調參數,代表簡單移動平均線之變動天數參數 並影響股票交易買賣點決策。
𝑠𝑖𝑔𝑛𝑎𝑙𝑘 = {
𝑏𝑢𝑦, 𝑖𝑓 (𝑆𝑀𝐴𝑘𝑇1 > 𝑆𝑀𝐴𝑘𝑇2) 𝑎𝑛𝑑 (𝑆𝑀𝐴𝑘𝑇3 > 𝑆𝑀𝐴𝑘𝑇4) 𝑠𝑒𝑙𝑙, 𝑖𝑓 (𝑆𝑀𝐴𝑘𝑇5 < 𝑆𝑀𝐴𝑇𝑘6) 𝑎𝑛𝑑 (𝑆𝑀𝐴𝑘𝑇7 < 𝑆𝑀𝐴𝑘𝑇8) ℎ𝑜𝑙𝑑, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
(3-2)
步驟 4:導入適合問題解決的資料分析方法
針對可調參數求解特性及問題解決目標,選擇適當的資料分析方法。就本 研究而言,透過步驟(4)得知,T1、T2、T3、T4、T5、T6、T7、T8等可調參 數,影響著股票交易決策及買賣點的識別,因此,如何找出可調參數的最佳天 數解,為本研究知識發掘的重要目標,故本研究可調參數的最佳天數求解過程 為一最佳化問題。
為解決交叉決策準則內之移動平均天數(SMA)參數最佳化問題,本研究 提出 EPSO 演算法結合移動平均線、黃金死亡交叉決策準則,改進 MMPSO
(Hsu et al., 2011)參數落陷於邊界值問題,並提出精英候選粒子(elite canadiate)進行演化,以精進 PSO 最佳化演算法,並且與原 PSO 演算法
(Kenndey PSO)、MMPSO 演算法比較演算法效能。
此外,以公式(3.3)之投資報酬率(return of investment,簡稱 ROI)計算 後作為目標函數(fitness function),來衡量粒子群解之優劣,演化至最後得到
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
一組變動天數移動平均線粒子群最佳解,作為股票交易決策參考。投資報酬率 公式(3.3)如下所示:
𝑅𝑂𝐼 =𝐺𝑎𝑖𝑛𝐹𝑟𝑜𝑚𝐼𝑛𝑣𝑒𝑠𝑡𝑚𝑒𝑛𝑡−𝐶𝑜𝑠𝑡𝑂𝑓𝐼𝑛𝑣𝑒𝑠𝑡𝑚𝑒𝑛𝑡
𝐶𝑜𝑠𝑡𝑂𝑓𝐼𝑛𝑣𝑒𝑠𝑡𝑚𝑒𝑛𝑡 (3.3)
在黃金死亡交叉決策準則公式(3.2)之 T1、T2、T3、T4、T5、T6、T7、T8
表示移動平均線變動天數參數,亦是本研究之股票交易決策策略解。本研究股 票交易決策策略解包含 2 個買點子策略解(T1、T2)、(T3、T4)以及 2 個賣 點子策略解(T5、T6)、(T7、T8)。買點決策準則為(SMAT1> SMAT2)and
(SMAT3> SMAT4),賣點決策準則為(SMAT5< SMAT6)and(SMAT7<
SMAT8),由此兩個決策準則決定買賣點時機。
本研究改良 PSO(Kennedy, 2010)及 MMPSO(Hsu et al., 2011)最佳化演 算法,提出菁英候選解概念之 EPSO(Elite-PSO)方法,其演算法核心精神是 源由買點子策略解(T1、T2)、(T3、T4)及賣點子策略解(T5、T6)、
(T7、T8)。首先每家股票經由γ 次實驗訓練(run)後,將會得到 γ 個最佳解
(global best),而這 γ 個最佳解均含有良好的交易策略特質,我們依子策略為 單位可以將策略拆解為各 2γ 個買賣子策略,以(Ti、Tj)表示。將以上具有良 好交易特質子策略重複排列組合,可得各(2γ)4 個最佳解,稱為菁英候選解
(elite canadiates),將這些菁英解經由目標適應函數運算(fitness function)
後,並選取最好解作為此家股票之最佳交易策略。
另外,PSO(Kennedy, 2010)及 MMPSO(Hsu et al., 2011)之 ViT及 XiT有 落陷於邊界值,使最佳解鈍化問題,本研究提出修正 ViT及 XiT之落陷於邊界值
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
規則。若 ViT >Vmax則 ViT=random[VS,Vmax],並保持原來方向;若 ViT<-Vmax則 ViT=random[VS,-Vmax],並保持原來方向,本研究粒子速度值範圍[Vmax,-Vmax],
VS代表門檻值(threshold);而若 XiT>Xmax或 XiT>Xmin則 XiT=random[Xmin,Xmax],
本研究粒子位置值範圍[Xmin, Xmax]。
本研究 EPSO 演算法詳如公式(3.4)-(3.7),其中公式所引用參數 ViT為 粒子速度(velocity for particle XiT),XiT為粒子位置(the particle position),
PiT為該粒子之區域最佳解(local best solution),GT為全域最佳解(global best solution),ω 為慣性權重值係數(inertia weight)。c1 為粒子自信係數(self-confidence coefficient),代表粒子自我經驗之最佳解的影響係數。c2為粒子社 會信心係數(social confidence coefficient),代表全體粒子最佳解的影響係數。
ri1、ri2為亂數產生器,其亂數範圍為[0,1]。n 為本期,n+1 為下一期。
𝑉𝑖𝑇𝑛+1 = ω ∙ 𝑉𝑖𝑇𝑛 + 𝑐1∙ 𝑟𝑖1𝑛 ∙ (𝑃𝑖𝑇𝑛 − 𝑋𝑖𝑇𝑛) + 𝑐2∙ 𝑟𝑖2𝑛∙ (𝐺𝑖𝑇𝑛 − 𝑋𝑖𝑇𝑛) (3-4)
𝑋𝑖𝑇𝑛+1 = 𝑋𝑖𝑇𝑛 + 𝑉𝑖𝑇𝑛+1 (3-5)
𝑉𝑖𝑇 = {
𝑟𝑎𝑛𝑑[𝑉𝑚𝑎𝑥, −𝑉𝑚𝑎𝑥], 𝑖𝑓 𝑉𝑖𝑇 > 𝑉𝑚𝑎𝑥 𝑟𝑎𝑛𝑑[𝑉𝑚𝑎𝑥, −𝑉𝑚𝑎𝑥], 𝑖𝑓 𝑉𝑖𝑇 < −𝑉𝑚𝑎𝑥
−𝑉𝑚𝑎𝑥+ 2 × 𝑉𝑚𝑎𝑥× 𝑟𝑎𝑛𝑑(), 𝑖𝑓 |𝑉𝑖𝑇| > 𝑉𝑠 𝑉𝑖𝑇, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
(3-6)
𝑋𝑖𝑇 = {
𝑟𝑎𝑛𝑑[𝑋𝑚𝑎𝑥, −𝑋𝑚𝑎𝑥], 𝑖𝑓 𝑋𝑖𝑇 > 𝑋𝑚𝑎𝑥 𝑟𝑎𝑛𝑑[𝑋𝑚𝑎𝑥, −𝑋𝑚𝑎𝑥], 𝑖𝑓 𝑋𝑖𝑇 < −𝑋𝑚𝑎𝑥 𝑋𝑖𝑇, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
(3-7)
‧
0-1 Initial elite candidate queue, the queue can store γ global best solutions.
1 Initial step:
1-1
Give m particles, m is the swarm's size. X
iexpress one of the particles.
Each particle has 8 attributes. Each attributes has two vectors (position, velocity).
XiT
express one of the attributes’ position and the time interval of SMA.
ViT
express one of the attributes’ velocity.
1-2 For each particle X
iT, 1≤i≤m, 1≤T≤8 do. steps is reached.
2-2 For each particle X
iT, 1≤i≤m, 1≤T≤8 do.
2-3 Pick random numbers: r
i1, r
i2~ U (0,1).
‧
3. EPSO 演算法(fitness function algorithm;calculate ROI)