You are on page 1of 45

國立交通大學

用演化演算法搭配技術指標建構台灣指數期貨當
沖交易策略

Day Trading Strategies in Taiwan Stock Index Future


by Using Evolutionary Algorithm and Technical
Indicators

研 究 生: 顧凱云

指導教授: 陳穎平 博士

中 華 民 國 一 百 零 七 年 二 月
用演化演算法搭配技術指標建構台灣指數期貨當沖交易策略
Day Trading Strategies in Taiwan Stock Index Future by Using
Evolutionary Algorithm and Technical Indicators

研 究 生:顧凱云 Student: Kai-Yun Ku


指導教授:陳穎平 Advisor: Ying-Ping Chen

國 立 交 通 大 學
資訊科學與工程研究所
碩 士 論 文

A Thesis
Submitted to Institute of Computer Science and Engineering
College of Computer Science
National Chiao Tung University
in partial fulfilment of the requirements
for the Degree of
Master
in

Computer Science

February 2018

Hsinchu, Taiwan

中 華 民 國 一 百 零 七 年 二 月
用演化演算法搭配技術指標建構台灣指數期貨當沖交易策略
學生:顧凱云 指導教授:陳穎平 博士
國立交通大學 資訊科學與工程研究所

技術分析在證券市場上已行之有年,本研究以台灣加權指數期貨 (大台) 之當沖交易


為研究對象,參考先前之研究 [1],利用短期十五分 K 線計算幾個常使用的技術指標,
包括: 指數移動平均線 (EMA)、隨機指標 (KD)、移動平均成交量 (MV),利用這些技術
指標設計進場策略找出適當的進場訊號,並搭配由演化演算法所選出的停損、停利點
作為平倉出場的時機,模擬進行在所找到的進出場點下一分鐘收盤價進出場之機械化
程式交易操作,在當日沖銷的基準下建構出台指期極短線交易策略。
本研究模擬交易以台灣加權指數期貨 2012 年 11 月至 2016 年 12 月所有交易日為研
究區間,以三個月資料為單位將前兩個月資料用演化演算法訓練找出最合適的參數供
最後一個月用上述方法實際操作 (最後一個月 testing),以此方式 shift 一個月依序下去
操作,統計歸納從 2013 年至 2016 年的交易績效及損益狀況。從研究的結果顯示,在考
慮每筆交易的手續費以及期貨交易稅的情況下,在 2013 至 2016 年期間皆呈現正報酬。

iv
Day Trading Strategies in Taiwan Stock Index Future by
Using Evolutionary Algorithm and Technical Indicators
Student: Kai-Yun Ku Advisor: Dr. Ying-Ping Chen
Institute of Computer Science and Engineering
National Chiao Tung University

Abstract

Technical analysis has been practiced in the stock market for years. In this study, we take
the Taiwan stock index futures as the research object. Refer to previous research[1], we use the
Stochastic Oscillator (KD), exponential moving average (EMA) and the volume (MV) index to
find the suitable time to buy the future and sell it according to the stop-loss point and lock-in-
gain point by using the evolutionary algorithm. We use historical data from November 2012 to
December 2016 to develop day trading strategies.
Our trading strategies use two months historical data to run evolutionary algorithm (training)
and use the next month historical data to simulate trading by using optimized parameters pro-
vided by evolutionary algorithm (testing). This mechanism will shift one month and continue
executing until December 2016. The result of this study show that there are positive profits from
year 2013 to 2016.

v

感謝我的指導教授 陳穎平 教授,於我的碩士研究生涯中提供自由的研究環境,當
我研究上遇到瓶頸時提供適當的指導與幫助,在整個研究過程中,學到如何從定義到
解決問題的方法,這些思考方式是很重要的經驗。
感謝前來參加我口試的口試委員 戴天時 教授與 黃俊龍 教授,百忙之中抽空參加
口試給予專業的見解與指出論文不足之處,使我的論文更加完善。此外也感謝實驗室
的同學,和我討論和分享研究上遇到的問題或想法,以及一同參與的研究所時光。
最後,我要感謝我最重要的家人在我的研究所生涯的支持與幫助,讓我沒有後顧之
憂在交大求學。再次感謝求學這段時間所有幫助我的人,讓我在艱難的時刻有繼續往
前的動力與方向,最終能夠順利完成我的學業,邁向新的人生挑戰。

vi

要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
謝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
圖目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
表目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
一、 緒論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 研究動機與背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 研究目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 論文架構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
二、 相關技術理論與背景知識 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 台指期貨 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 當沖交易 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 技術分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1 KD 隨機指標 (Stochastic Oscillator, KD) . . . . . . . . . . . . . . . . 6
2.3.2 指數移動平均 (Exponential Moving Average, EMA) . . . . . . . . . . 7
2.3.3 成交量 (Trading Volume) . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 演化計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.1 基因演算法 (Genetic Algorithm) . . . . . . . . . . . . . . . . . . . . 9
2.5 相關研究 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
三、 研究方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1 資料格式與研究期間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 研究假設與限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 交易策略設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.1 進場時機探討 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.2 出場時機探討 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

vii
3.3.3 每筆交易的操作說明 . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.4 基因演算法 (GA) 找出交易策略參數 . . . . . . . . . . . . . . . . . 16
3.4 模擬交易實驗設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
四、 實驗結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1 策略一: 使用 EMA 及 KD 搭配找出進場時機操作績效 . . . . . . . . . . . 20
4.2 策略二: 使用 EMA、MV 及 KD 搭配找出進場時機操作績效 . . . . . . . . 24
4.3 策略三: 使用 GA 於 MV 挑選搭配 EMA 及 KD 找出進場時機操作績效 . . 29
五、 結論與未來展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1 結論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 未來展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
參考文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
一 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

viii
圖 目

2.1 KD 指標計算的 pseudo code . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


2.2 4EMA 計算的 pseudo code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 4EMA 計算的 pseudo code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 基因演算法流程圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1 每筆交易進出場示意圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 用 GA 於進場時機判斷的每筆交易進出場示意圖 . . . . . . . . . . . . . . . 15
3.3 研究架構流程圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1 使用 4EMA 及 KD 搭配 - 每口台指期損益點數比較表 . . . . . . . . . . . . 21


4.2 4EMA 及 KD 搭配於 2013 至 2016 年各個月損益總點數 . . . . . . . . . . . 22
4.3 4EMA 及 KD 搭配於 2013 至 2016 年各個月每口損益點數 . . . . . . . . . 23
4.4 4EMA 及 KD 搭配於 2013 至 2016 年各個月真實損益金額 . . . . . . . . . 23
4.5 4EMA 及 KD 搭配於研究期間累積點數情況 . . . . . . . . . . . . . . . . . 24
4.6 使用 4EMA、4MV 及 KD 搭配 - 每口台指期損益點數比較表 . . . . . . . . 26
4.7 4EMA、4MV 及 KD 搭配於 2013 至 2016 年各個月損益總點數 . . . . . . 27
4.8 4EMA、4MV 及 KD 搭配於 2013 至 2016 年各個月每口損益點數 . . . . . 27
4.9 4EMA、4MV 及 KD 搭配於 2013 至 2016 年各個月真實損益金額 . . . . . 28
4.10 4EMA、4MV 及 KD 搭配於研究期間累積點數情況 . . . . . . . . . . . . . 28
4.11 使用 GA 於 MV 挑選與 4EMA 和 KD 搭配於 2013 至 2016 年各個月損益
總點數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.12 使用 GA 於 MV 挑選與 4EMA 和 KD 搭配於 2013 至 2016 年各個月每口
損益點數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.13 使用 GA 於 MV 挑選與 4EMA 和 KD 搭配於 2013 至 2016 年各個月損益
金額 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.14 使用 GA 於 MV 挑選與 4EMA 和 KD 搭配於研究期間累積點數情況 . . . 31

ix
表 目

2.1 台指期貨 (大台指) 介紹表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.1 rbga.bin function 使用說明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.1 台灣期貨交易所手續費 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 使用 4EMA 及 KD 搭配於 2013 年 5-10 月績效分析表 . . . . . . . . . . . . 20
4.3 參考的先前研究 [1] - 其策略一、策略二搭配績效分析表 . . . . . . . . . . 21
4.4 使用 4EMA、KD 搭配於各期間交易績效分析表 . . . . . . . . . . . . . . . 22
4.5 使用 4EMA、4MV 及 KD 搭配於 2013 年 5-10 月績效總表 . . . . . . . . . 25
4.6 參考的先前研究 [1] - 其策略五策略六搭配績效分析表 . . . . . . . . . . . 25
4.7 使用 4EMA、4MV 及 KD 搭配於各期間交易績效分析表 . . . . . . . . . . 26
4.8 4EMA 及 KD 搭配與 4EMA、4MV 及 KD 搭配績效比較表 . . . . . . . . . 29
4.9 使用 GA 於 MV 挑選搭配 EMA 及 KD 於各期間交易績效分析表 . . . . . 30
4.10 使用 4MV 搭配與用 GA 挑選 MV 作搭配 4EMA 和 KD 績效比較表 . . . . 32

x
一、 緒論

1.1 研究動機與背景

投資一直是許多人都會嘗試的項目,在眾多的投資方式中,股票市場投資往往是熱
門的標的,因為股市投資方式簡單且門檻相較其他投資方式也較低,而操作策略有非
常多,不論是長期投資、短線操作、炒作期貨等,要如何選擇操作方式及操作細節是
許多人努力研究的對象。
台灣期貨市場始於民國 87 年 7 月由台灣期貨交易所推出的台灣股價加權指數期貨,
直至今日發展已相當成熟,歷年成交量也大致呈現逐年上漲的趨勢,反映出台灣的期
貨市場顯然成為投資人避險或套利的重要工具。對於股票市場的分析方式可分成多個
派別,而作為其中一派的技術面分析至今仍舊廣受投資者們歡迎,其主要是利用統計
學的概念,利用過去股價及成交量的變化,以圖形或數字的方式,發展出技術指標,
而 John.J Murphy(1986) 在「Technical Analysis of Future Markets」[2] 曾提出歷史會一再
重演,投資人可以利用過去股價的變化資料或趨勢,預期未來的股價變動趨勢,因為
股價反應出所有總體經濟面、基本面、消息面及心理面的一切訊息,這也讓許多投資
者相信技術分析的確某種程度能夠反應股市的運作。在操作台指期貨時,因期貨市場
競爭激烈,有人賺錢就有人賠錢,且具備高風險、高報酬的特性,如果操作不慎很容
易就血本無歸,所以期貨交易的風險控管、停損停利的原則就相當重要。
要如何選擇停損停利也是一個學問,因為不論進場時發現和自己預測方向相同還是
不同,哪時該出場將決定獲利程度,停損停利的標準設太小則小賺小賠,且可能因為
指數波動的關係也許一開始小跌但之後大漲,而因停損關係在小跌得過程中就認賠殺
出造成損失,而標準設太大則大賺大賠,風險很高。
過去有許多透過技術分析方式建構交易策略以及當沖交易相關的研究 [3][4][5][6],
本研究希望透過技術分析方式及風險管理建構出一個可行且呈現正報酬的交易策略操
作方式。

1
1.2 研究目的

本研究利用先前研究 [1] 所提出的技術分析方式,搭配演化演算法 [7][8][9] 來找出


適當的停損停利標準,並採用當沖交易的方式設計出一個完整的交易策略,關於採取
當沖交易的原因,主要是因為淨值波動度小且風險小沒有隔日跳空風險。本研究並不
專注於發現新的技術分析方式,具體有以下幾個目標:
一. 利用演化演算法來找出最佳化的進場出場時機點之參數。
二. 設計一個基於所制定交易策略的機械化操作模型架構,並驗證其績效。
三. 驗證整個交易模型架構長期是否依舊可行。

1.3 論文架構

本論文共分五章,各章節研究架構如下:

• 第一章: 緒論
說明研究動機與背景、研究目的及論文架構。

• 第二章: 相關技術理論與背景知識
介紹本研究所使用到的理論基礎與相關知識,分析當沖交易不同於一般交易的特
性,簡述所使用到的技術分析指標的特性及其優缺點,並且介紹演化計算與所使
用到的演化式演算法。

• 第三章: 研究方法
詳細介紹研究的假設與實驗區間,說明如何由先前研究 [1] 中所提技術指標使用
方式,搭配極短期 K 線找出進場時機,由基因演算法選出的停損停利點當作出場
依據,透過當日沖銷的方式及實際上可以操作的進出場點建構出整個交易策略進
行模擬交易。

• 第四章: 實驗結果
針對所進行的交易策略進行模擬交易,統整分析不同月份及不同年度的交易結果
細節資訊與績效。

2
• 第五章: 結論與未來展望
總結本篇論文的研究以及未來可以改進的方向。

3
二、 相關技術理論與背景知識

2.1 台指期貨

股價指數期貨是以特定股票市場未來某時點的股價指數為交易標的物之期貨合約,
相較於普通商品期貨其標的物是一種無形資產,是一種指數,屬於虛擬的,交易人僅
須支付契約價值一定百分比之保證金就能透過政府核准之期貨交易所進行期貨買賣,
買賣指數的盈虧是由進場到出場兩個時點的指數差來衡量再對應到實際金額。「台指期
貨」是台灣期貨交易所推出的產品,它的交易標的是臺灣證券交易所發行量加權股價指
數,是本研究主要研究的對象,相關介紹見表 2.1[10]。

表 2.1: 台指期貨 (大台指) 介紹表

項目 內容
交易標的 臺灣證券交易所發行量加權股價
指數
中文簡稱 臺股期貨
英文代碼 TX
交易時間 一般交易時段之交易時間為營業
日上午 8:45 下午 1:45
契約價值 臺股期貨指數乘上新臺幣 200 元
交割方式 以現金交割,交易人於最後結算
日依最後結算價之差額,以淨額
進行現金之交付或收受。
保證金 原始保證金: 83000 元
維持保證金: 64000 元
- 交易人必須於交易前繳交原始
保證金至期貨商指定的銀行帳
戶,若交易人虧損使保證金水位
低於維持保證金,則交易人必須
補足保證金至原始保證金水準。

2.2 當沖交易

所謂「當沖」,就是「當日沖銷」﹙Day Trading﹚的簡稱,一筆「當日沖銷」交易,
指的是在同一天之內,針對同一件投資標的,透過一買一賣的方式,達成沖抵、結清、
註銷交易的行為。大部分期貨交易人採取波段的交易策略,優點就是當趨勢出現順勢

4
時交易可獲取大波段行情,但相對於當沖交易風險較高,而風險小也是當沖交易的優
點,因為當日沖銷可避開投資環境、新聞報導、市場消息的影響,免除因留倉受上述
因素造成的淨值的損失。

2.3 技術分析

技術分析的原理來自於對金融市場百年來行為的觀察,已知最古老的例子可追朔到
日本的交易者在 18 世紀時所使用的一種交易方法,這個方法演變成 K 線為今日最主要
的圖表工具之一 [11],其他的技術分析在之後如雨後春筍般出現。技術分析主要是利用
交易市場上的各式資訊,以統計的概念加以整理,最後以圖形或是指標數字來呈現各
種不同的分析方式,其目的為找出未來交易市場的趨勢幫助投資者能在市場中獲利。
談到技術分析首先要提到技術分析的基礎,道氏理論 (Dow theory),是由查理斯.
道 (Charles Henry Dow) 提出,其後由 William Peter Hamilton 與 Robert Rhea 繼續對道氏
所提出的相關見解總結歸納,才使道氏理論有完整的理論結構,此理論提出了所有資
訊都反應在價格上,觀察市場發現可歸類三種趨勢:主要、次要、小型,主要趨勢有
三階段:承接、大眾參與、出貨。此外大盤指數和主要類股指數要有同向訊號,且確
定趨勢時要有成交量的確認,在明確反轉訊號發生前原有趨勢仍有效。之後開始陸續
有許多學者替技術分析建立假設,現今提到技術分析有以下三大假設:

1. 股價會隨趨勢而變動: 研究價格走勢的目的是希望順著趨勢方向進行交易,價格
會朝既有的趨勢方向發展直到趨勢反轉為止。

2. 歷史會一再重演: 投資人相信可利用過去股價變化的趨勢,預測未來股價變動的
方向,進而找到適當的進出場時機藉此獲利。

3. 市場行為預先反應一切: 股價將反映出所有訊息的結果,如政策面、消息面、基
本面、心理面。

簡述完技術分析的假設與理論,我們可以將技術分析方法設計的分析工具分成主要
的三種類型 [6] 如下:
1. 圖形分析:
利用市場價格所描繪的曲線型態,來判斷未來的趨勢。如:K 線理論、艾略特波浪理

5
論等。
2. 價格指標:
利用市場過去價格,經由統計方式處理,其主要有幾個概念:過去一段時間的買進成
本、一段時間內的累積漲跌等。如:移動平均線(MA)、相對強弱指標(RSI)、隨機指
標 (KD)、乖離率 (BIAS)、威廉指標等。
3. 量的指標:
利用市場成交量來判斷推動市場的能量,如:能量潮(OBV)、移動平均成交量等。

由上述可知目前坊間所使用的技術指標種類繁多,接下來的幾個小節將介紹本實驗
所使用到的技術指標。

2.3.1 KD 隨機指標 (Stochastic Oscillator, KD)

KD 隨機指標於 1957 年由 George C.Lane 博士提出,一般 KD 指標常用的參數以 9


日為基準,根據這個參數先計算未成熟隨機值 (RSV),其主要概念為: 當股市處於多頭
市場時,收盤價往往接近當日最高價; 同理當處於熊市時,收盤價會趨於當日最低價,
所以此指標利用計算指數,反映出近期 (9 日內) 收盤價在該區段日子中價格區間的相對
位置。所以如果收盤價越接近近期 9 日內最高價,則 RSV 值越高,代表股價越強勢;
相反的,如果收盤價越接近近期 9 日內最低價,則 RSV 越低,代表股價越弱勢。有了
RSV 值後再以平滑移動平均法依序計算出 K 值及 D 值,利用 K 線與 D 線來判斷進場及
出場時機,整個計算公式如下:
(今日收盤價 − 最近9天的最低價)
RSV = (最近9天最高價 − 最近9天最低價)
× 100
當日K值 = 前日K值 × 32 + 當日RSV × 1
3

當日D值 = 前日D值 × 32 + 當日K值 × 1


3

K 值稱為快速 K 值,為 RSV 之移動平滑均數,D 值稱為慢速 D 值,為 K 值之移動平滑


均數,K 值與 D 值均介於 0 到 100 之間,本研究計算 K 值與 D 值時,第一個 K 值和 D
值均取 50,之後的 K、D 值計算方式如上述公式,計算 KD 指標 pseudo code 如圖 2.1
所示 (in R language)。

6
圖 2.1: KD 指標計算的 pseudo code

2.3.2 指數移動平均 (Exponential Moving Average, EMA)

指數移動平均是以指數式遞減加權的移動平均,移動平均的理論基礎是道•瓊斯的
「平均成平」概念,用統計處理的方式計算出一段時間內買入股票的平均價格,也就是
投資人的平均買進成本,移動平均幫助交易者確認現有的趨勢以及判斷未來將出現趨
勢的開始或是反轉,是當今應用最普遍的技術指標之一。相較於單純的移動平均線給
予每個價格一樣的權重 (算術平均),指數移動平均則是在權重上變化,給時間近者較重
權值,較舊的數據也給予一定的加權值,達到更加掌握短期訊號性質。本研究採取的
計算公式如下:
EM At = EM At−1 × n−1
n
+ Pt × n1 ,其中 EM At 為當下之指數移動平均數,Pt 為當下的
收盤價,n 為所取的時間 (幾根 K 線去取 EMA)
以 4EMA 為例 (4 根 15 分 K 線計算 EMA),計算 4EMA 的 pseudo code 如圖 2.2 所示
(in R language)。

7
圖 2.2: 4EMA 計算 pseudo code

2.3.3 成交量 (Trading Volume)

成交量是指在某一段時間內的具體交易數量,成交量變化反映了資金進出市場的情
況,過去有許多研究顯示成交量隱藏著許多重要的市場資訊,可以簡單地從股市價格
與成交量間的關係判斷市場走勢,當價格上漲時,若成交量擴增表示市場交易熱絡,
股價有望持續上揚,但若成交量萎縮則走勢可能即將翻轉;當價格下跌時,若成交量
萎縮則行情可能反轉,但若成交量擴增則停損賣壓殺出或是股價已經超跌,進而吸引
到低接、抄底的買盤進場。總之成交量在操作股市時也是一個相當重要的參考依據。
本研究使用移動平均成交量 (MV) 作為搭配的技術指標,其計算方式為取一段時內
的成交量平均,計算 MV 的 pseudo code 如圖 2.3 所示 (in R language)。

圖 2.3: MV 計算的 pseudo code

2.4 演化計算

演化計算 (Evolutionary Computation, EC) 主要是基於模仿演化及生物行為而發展之


最佳化演算法,其中較為知名的包括: 基因演算法 (Genetic Algorithm, GA)、基因規劃
(Genetic Programming, GP)、演化策略 (Evolutionary Strategy, ES)、粒子群體最佳化演算
法 (Particle Swarm Optimization, PSO) 等,演化式演算法的隨機特性以及仿效自然的作
法有別於傳統演算法,具備強大的解題能力和許多演算法上設計的可能性,在許多複

8
雜的最佳化問題上有相當好的表現。演化計算的應用範圍非常廣泛,舉凡生物醫學
領域、工程領域、電機相關領域、甚至財務分析 (Financial analysis) 與股市預測 (Stock
price prediction)... 等等,皆已有成功應用的實例。

2.4.1 基因演算法 (Genetic Algorithm)

本研究使用演化演算法中的基因演算法,利用「適者生存,不適者淘汰」之精神,
經由初始母體的演化、迭代的過程,保留較能適應某個特定環境 (較為優秀) 的子代,
最終所選出來的子代即為最能適應這個特定環境 (代表某最佳化問題) 的群體 (最佳解)。
基因演算法大致上有以下幾個重要的部分:

• 編碼 (Encoding):
每一條染色體(chromosome)即為一組解,而每一條染色體是由許多基因所組
成。在編碼的過程(為基因命名),有許多種方式,可以以二元(0,1)方式進行
編碼,或是以實數的方式進行。

• 產生初始母體 (Initial population):


產生初始母體是以隨機的方式,可以依問題來決定要產出多少條初始母體。

• 計算合適度函數 (Fitness function):


針對每一條染色體,由 fitness function 計算 fitness value。目的為評估每一條染色
體對於待解決問題的合適度 (好壞程度),作為是否要保留到下一代的依據。

• 選擇與複製:
針對 fitness function 的值,把每一條染色體由優至劣進行排列,選擇最優秀的一
定百分比的染色體進行複製 (根據 fitness function 計算的 fitness value)。

• 交配 (Crossover):
由選擇與複製所留下的染色體,選出兩條染色體,進行交叉互換相對位置,產生
下一代個體。

• 突變 (Mutation):
設定一突變機率,使染色體可能發生突變,其目的為避免掉入「區域最佳解」
(local optimum)。

9
整個基因演算法流程圖如圖 2.4 所示。

圖 2.4: 基因演算法流程圖

10
2.5 相關研究

本研究並不專注於發現新的技術分析方式,因此要使用那些技術指標以及如何做搭
配找出適當的進場時機參考了先前之研究 [1],此研究中有提出一些技術指標搭配的操
作策略,本研究基於那些所提出的搭配方式也變化出更多種的搭配方式,這些操作策
略由基因演算法去挑選適合的操作方式作為進場時機之判斷。最終實驗結果部分也會
和所參考之研究 [1] 的結果進行比較。

11
三、 研究方法

3.1 資料格式與研究期間

本研究取得自 2012 年 11 月 1 日起至 2016 年 12 月 31 日止每個交易日台灣指數期貨


(大台) 每分鐘 K 線資訊,經資料前處理刪掉發生於開盤收盤那幾分鐘的缺漏值,取出
從 8:50 分開始至 13:40 分止每分鐘 K 線資訊,包含每分鐘的最高價、最低價、開盤價、
收盤價、以及每一分鐘的成交量,以此每分鐘 K 線資訊為基準計算出十五分 K 線,每
日總共會產生十九根十五分 K 線,因為採取當沖交易,每日最後一根 K 線不拿來操作
(判斷進場時機),因此每日實際使用的十五分 K 線共十八根,將每個交易日所取出的每
分鐘 K 線以及十五分鐘 K 線進行之後的研究。

3.2 研究假設與限制

本研究取得上述台灣指數期貨歷史資料進行模擬交易實驗,不同於真實世界的交易
操作,在進行實驗時有以下的假設與限制:

1. 本研究以大台為研究標的,且交易大台皆以一口為單位。

2. 本研究進行交易模擬時,當進場訊號出現後進場的價格為下一分鐘收盤價,當初
場訊號 (停損、停利點數) 出現後同樣也是以下一分鐘收盤價交易出場。

3. 本研究為當沖交易,每個交易日結束前若還持有當日的買進的台指期貨時,以交
易日最後一分鐘收盤價全部賣出。

4. 本研究不考慮保證金相關問題 (ex: 需要追繳保證金的情況) 所產生的影響。

5. 在評估績效部分,每口交易成本僅考慮買進、賣出的來回手續費及交易稅,不考
慮其他因素影響 (ex: 滑價)。

6. 本研究不考慮當某日市場出現極端情況時 (ex: 金融危機),若當日進場無法於當日


平倉出場實現當沖交易之情況。

12
3.3 交易策略設定

有了上述對於實驗的假設與限制,本小節對當沖交易策略進一步的說明,每個交易
日的每一筆交易可分成兩部分討論,如何進場以及如何出場,最後對於每筆交易的操
作方式詳細說明。

3.3.1 進場時機探討

好的進場時機一直是許多人研究的主題,本研究的進場時機是參考先前研究 [1] 的
技術指標搭配方式所制定,對於每個交易日都會以計算出來的十五分 K 線求出技術指
標,將算出來的技術指標做搭配,當出現符合所設定的條件時 (即滿足進場的交易策
略),就以下一分鐘的收盤價買進一口台指期貨 (由一分 K 線提供),選用的技術指標有:
價格指數移動平均線 (EMA),ex:4EMA 代表 4 根十五分 K 線價格指數移動平均線; 移動
平均成交量 (MV),ex:4MV 代表 4 根十五分 K 線移動平均成交量;KD 隨機指標,採 9
日 KD 值。採取隨機指標 KD 因其適用於短線操作模式,它涵蓋了一定時間內最高價與
最低價的概念,因此可以很靈敏地反映出價格的變化,若僅以隨機指標 KD 作為進場時
機判斷可能因此指標短線上可能有雜訊產生失去準確性,因此也用價格指數移動平均
線 (EMA) 幫助確認現有的趨勢以及判斷未來將出現趨勢的開始或是反轉,最後除了價
的指標外也加入量的指標-移動平均成交量 (MV),因為成交量是價的先行指標,當量增
時,價遲早會跟上來;當價升而量不增時,價遲早會跌下來。這些技術指標搭配的方
式有下面兩種:
策略一: 當 4EMA 初次呈現上揚趨勢且 KD 指標呈現 K 值 >D 值同時成立時進場做
多;當 4EMA 初次呈現向下趨勢且 KD 指標呈現 K 值 <D 值同時成立時進場做空。
策略二: 當 4EMA 初次呈現上揚趨勢且 4MV 呈現上揚以及 KD 指標呈現 K 值 >D 值
三者同時成立時進場做多;當 4EMA 初次呈現向下趨勢且 4MV 呈現上揚以及 KD 指標
呈現 K 值 <D 值三者同時成立時進場做空。
除了參考先前研究所制定採用的操作策略外,也使用基因演算法來挑選合適的技術
指標搭配方式,所設計的方法如下:
策 略 三: 對 策 略 二 進 行 改 良, 用 基 因 演 算 法 對 MV 進 行 挑 選, 從 1MV、2MV、
3MV、4MV、5MV、10MV、15MV、20MV 幾種不同的 MV 中選出一種與 4EMA 和

13
KD 指標進行搭配,所選出的 EMA、MV 和 KD 指標的操作方式和策略二的方式相同。

3.3.2 出場時機探討

擁有台指期貨要如何進行出場有很多方式,許多常見的方式是用滿足某些技術指標
組合鎖所定的條件時就進行出場,本研究則是以指數是否達到停損或停利點數來決定
出場,不管是達到停損或是停利點之前都繼續持有所買進的台指期貨,以買進指數為
基準正負多少點數當作停利點以及停損點,而停損及停利點數要設多少則是由基因演
算法來決定。由基因演算法來決定其主要原因為想由基因演算法挑出最佳的停損及停
利點,若以人為角度來挑停損損點、停利點數,要怎麼挑選多少點數當損點、停利點
以及若挑選的損點、停利點不好也會產生問題。以下是幾種可能會遇到的問題:

1. 若設的停損點、停利點太小會有以下狀況:

- 當出現大漲或大跌走勢在短時間內指數上漲或下跌超過百點,且與當初進場時
研判的趨勢相符合時,若停利點設太小在達到停利點數獲利出場後則會錯失緊接
而來的大行情,實在可惜。

- 當出現整體走勢和自己當初進場預測相同,但因為指數上下震盪達到所設置過
小的停損點而出場,錯失和自己預測走勢相同賺錢的機會。

2. 若設的停損點、停利點太大會有以下狀況:

當整體大台走勢和自己預設趨勢相反,這種情況能越早出場越好,但因設置的停
損點數太大要等到達到停損點才能出場將會造成過多的損失。

因為本研究採當沖交易,因此若當次交易進場所持有的台指期貨遲遲達不到停損、
停利點指數時,所持有之台指期貨均以當日收盤前以最後一分鐘收盤價全部平倉出場。

3.3.3 每筆交易的操作說明

上面小節說明了進場以及出場時機,每個交易日產生的每一筆交易操作細節可統整
成圖 3.1,由十五分 K 線計算的技術指標之組合找出進場時機後便以下一分鐘之收盤價
進場一口台指期貨,持有該台指期貨的某分鐘開盤價直到達到停損、停利點數時則以

14
下一分鐘收盤價平倉出場,若交易日收盤前遲遲達不到停損停損、停利點數則以該交
易日最後一分鐘收盤價出場。
因為是以下一分鐘收盤價平倉出場,真正出場的價格是下一分鐘的收盤價而非所達
到的停損或停利指數,因此做完每筆交易的損益點數不會剛好是停損或是停利點數,
可能比停損、停利點指數略高或是略低。另外,使用基因演算法於技術指標組合 (用
GA 去挑選 MV) 的架構圖見圖 3.2。

圖 3.1: 每筆交易進出場示意圖

圖 3.2: 用 GA 於進場時機判斷的每筆交易進出場示意圖

15
3.3.4 基因演算法 (GA) 找出交易策略參數

本實驗使用 R 語言實作,使用 genalg package[12] 中的 rbga.bin 來 implement 基因演


算法,rbga.bin 是 R based Genetic Algorithm(binary chromosome),rbga.bin function 如下
所示,而使用方式見表 3.1:
rbga.bin( size=10, suggestions=NULL, popSize=200, iters=100, mutationChance=NA,
elitism=NA, zeroToOneRatio=10, monitorFunc=NULL, evalFunc=NULL,
showSettings=FALSE, verbose=FALSE)

表 3.1: rbga.bin function 使用說明

使用 function function 參數說明


size the number of genes in the chromosome.
popSize the population size.
iters the number of iterations.
mutationChance the chance that a gene in the chromosome mutates. By de-
fault 1/(size+1). It affects the convergence rate and the prob-
ing of search space: a low chance results in quicker conver-
gence, while a high chance increases the span of the search
space.
elitism the number of chromosomes that are kept into the next gen-
eration. By default is about 20% of the population size.
zeroToOneRatio the change for a zero for mutations and initialization. This
option is used to control the number of set genes in the chro-
mosome. For example, when doing variable selectionm this
parameter should be set high to
monitorFunc Method run after each generation to allow monitoring of the
optimization
evalFunc User supplied method to calculate the evaluation function
for the given chromosome
showSettings if true the settings will be printed to screen. By default False.
verbose if true the algorithm will be more verbose. By default False.
suggestions optional list of suggested chromosomes

接下來說明本實驗使用基因演算法時採用的相關參數:

• 停損點、停利點以二進位方式編碼形成一個 individual,停損點、停利點的基因長
度皆為 5,也就是其數值是介於 1 至 31 間 (化成十進位後)。

• population size 為 40,一開始產生 40 個隨機 individuals。

• Fitness function 中將此 individual 解碼得到停損點、停利點進行模擬交易,統計出

16
兩個月做多損益點數以及做空損益點數,之後將總損益點數除以總交易次數所得
的比值當作 fitness value,其值越大代表要越好的表現。

• 目前研究基因演算法跑的 iteration 數為 15。

• 取前 20% 表現最好的 individuals 進入下一個 generation。

• 基因突變機率 (mutation rate) 為 0.01。

• 用 GA 挑選 MV 版本 (策略三),不同 MV 搭配的策略將其策略總數以二進位方式
編碼和之前停損停利點以二進位方式編碼形成 individual,執行 GA。

3.4 模擬交易實驗設計

本研究整個實驗模型架構如圖 3.3 所示,將原始自 2012 年 11 月至 2016 年 12 月每


個交易日台灣指數期貨 (大台) 每分鐘 K 線資料,經過先前提過計算不同 K 線以及技術
指標數值等方式前處理後,將資料以三個月為單位,這三個月的資料中前兩個月資料
用技術指標搭配和基因演算法進行模擬交易訓練參數,將訓練完得到的參數供最後一
個月進行模擬交易分析績效,之後這個過程在位移到下一個單位繼續操作直到 2016 年
底,舉個例子: 以 2013 年 1、2 月為 training data 和 2013 年 3 月為 testing data,做完模
擬交易後再以 2013 年 2、3 月為 training data 和 2013 年 4 月為 testing data 進行實驗,以
此類推。

17
圖 3.3: 研究架構流程圖

18
四、 實驗結果

由上一章所提出的實驗方法,本章節對所進行的實驗進行整理和績效分析,對於
績效評估有以下幾個方式: 總損益點數、每次交易 (每 1 口大台) 的平均損益點數、考
量交易手續費及期貨交易稅後的實際損益金額,在計算實際損益金額部分,每筆交易
買和賣皆要支付手續費與期貨交易稅,在台灣期貨交易所 [10] 有提供費率作為參考見
表 4.1。

表 4.1: 台灣期貨交易所手續費

單位: 新台幣元/口 交易經手費 結算手續費 交割手續費 期貨交易稅



台股期貨 (TX) 12 8 8 0.00002
電子期貨 (TE)
金融期貨 (TF)
台灣 50 期貨 (T5F)

本實驗假設每次交易會被券商收取新台幣 100 元作為手續費,期貨手續費各家券商


不同,需要交易人自行和營業員談,原則上操作的口數越大越容易談到越低的價格。
期交稅率為十萬分之二,期貨交易稅計算方式為: 期貨指數 × 每點金額 × 期交稅率,
期貨指數是指買或賣當下的的大台指數。以交易時期貨指數為 9000 點為例,期貨交易
稅 = 9000(點)× 200 × 0.00002 = 36 元。因此每筆交易扣除完買和賣的手續費和期貨交易
稅後,即得所賺的金額。
本實驗的研究結果也會和先前研究 [1] 之結果於其研究期間進行比較,在這裡簡單
介紹他的實驗方式,他的研究取得 2013 年 5 月至 10 月 (共 6 個月) 每個交易日十五分
K 線 (每日有 20 根十五分 K 線),同樣也是分成進場操作及出場操作兩部分,進場操作
制定出 8 種策略兩兩搭配使用,由所搭配的策略找到進場點後進場價格為十五分 K 線
之最高與最低平均價,而出場操作採指數達正負三十點時即獲利或停損出場,每日當
沖不留倉。

19
4.1 策略一: 使用 EMA 及 KD 搭配找出進場時機操作績效

本研究首先使用 4 根十五分 K 線指數移動平均線 (4EMA) 及 9 日 KD 值作為進場時


機點判斷,此進場策略為: 當 4EMA 初次呈現上揚趨勢且 KD 指標呈現 K 值 >D 值同時
成立時進場做多;當 4EMA 初次呈現向下趨勢且 KD 指標呈現 K 值 <D 值同時成立時
進場做空,此進場策略於 2013 年 5 月至 10 月操作績效及資訊見表 4.2。
表 4.2: 使用 4EMA 及 KD 搭配於 2013 年 5-10 月績效分析表

月份 5 6 7 8 9 10
做多總次數 16 1 17 16 24 22
做多成功次數 14 1 15 11 18 11
做多失敗次數 2 0 2 5 6 11
做空總次數 17 21 12 12 9 17
做空成功次數 14 15 11 7 8 15
做空失敗次數 3 6 1 5 1 2
做多損益點數 104 6 141 251 309 83
做空損益點數 172 101 167 85 89 159
損益總點數 276 107 308 336 398 242
總交易次數 33 22 29 28 33 39
每口損益點數 8.364 4.864 10.621 12 12.061 6.205
停利點 8 11 14 23 25 30
停損點 24 16 12 16 16 24

參考的先前研究 [1] 中,其使用策略一、策略二作為進場策略與本實驗策略一類似


因此與其進行比較。其策略一:4MA 初次呈現上揚及 K 值 >D 值同時成立時即作多,採
用此雙指標損益未達正負三十點前不執行任何平倉動作;策略二:4MA 初次呈現下滑及
K 值 <D 值時進場做空,採用此雙指標損益未達正負三十點前不執行任何平倉動作,此
二策略皆採當沖,於 2013 年 5 月至 10 月之交易策略績效如表 4.3。在他實驗的研究期
間內,本實驗損益總點數在各個月份點數皆為獲利狀態,若將總交易次數也考慮進去,
本實驗交易每口大台的損益點數 (損益總點數/總交易次數) 均比其表現要好,比較圖見
圖 4.1。

20
表 4.3: 參考的先前研究 [1] - 其策略一、策略二搭配績效分析表

月份 5月 6月 7月 8月 9月 10 月
總進場次數 42 41 51 43 35 39
兩平次數 1 0 1 0 1 1
做多成功次數 14 10 17 14 8 12
做多失敗次數 7 9 10 6 6 9
做空成功次數 12 9 14 16 7 9
做空失敗次數 8 13 9 6 13 8
做多損益點數 80 32 180 264 83 21
做空損益點數 162 -72 159 219 -4 16
總損益點數 242 -40 339 483 79 37
每口損益點數 5.762 -0.976 6.647 11.233 2.257 0.949

圖 4.1: 使用 4EMA 及 KD 搭配 - 每口台指期損益點數比較表

為了驗證使用此進場策略操作之方式不會是短期才有效或是只存在特定期間內 (某
幾個連續月份) 有效的情況,本實驗將研究期間拉長至從 2013 至 2016 年進行模擬交
易,看看是否此交易策略長時間內都仍然有效,此策略於 2013 年至 2016 年各年度整年
的績效分析表見表 4.4。圖 4.2 顯示 4EMA 及 KD 搭配於 2013 至 2016 年各個月單月損
益總點數情況,而圖 4.3 則是顯示於此期間的各個月交易每口大台的損益點數 (損益總
點數/總交易次數)。

21
表 4.4: 使用 4EMA、KD 搭配於各期間交易績效分析表

年份 2013 年 2014 年 2015 年 2016 年


做多總次數 178 163 186 189
做多成功次數 130 127 138 133
做多失敗次數 48 36 48 56
做空總次數 165 129 174 193
做空成功次數 132 94 135 144
做空失敗次數 33 35 39 49
做多損益點數 1427 1655 2151 1854
做空損益點數 1524 1414 2297 2031
損益總點數 2951 3069 4448 3885
總交易次數 343 292 360 382
每口損益點數 8.603 10.51 12.356 10.17
平均每月損益點數 246 256 371 324

圖 4.2: 4EMA 及 KD 搭配於 2013 至 2016 年各個月損益總點數

考慮每筆交易買和賣所要支付的手續費與期貨交易稅,並將呈現方式從損益點數轉
換成實際金額,在本研究所假設的手續費計算下,於 2013 至 2016 年各個月份真實的獲
利金額 (單位: 新台幣元) 見圖 4.4供為參考,研究期間每個月皆呈現正報酬。

22
圖 4.3: 4EMA 及 KD 搭配於 2013 至 2016 年各個月每口損益點數

圖 4.4: 4EMA 及 KD 搭配於 2013 至 2016 年各個月真實損益金額

圖 4.5是本研究進行模擬交易於研究期間做多時累積上升點數以及做空時累積下降
點數的情況,即便會有判斷錯誤導致出現虧損點數的情況,但大致而言整體趨勢是一
致的。

23
圖 4.5: 4EMA 及 KD 搭配於研究期間累積點數情況

4.2 策略二: 使用 EMA、MV 及 KD 搭配找出進場時機操作

績效

除了使用價的指標判斷何時進場外,也考量加入移動平均量作為量的指標,利用
價量關係輔助大盤趨勢之判斷,使用 4 根十五分 K 線指數移動平均線 (4EMA) 和 4 根
十五分 K 線移動平均成交量 (4MV) 及 9 日 KD 值作為進場時機判斷,當 4EMA 初次呈
現上揚趨勢且 4MV 亦呈現上揚和 KD 指標呈現 K 值 >D 值同時皆成立時進場做多;當
4EMA 初次呈現下跌趨勢且 4MV 呈現上揚和 KD 指標呈現 K 值 <D 值同時皆成立時進
場做空。同樣的,此進場策略於 2013 年 5 月至 10 月操作績效及資訊見表 4.5。

24
表 4.5: 使用 4EMA、4MV 及 KD 搭配於 2013 年 5-10 月績效總表

月份 5 6 7 8 9 10
做多總次數 6 0 6 6 11 8
做多成功次數 4 0 6 4 7 6
做多失敗次數 2 0 0 2 4 2
做空總次數 8 9 6 1 5 7
做空成功次數 5 6 6 1 5 6
做空失敗次數 3 3 0 0 0 1
做多損益點數 38 0 110 95 117 129
做空損益點數 55 40 131 2 79 57
損益總點數 93 40 241 97 196 186
總交易次數 14 9 12 7 16 15
每口損益點數 6.643 4.444 20.083 13.857 12.25 12.4
停利點 20 12 24 25 24 24
停損點 8 16 24 17 24 17

在所參考的先前研究 [1] 中,其使用策略五、策略六作為進場策略與本實驗策略二


類似因此與其進行比較。其策略五:4MA、4MV 同時呈現上揚及 K 值 >D 值同時成立時
即作多,採用此三指標損益未達正負三十點前不執行任何平倉動作;策略六:4MA 初次
呈現下跌、4MV 呈現上揚及 K 值 <D 值時進場做空,採用此三指標損益未達正負三十
點前不執行任何平倉動作,此二策略皆採當沖,於 2013 年 5 月至 10 月之交易策略績效
如表 4.6。

表 4.6: 參考的先前研究 [1] - 其策略五策略六搭配績效分析表

月份 5月 6月 7月 8月 9月 10 月
總交易次數 33 41 44 37 35 37
兩平次數 1 1 1 0 0 1
做多成功次數 10 8 15 11 11 13
做多失敗次數 5 11 8 4 8 6
做空成功次數 8 10 13 12 7 9
做空失敗次數 9 11 7 10 9 8
做多損益點數 44 -23 231 285 80 137
做空損益點數 98 -49 102 113 14 -9
損益總點數 142 -72 333 368 94 128
每口損益點數 4.303 -1.756 7.568 9.946 2.686 3.459

在他實驗的研究期間內,本實驗損益總點數在各個月份點數皆為獲利狀態,雖然本
實驗損益總點數在 5、7、8 月皆輸且 8 月總點數輸很多,但若考慮到總交易次數可發現
本實驗次數遠少於他的實驗 (模擬交易操作方式和策略設計不同所導致),本實驗在交易
每口大台的損益點數均比其表現要好 (損益總點數/總交易次數),比較圖見圖 4.6。

25
圖 4.6: 使用 4EMA、4MV 及 KD 搭配 - 每口台指期損益點數比較表

同樣驗證使用此進場策略操作於長時間內是否都仍然有效,此策略於 2013 年至
2016 年各年度整年的績效分析表見表 4.7。圖 4.7 顯示 4EMA、4MV 及 KD 搭配於 2013
至 2016 年各個月單月損益總點數情況,而圖 4.8 則是顯示於此期間的各個月交易每口
大台的損益點數 (損益總點數/總交易次數)。

表 4.7: 使用 4EMA、4MV 及 KD 搭配於各期間交易績效分析表

年份 2013 年 2014 年 2015 年 2016 年


做多總次數 71 52 68 70
做多成功次數 53 41 51 51
做多失敗次數 18 11 17 19
做空總次數 60 63 78 77
做空成功次數 49 49 59 55
做空失敗次數 11 14 19 22
做多損益點數 776 638 909 1030
做空損益點數 600 731 1108 1076
損益總點數 1376 1369 2017 2106
總交易次數 131 115 146 147
每口損益點數 10.504 11.904 13.815 14.327
平均每月損益點數 115 114 168 176

26
圖 4.7: 4EMA、4MV 及 KD 搭配於 2013 至 2016 年各個月損益總點數

圖 4.8: 4EMA、4MV 及 KD 搭配於 2013 至 2016 年各個月每口損益點數

最後也提供考慮每筆交易買和賣所要支付的手續費 (採本研究所假設的每次 100 元)


與期貨交易稅,於 2013 至 2016 年各個月份真實的獲利金額 (單位: 新台幣元) 見圖 4.9作
為參考,研究期間每個月皆呈現正報酬。同樣的,圖 4.10為本研究進行模擬交易於研
究期間做多時累積上升點數以及做空時累積下降點數的情況,大致而言,不管是做多

27
還是做空所呈現的整體趨勢是一致的。

圖 4.9: 4EMA、4MV 及 KD 搭配於 2013 至 2016 年各個月真實損益金額

圖 4.10: 4EMA、4MV 及 KD 搭配於研究期間累積點數情況

28
由實驗結果可以發現,使用 EMA 及 KD 搭配的操作策略再加上 MV 做搭配後,交
易次數呈現大幅降低趨勢,也因此損益總點數部分輸給單純 EMA 及 KD 搭配的操作
策略,但平均每筆交易 (每口大台) 損益點數則是勝過單純 EMA 及 KD 搭配的操作策
略,可驗證多加量的指標作搭配的確能幫助在每次進場交易時有更佳的獲利,比較表
見表 4.8。

表 4.8: 4EMA 及 KD 搭配與 4EMA、4MV 及 KD 搭配績效比較表

4EMA 及 KD 搭配 4EMA、4MV 及 KD
搭配
2013 年損益總點數 | 總交易次數 2951 | 343 1376 | 131
2014 年損益總點數 | 總交易次數 3069 | 292 1369 | 115
2015 年損益總點數 | 總交易次數 4448 | 360 2017 | 146
2016 年損益總點數 | 總交易次數 3885 | 382 2106 | 147
損益總點數 | 總交易次數 14353 | 1377 6868 | 539
平均每筆交易 (每口大台) 損益點數 10.423 12.742

4.3 策略三: 使用 GA 於 MV 挑選搭配 EMA 及 KD 找出進

場時機操作績效

我們也嘗試使用基因演算法於找尋技術指標搭配方式,以策略二進行改良,不在只
是用固定的 4MV 作搭配,而是從 1MV、2MV、3MV、4MV、5MV、10MV、15MV、
20MV 幾種不同的 MV 中選出一種與 4EMA 和 KD 指標進行搭配,所選出的 EMA、MV
和 KD 指標的操作方式和策略二相同。同樣驗證使用此進場策略操作於長時間內是否都
仍然有效,此策略於 2013 年至 2016 年各年度整年的績效分析表見表 4.9。圖 4.11 顯示
於 2013 至 2016 年各個月單月損益總點數情況,而圖 4.12 則是顯示於此期間的各個月
交易每口大台的損益點數 (損益總點數/總交易次數)。
最後也提供考慮每筆交易買和賣所要支付的手續費 (採本研究所假設的每次 100
元) 與期貨交易稅,於 2013 至 2016 年各個月份真實的獲利金額 (單位: 新台幣元) 見
圖 4.13作為參考,研究期間每個月皆呈現正報酬。同樣的,圖 4.14為本研究進行模擬
交易於研究期間做多時累積上升點數以及做空時累積下降點數的情況,大致而言,不
管是做多還是做空所呈現的整體趨勢是一致的。

29
表 4.9: 使用 GA 於 MV 挑選搭配 EMA 及 KD 於各期間交易績效分析表

年份 2013 年 2014 年 2015 年 2016 年


做多總次數 76 70 80 86
做多成功次數 59 54 70 61
做多失敗次數 17 16 10 25
做空總次數 73 70 75 77
做空成功次數 57 52 62 63
做空失敗次數 16 18 13 14
做多損益點數 1083 813 1329 1044
做空損益點數 865 893 984 1263
損益總點數 1948 1706 2313 2307
總交易次數 149 140 155 163
每口損益點數 13.074 12.186 14.923 14.153
平均每月損益點數 163 142 193 192

圖 4.11: 使用 GA 於 MV 挑選與 4EMA 和 KD 搭配於 2013 至 2016 年各個月損益總點數

圖 4.12: 使用 GA 於 MV 挑選與 4EMA 和 KD 搭配於 2013 至 2016 年各個月每口損益點數

30
圖 4.13: 使用 GA 於 MV 挑選與 4EMA 和 KD 搭配於 2013 至 2016 年各個月損益金額

圖 4.14: 使用 GA 於 MV 挑選與 4EMA 和 KD 搭配於研究期間累積點數情況

31
由實驗結果可以發現,使用基因演算法對 MV 進行挑選相較於單純使用 4MV 去搭
配 4EMA 和 KD 有更好的表現,說明使用 4MV 搭配在研究期間的各個月份並非均是最
好的選擇,比較表見表 4.10。

表 4.10: 使用 4MV 搭配與用 GA 挑選 MV 作搭配 4EMA 和 KD 績效比較表

使用 4MV 搭配 4EMA 用 GA 挑選 MV 搭配
和 KD 4EMA 和 KD
2013 年損益總點數 | 總交易次數 1376 | 131 1948 | 149
2014 年損益總點數 | 總交易次數 1369 | 115 1706 | 140
2015 年損益總點數 | 總交易次數 2017 | 146 2313 | 155
2016 年損益總點數 | 總交易次數 2106 | 147 2307 | 163
損益總點數 | 總交易次數 6868 | 539 8274 | 607
平均每筆交易 (每口大台) 損益點數 12.742 13.631

32
五、 結論與未來展望

5.1 結論

本研究以大台作為研究對象,用技術指標與基因演算法設計進出場策略進而建構出
當沖交易策略機械化操作模型架構,本研究使用了三種操作策略,這三種策略差異在
於進場時機判斷,策略一在進場時機判斷只有單純的價的指標去搭配操作 (4EMA 和
KD),策略二加入量的指標 4MV 一同搭配操作,策略三則是改良策略二用基因演算法
進行輔助設計。從實驗結果來看,此三種策略在 2013 至 2016 年間均能夠有正報酬的情
況,並非只適用在短期或特定期間,在指標搭配部分,用越多指標進行搭配會減少交
易的次數但每次交易的損益點數會上升,而基因演算法能夠協助操作者找出更好的搭
配方式。

5.2 未來展望

目前本實驗僅採取幾種常用且基本的技術指標搭配作為進場時機判斷依據,未來可
以嘗試更多不同的技術指標去搭配,每種技術指標都有其運用的時機與優缺點,或許
能發現更好的搭配方式;也可以從演化演算法設計上改良,目前本實驗僅對 MV 作挑
選,未來可以繼續發展選取更多的技術指標設計演化演算法去進行參數選擇,找出更
棒的進場判斷方式使獲利增加。此外本實驗用十五分 K 線和一分 K 線搭配設計交易操
作,未來可以嘗試更多不同分鐘的 K 線,或用多種不同分鐘數的 K 線進行輔助設計新
的操作方式,看能否有更佳的獲利績效。同時,也希望能加入更多財經相關知識使整
個所建構的交易策略更好更完善。
目前本實驗有多個實驗假設,未來可以加入更多財經領域的專業進而考慮更多實際
上會遇到的情況去改良操作策略,讓實驗結果更貼近於真實會發生的結果,且本研究
目前是用過去幾年的歷史資料以程式進行模擬交易,未來希望能發展出真正能夠自動
進行交易的交易系統,能與券商所提供的 API 對接,直接進行下單交易而不在只是用
歷史資料進行模擬操作。

33
參 考 文

[1] 陳博彥, “台指期十五分鐘 K 線之當沖研究: 以 KD、MA 及 MV 為組合指標建構之


操盤策略,” 國立成功大學高階管理碩士在 專 (EMBA), 2014.

[2] J. J. Murphy, Technical Analysis of the Futures Markets: A Comprehensive Guide to Trad-
ing Methods and Applications. Prentice Hall Press, 1986.

[3] H. Bessembinder and K. Chan, “The Profitability of Technical Trading Rules in the Asian
Stock Markets”, Pacific-Basin Finance Journal,” Pacific-Basin Finance Journal, vol. 3,
issue 2-3, pp. 257–284, 1995.

[4] 楊家維, “技術分析用於當沖之有效性研究——台灣股市之實證分析,” 國立臺 大


學經濟學系, 2000.

[5] 林典南, “使用 AdaBoost 之臺股指數期貨當沖交易系統,” 國立臺灣大學資訊網 與


多 體研究所, 2008.

[6] 林天運, “大盤未來走勢預測-KD 指標的實證分析,” 國立成功大學國際 業研究所,


2007.

[7] T. Bäck, Evolutionary algorithms in theory and practice: evolution strategies, evolution-
ary programming, genetic algorithms. Oxford University Press Oxford, UK ©1996,
1996.

[8] M. Radeerom, “Building a Trade System by Genetic Algorithm and Technical Analysis
for Thai Stock Index,” ACIIDS 2014: Intelligent Information and Database Systems, pp.
414–423, 2014.

[9] C. Neely, P. Weller, and R. Dittmar, “Is Technical Analysis in the Foreign Exchange Mar-
ket Profitable? A Genetic Programming Approach,” JOURNAL OF FINANCIAL AND
QUANTITATIVE ANALYSIS, vol. VOL. 32, NO. 4, pp. 405–426, 1997.

[10] “台灣期貨交易所網站,” 2018. [Online]. Available: http://www.taifex.com.tw/chinese/


index.asp

34
[11] S. Nison, Beyond Candlesticks: New Japanese Charting Techniques Revealed, S. Nison,
Ed., 1994.

[12] “Package ’genalg’,” 2018. [Online]. Available: https://cran.r-project.org/web/packages/


genalg/genalg.pdf

35

A.1 本實驗相關 open source

於本論文研究工作中所開發及使用的 source code 暨實驗所得之數據結果與說明,


已 open source 於 https://github.com/nclab/TX_TradeStrAdj.tiga 提供給研究同儕
對照與參考之用。

36

You might also like