(92) 二技部畢業專題 製作成員 : 陳宏銘 (6916030) 陳泰源 (6916036) 陳宣宇 (6916041) 指導老師 : 林建福老師 中華民國九十三年三月十九日
德資明訊技管術理學系院科 二技部 (92) 第 2 頁
第一章序論 1.1 前言...2 1.2 工作方法...2 1.3 資料蒐集方法...2 第二章系統簡介 2.1 系統目的...3 2.2 系統操作說明...8 第三章系統分析 3.1 USE CASE DIAGRAM...21 3.2 CLASS DIAGRAM...24 3.3 SEQUENSE DIAGRAM...26 3.4 COLLABORATION DIAGRAM...28 3.5 STATE DIAGRAM...30 3.6 ACTIVITY DIAGRAM...31 3.7 COMPONENT DIAGRAM...33 3.8 DEPLOYMENT DIAGRAM...34 第四章系統原始碼 4.1 系統主畫面原始碼...35 4.2 下載功能原始碼...41 第 3 頁
第一章序論 1.1 前言 利用目前可攜性最高的 Java 語言來撰寫一套股市行情系統, 以期望日後能移植到不同平台上來達到跨平台的優勢 1.2 工作方法 Java 程式語言簡介 Java 是一種高階語言, 它具有以下的特性 : 物件導向 分散式 穩健安全 高可攜性 高執行效能 多執行緒 對大部分的程式語言而言, 若不是要 編譯 一個程式 ( 如 C OR C++), 就是要 直譯 一個程式語言 ( 如 Basic), 如此才能在電腦上執行這個程式 但是 Java 程式語言比較特別, 必須 編譯 並且 解釋 一個程式 首先, 要利用 Java 的編譯器 (compiler), 將一個程式轉換成 Java ByteCodes( 即.Class 檔, 它是平台獨立的執行碼, 將由 Java 平台解譯器來解釋它 ) 而後, 再由 Java 平台解譯器 (interperter) 在平台上剖析並執行每一個 Java ByteCodes 指令 編譯的行為只發生一次, 而每次執行這個程式, 就會發生解譯的行為 可將 Java ByteCodes 想成是用在 Java 虛擬機器上 (Java VM) 的機器碼指令 而任何的 Java 的解譯器, 無論是一個開發工具 (JDK) 或是一個可執行的 Applet 程式的 Web 瀏覽器, 它都是 Java VM 的實作 由於 Java ByteCodes 的使用, 使得 一次撰寫, 到處執行 ("write once,run anywhere") 這個構想能夠實現 Java 平台 Java 平台 擁有以下兩個要素 : Java 虛擬機器 (Java Virtual Machine) Java 應用程式介面 (Java API,Java Application Interface) 1.3 資料蒐集方法 本系統所需用到的資料為股市成交行情歷史資料, 此資料由網路上搜集而得來的, 可從台灣證券交易所網站上所得 另一個需的到 Java 虛擬機器, 可從 SUN 的網站上免費下載 第 4 頁
第二章系統簡介 2.1 系統目的 此系統主要是以利用 JAVA 程式語言及股票技術線圖公式, 將我們平常由電視上看到的股票的數字資料繪成圖形, 藉由此圖形來觀察股票未來的走向 系統開發工具及技術線圖分析方法 : 開發工具 : JCreator v2.5 撰寫本系統的 IDE J2SDKv1.4.2 Java 開發套件工具 Windows 筆記本 分析方法 : 一 K 線圖 :K 線是日本德川幕府時代, 在米市場中, 計算米價每天漲跌所使用的一種圖解方法 可明顯地看出買賣雙方力道的消長, 市場主力操作的動向, 以及股市中漲 跌 盤等三種基本行情的變化 目前 K 線已成為投資大眾最重視的股票技術分析工具 而 K 線的畫法, 就是依每股交易期間的開盤價與收盤價, 收盤高於開盤用空心表示 ( 陽線 ), 若收盤低於開盤則用實體的黑線表示 ( 陰線 ), 並把最高價與最低價用影線表現出來, 目前都用電腦繪製, 因此加上顏色, 一般都將陽線使用紅色, 陰線使用綠色 二 移動平均線 : 移動平均線是依據統計學時間數列的分析概念而得 公式 : 過去 N 日內收盤價總和均價線 : N 過去 N 日內的成交量總和均量線 : N 第 5 頁
三 相對強弱指標 (RSI:Relative Strength Index): 相對強弱指標 RSI 是技術分析大師威爾德 (Wells Wilder) 根據供需平衡的原理所發明的技術分析工具, 用以測量某商品市場買賣力量的強弱程度 由於現實市場上並不是每個人隨時都參與買賣, 也無法統計真正供應者與需求者的數量 因此,RSI 的計算乃利用買賣雙方爭鬥的結果, 即價格的漲跌為基礎, 來評估市場買賣力量的強弱 公式 : 過去 N 日內上漲點數總和 UP= N 過去 N 日內下跌點數收總和 DN= N UP RS = DN 100 N 日 RSI=100-1+RS 使用方法 : 1. 以 6 日 RSI 值為例,80 以上為超買,90 以上或 M 頭為賣點 ; 20 以下為超賣,10 以下或 W 底為買點 2. 在股價創新高點, 同時 RSI 也創新高點時, 表示後市仍強, 若未創新高點為賣出訊號 3. 在股價創新低點,RSI 也創新低點, 則後市仍弱, 若 RSI 未創新低點, 則為買進訊號 4. 當 6 日 RSI 由下穿過 12 日 RSI 而上時, 可視為買點 ; 反之當 6 日 RSI 由上貫破 12 日 RSI 而下時, 可視為賣點 5. 當出現類似這樣的訊號 :3 日 RSI>5 日 RSI>10 日 RSI>20 日 RSI..., 顯示市場是處於多頭行情 ; 反之則為空頭行情 6. 盤整期中, 一底比一底高, 為多頭勢強, 後勢可能再漲一段, 是買進時機, 反之一底比一底低是賣出時機 第 6 頁
四 平滑異同移動平均線 (MACD:Moving Average Convergence/Divergence): MACD 根據移動平均線 (MA) 較易掌握趨勢變動的優點所延伸出來的一種分析方式 其基本原理是運用兩條不同速度的指數平滑移動平均線來計算兩者之間的差離狀態 (DIF), 然後再對 DIF 進行平滑移動平均即為 MACD 線 簡而言之, MACD 就是對長期與短期的移動平均線收斂或發散的徵兆, 加以雙重平滑處理, 用以研判買賣股票的時機與信號 計算公式 : 先行計算出快速線 (n 日 EMA) 與慢速線 (m 日 EMA,n<m) 以此兩個數值, 再計算兩者間的 差離值 (DIF), 再計算 DIF 之 x 日 EMA, 此即 MACD nema=( 前一日 nema*(n-1)+ 今日收盤價 2)/(n+1) DIF=nEMA-mEMA xmacd=( 前一日 xmacd*(x-1)+dif 2)/(x+1) 一般會將 DIF-MACD 繪柱形圖 (BAR) 使用方法 : 1. 當 DIF MACD 或 BAR 值大於 0 時, 一般可視為多頭市場 ( 三者之值均大於 0 時, 其勢更為明顯 ); 反之當 DIF MACD 或 BAR 值小於 0 時, 可被視為空頭市場 ( 三者之值均小於 0 時, 可視為逃命訊號 ) 2. 短線而言,DIF 與 MACD 均在水平軸下方, 且 DIF 由下往上穿過 MACD 線 ( 即同義於 BAR 值自下方突破水平軸 ), 是為買入訊號 ; 反之 DIF 與 MACD 均在水平軸上方, 且 DIF 由上往下穿過 MACD 線 ( 即同義於 BAR 值自上方貫破水平軸 ), 是為賣出訊號 3. 中線而言,BAR 由下向上突破水平軸, 可視為買入訊號, 反之則為賣出訊號 4. 股價出現兩三個相對高點, 但 MACD 並未伴隨出現新高點, 其為賣出訊號 ; 反之股價出現兩三個相對低點, 但 MACD 並未伴隨出現新低點, 其為買入訊號 五 隨機指標 (KD):KD 市場常使用的一套技術分析工具 其適用範圍以中短期投資的技術分析為最佳 隨機指標的理論認為 : 當股市處於牛市時, 收盤價往往接近當日最高價 ; 反之在熊市時, 收 第 7 頁
盤價比較接近當日最低價, 該指數的目的即在反映出近期收盤價在該段日子中價格區間的相對位置 公式 : 它是由 %K( 快速平均值 ) %D( 慢速平均值 ) 兩條線所組成, 假設從 n 天週期計算出隨機指標時, 首先須找出最近 n 天當中曾經出現過的最高價 最低價與第 n 天的收盤價, 然後利用這三個數字來計算第 n 天的未成熟隨機值 (RSV) 第 n 天收盤價 - 最近 n 天內最低價 RSV = 100 最近 n 天內最高價 - 最近 n 天內最低價計算出 RSV 之後, 再來計算 K 值與 D 值 當日 K 值 (%K)= 2/3 前一日 K 值 + 1/3 RSV 當日 D 值 (%D)= 2/3 前一日 D 值 + 1/3 當日 K 值若無前一日的 K 值與 D 值, 可以分別用 50 來代入計算, 經過長期的平滑的結果, 起算基期雖然不同, 但會趨於一致, 差異很小 使用方法 : 1. 如果行情是一個明顯的漲勢, 會帶動 K 線與 D 線向上升 如漲勢開始遲緩, 則會反應到 K 值與 D 值, 使得 K 值跌破 D 值, 此時中短期跌勢確立 2. 當 K 值大於 D 值, 顯示目前是向上漲升的趨勢, 因此在圖形上 K 線向上突破 D 線時, 即為買進訊號 3. 當 D 值大於 K 值, 顯示目前是向下跌落, 因此在圖形上 K 線向下跌破 D 線, 此即為賣出訊號 4. 上述 K 線與 D 線的交叉, 須在 80 以上,20 以下 ( 一說 70 30; 視市場投機程度而彈性擴大範圍 ), 訊號才正確 5. 當 K 值大於 80,D 值大於 70 時, 表示當日收盤價處於偏高之價格區域, 即為超買狀態 ; 當 K 值小於 20, D 值小於 30 時, 表示當日收盤價處於偏低之價格區域, 即為超賣狀態 6. 當 D 值跌至 15 以下時, 意味市場為嚴重之超賣, 其為買入訊號 ; 當 D 值超過 85 以上時, 意味市場為嚴重之超買, 其為賣出訊號 7. 價格創新高或新低, 而 KD 未有此現象, 此為背離現象, 亦即為可能反轉的重要前兆 第 8 頁
六 動量線 (): 是根據物理的靜者恆靜, 動者恆動的原理所研發而來的 此股票分析方法有些部分是參照網站 :http://ezchart.spedia.net/ 系統限制 : 需安裝適合您所使用作業系統的 JAVA 虛擬機碼及要有能連上 INTERNET 的網路 系統範圍 : 對於股票有興趣的人士 系統環境 : 作業系統 Windows 2000 /XP 以上版本 中央處理器 PentiumⅢ 以上 記憶體 256MB 以上建議 512MB 螢幕解析 15 吋以上之彩色顯示器一台 ( 解析度 1024*768) 顯示卡 一般顯示卡 硬碟空間 150MB 以上建議 200MB 第 9 頁
2.2 系統操作說明 系統開始畫面 : 三大系統功能 : 檔案股票資訊求助 檔案功能 : 第 10 頁
下載資料 ( 快速鍵 :CTRL+D): 下載當天的股票資料 修 的速度 正 ( 快速鍵 :CTRL+R): 把系統檔案中過舊的股票資料刪除, 以維護系統執行 備 份 ( 快速鍵 :CTRL+B): 將檔案中的股票資料備份 第 11 頁
離 開 ( 快速鍵 :CTRL+X): 離開股票系統 檔案功能畫面 股票資訊功能 : 上 市 ( 快速鍵 :CTRL+M): 觀看上市公司股票技術線圖, 您可利用左上方區域先選 第 12 頁
擇您所要看的類股在使用下方介面選擇公司, 選擇好後按下左上方區域的確定鈕就可觀看技術線圖, 或者, 您知道股票代碼或公司名稱, 則可利右上方區域輸入代碼名稱二者之一, 按下確定鈕後即可觀看技術線圖 上櫃 ( 快速鍵 :CTRL+U): 觀看上櫃公司股票技術線圖, 您可利用左上方區域先選擇您所要看的類股在使用下方介面選擇公司, 選擇好後按下左上方區域的確定鈕就可觀看技術線圖, 或者, 您知道股票代碼或公司名稱, 則可利右上方區域輸入代碼名稱二者之一, 按下確定鈕後即可觀看技術線圖 股票資訊功能畫面 第 13 頁
點選上市功能後的畫面 選取左上方類股後畫面 第 14 頁
選擇下面公司後畫面 利用右上方快速查詢, 找不到自己輸入資料的畫面 第 15 頁
當輸入股票名稱找不時, 會自動搜尋類似名稱畫面 求助功能 操作說明 ( 快速鍵 :Ctrl+H) 求助功能畫面 第 16 頁
點選操作說明後的畫面 技術線圖 : ESC 功能鍵 : 回復初始化 F1 功能鍵 : 顯示每日成交量和 5 日均量及 10 日均量 第 17 頁
F2 功能鍵 : 顯示 K-D 分析線 F3 功能鍵 : 顯示 RSI 分析線 第 18 頁
F4 功能鍵 : 顯示 MACD 分析線 F5 功能鍵 : 顯示 MOMENT 分析線 第 19 頁
F6 功能鍵 : 切換日線及週線標線 取消日線標線 取消日線及週線的標線 第 20 頁
F7 功能鍵 : 開啟十字定位功能可查詢和標線功能 ( 每日收盤價, 每日最高價, 每日開盤 價, 每日最低價 ) 按滑鼠左鍵第一次是定位欲畫線的開始點, 之後第二次是選擇標線的結 束點 可用滑鼠點選所要選擇畫線的定點, 點選兩點自動畫一直線 第 21 頁
: 可以上下移動黃色水平直線 : 可以左右觀看新舊線圖資料 第 22 頁
第三章系統分析 3.1USE CASE DIAGRAM 第 23 頁
第 24 頁
第 25 頁
3.2CLASS DIAGRAM 第 26 頁
第 27 頁
3.3SEQUENSE DIAGRAM 第 28 頁
第 29 頁
3.4COLLABORATION DIAGRAM 第 30 頁
第 31 頁
3.5STATE DIAGRAM 第 32 頁
3.6ACTIVITY DIAGRAM 第 33 頁
第 34 頁
3.7COMPONENT DIAGRAM 第 35 頁
3.8DEPLOYMENT DIAGRAM 第 36 頁