孫華,孟昭睿,魏天武
基于安卓系統(tǒng)的股票推薦系統(tǒng)設計與實現(xiàn)
孫金華,孟昭睿,魏天武
(廈門理工學院計算機與信息工程學院,福建廈門361024)
設計并實現(xiàn)了基于安卓系統(tǒng)的股票推薦系統(tǒng),闡述了該系統(tǒng)的總體結構、功能模塊和實現(xiàn)的關鍵技術.系統(tǒng)結合SQLite數(shù)據(jù)庫和雅虎股票數(shù)據(jù)接口,通過分析股價歷史數(shù)據(jù),完成股票評估與推薦等功能.實際測試結果表明,系統(tǒng)能運行于基于安卓系統(tǒng)的移動設備,為用戶的股票交易帶來便利.
股票;推薦系統(tǒng);移動設備;安卓系統(tǒng)
股票投資因其準入門坎低、操作方便而成為中小投資者重要的投資渠道,但股票價格波動的隨機性和風險又使許多投資者望而生畏.投資時如何選擇股票,如何更好的規(guī)避風險,增加投資收益,是股票投資者最為關注的問題[1].
隨著移動互聯(lián)網(wǎng)與智能手機的快速發(fā)展,使得越來越多的用戶習慣通過移動設備獲取和處理信息. CNNIC調(diào)查顯示,截至2014年6月,中國手機網(wǎng)民規(guī)模5.27億,網(wǎng)民上網(wǎng)設備中,手機使用率達83.4%,首次超越傳統(tǒng)PC整體80.9%的使用率,成為最大網(wǎng)絡終端[2].設計能在安卓系統(tǒng)的平臺上運行、能夠有效的幫助股民進行股票投資篩選的股票薦購系統(tǒng)成為現(xiàn)實的應用需求.
股民在進行股票投資時,最大的問題是股票的選取問題,即如何選擇預期收益高的股票作為購入對象.基于這樣的需求,本系統(tǒng)核心功能定位于股票歷史數(shù)據(jù)的獲取與分析;股票實時交易數(shù)據(jù)的采集;對用戶選定的股票進行分析,根據(jù)指定的規(guī)則篩選出符合用戶期望股票;其他輔助功能.
2.1 系統(tǒng)總體架構
系統(tǒng)架構采用C/S模式,其中的服務器為互聯(lián)網(wǎng)上的雅虎財經(jīng)服務器,主要提供股票價格數(shù)據(jù).客戶端是本系統(tǒng)的主要構成部分,面向用戶提供服務,總體結構見圖1.

圖1 系統(tǒng)總體結構
系統(tǒng)為3層結構,位于最上端的用戶界面層直接與用戶交互,負責接收用戶查詢需求、展示行情數(shù)據(jù)及推薦結果.中間層是系統(tǒng)的核心,主要完成選定股票數(shù)據(jù)的分析、推薦等邏輯操作,分別與SQLite數(shù)據(jù)庫中股票歷史數(shù)據(jù)、雅虎股票API進行數(shù)據(jù)交互.位于底層的部分,主要通過Internet連接雅虎財經(jīng)服務器,獲取實時股票價格數(shù)據(jù)和完成客戶端數(shù)據(jù)更新等工作.
2.2 系統(tǒng)功能結構圖
用戶進入主界面后,可選擇查看大盤指數(shù)、個股行情、自選股和推薦股票列表等.在大盤指數(shù)模塊中可以查看歷史指數(shù),在個股行情中可以查看個股實時行情和個股歷史行情.在自選股中可以查看自選股行情,在推薦股票列表可查看被推薦的股票及其詳情.客戶端功能結構見圖2.

圖2 系統(tǒng)功能結構
系統(tǒng)運行在Android平臺上,選用Java作為開發(fā)語言,SQLite作為數(shù)據(jù)庫,結合雅虎stockAPI服務器接口實現(xiàn).所實現(xiàn)的核心功能模塊主要包括大盤數(shù)據(jù)展示、股票搜索、自選股管理和股票推薦等.
3.1 股票數(shù)據(jù)的獲取
數(shù)據(jù)的采集是進行股票數(shù)據(jù)分析和推薦的基礎,系統(tǒng)實現(xiàn)所依賴的數(shù)據(jù)包括歷史數(shù)據(jù)和實時交易數(shù)據(jù),這些數(shù)據(jù)都通過Yahoo財經(jīng)網(wǎng)站獲得[3].
3.1.1 歷史數(shù)據(jù)獲取
歷史數(shù)據(jù)獲取請求為:
http://table.finance.yahoo.com/table.csv?a=〈int>&b=〈int>&c=〈int>&d=〈int>&e=〈int>&f=〈int>&s=〈s tring>,其中的a-f為時間參數(shù),s為股票代碼.例如,獲取代碼為601899的上證股票紫金礦業(yè)從2013年7月20日到2014年7月19日的股價數(shù)據(jù),可用地址:http://table.finance.yahoo.com/table.csv?a=7&b=20&c= 2013&d=7&e=19&f=2014&s=601899.ss.其中后輟.ss表上交所,若要獲取深交所數(shù)據(jù),應在股票代碼后面附上.sz.
所獲得的數(shù)據(jù)包括日期、開盤價、最高價、最低價、收盤價、收盤價、成交量、復權收盤價等7個字段,以CSV格式存放,可通過import命令導入到SQLite數(shù)據(jù)庫中用于分析.
由于手機內(nèi)存的限制,歷史數(shù)據(jù)設置為滾動更新,穩(wěn)定存放大約一年的數(shù)據(jù),用以根據(jù)推薦規(guī)則生成推薦列表.
3.1.2 實時數(shù)據(jù)獲取
通過Yahoo財經(jīng)獲取實時交易數(shù)據(jù)的請求地址:
http://finance.yahoo.com/d/quotes.csv?s=〈股票名稱>&f=〈數(shù)據(jù)列選項>,其中的參數(shù)“股票名稱”用的是股票代碼加深市或上市后輟,“數(shù)據(jù)列選項”可選項很多,具體可參照幫助手冊.例如:
http://download.finance.yahoo.com/d/quotes.csv?s=601899.SS&f=l1,可獲取上交所代碼為601899的股票最新交易價格.
3.2 大盤數(shù)據(jù)展示與股票搜索
大盤展示功能主要實現(xiàn)股票最新報價和漲幅等信息查看.技術實現(xiàn)上,采用的方法是從網(wǎng)站獲取實時數(shù)據(jù)到本地數(shù)據(jù)庫,讀取到ListView控件中并顯示,實現(xiàn)效果見圖3.用戶通過該模塊可查看股票代碼、名稱、最新報價和漲幅等信息,并帶有搜索功能,可以通過搜索獲取指定股票數(shù)據(jù).用戶對指定股票數(shù)據(jù)行點擊后,會進行跳轉到股票詳細信息的顯示界面,可查看各類K線圖,方便用戶觀察股票走勢(見圖4).
在對股票進行長點擊后可以將股票添加到自選股中.

圖3 大盤數(shù)據(jù)顯示

圖4 個股K線
3.3 自選股管理
對股民來講,其所關注的通常不會是所有的股票,而是有限的數(shù)只股票,系統(tǒng)設計時順應這種需求,設置自選股模塊,用以存放和展示用戶所關注的股票.其實現(xiàn)的方法是從數(shù)據(jù)庫表中讀取數(shù)據(jù)到ListView控件中并顯示,工作界面見圖5.
與大盤展示模塊相似,在其中可進行查看指定股票的詳情、股票搜索和自選股的刪除等功能操作.

圖5 自選股展示
3.4 股票推薦
股票推薦功能是系統(tǒng)的核心功能,也是最為復雜的模塊.該功能的實現(xiàn)不可避免的涉及對股票歷史交易數(shù)據(jù)的分析、價格走勢的預測.在系統(tǒng)實現(xiàn)時,采用乖離率(BIAS)作為推薦衡量指標,該指標是反映股價在波動過程中與移動平均線偏離程度的技術指標.它的理論基礎是:不論股價在移動平均線之上或之下,只要偏離距離過遠,就會向移動平均線趨近,據(jù)此計算股價偏離移動平均線百分比的大小來判斷買賣時機[4].其計算公式為:

式(1)中,為指定股票當日收盤價,為n日移動平均價,n的值可根據(jù)需要設定為6、12或24等.若將n值設定為12,則當某支股票BIAS值達-7%以下時為超賣現(xiàn)象,可推薦該股.
對股票價格走勢的預測是一件很困難的事,目前學術界對這一問題形成了多種不同的處理方法和模型,包括BP神經(jīng)網(wǎng)絡、時間序列分析[5-6]、基于關聯(lián)規(guī)則[3,7]和支持向量機[8-9]等.這些方法各有所長,并且還在不斷發(fā)展,針對這種情況,考慮到實際應用的需要,系統(tǒng)的推薦模塊設計成開放式接口,可以根據(jù)需求添加多種不同的預測算法進去,對指定的股票,可應用多種算法進行分析,對結果采用投票機制決定是否推薦,具體流程見圖6.

圖6 股票推薦算法流程

圖7 顯示推薦股票
系統(tǒng)在開盤前,會應用多種不同算法分析歷史數(shù)據(jù),得到自選股列表中各股的一個預期指標,作為是否推薦的一個評判標準.開盤后,系統(tǒng)每隔一段時間掃描自選股列表中各股實時股價數(shù)據(jù),與預期指標比對,決定是否推薦,最后刷新推薦列表并顯示,結果見圖7.用戶可以查看推薦列表個股詳情和K線圖等,決定是否購買該股.
考慮到股民炒股的實際情況和現(xiàn)實需求,基于Android的股票推薦系統(tǒng)實現(xiàn)了大盤數(shù)據(jù)查看、個股詳情的查詢、自選股的設定,并能根據(jù)指定的規(guī)則對股票交易的歷史數(shù)據(jù)進行分析,得到相應的指標,據(jù)此選擇可能收益最大的股票向用戶推薦.在當前Android移動設備被廣泛使用的背景下,給股民的交易操作帶來方便,系統(tǒng)具有較好的應用前景.
參考文獻:
[1]王唯賢,陳利軍.股票價格預測的建模與仿真研究[J].計算機仿真,2012,29(1):344-347.
[2]中國互聯(lián)網(wǎng)信息中心.第34次中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告[EB/OL].(2014-07-21)[2015-01-09].http://www.cnnic. net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201407/t20140721_47437.htm.
[3]劉井蓮,趙衛(wèi)績,文海霞.基于關聯(lián)規(guī)則的股票分析軟件的設計與實現(xiàn)[J].通化師范學院學報,2012,33(8):30-32.
[4]邢長青.統(tǒng)計方法在股市分析中的應用[J].中國經(jīng)貿(mào),2011(24):111-112.
[5]唐廣宇.股票價格預測的時間序列組合模型方法[D].湘潭:湘潭大學,2013.
[6]藺玉佩,楊一文.基于模糊時間序列模型的股票市場預測[J].統(tǒng)計與決策,2010(8):34-37.
[7]王玉梅.關聯(lián)規(guī)則算法在股票分析預測中的應用研究[D].保定:華北電力大學,2008.
[8]呂琦.基于SVM的股票時間序列的預測研究[J].吉林工程技術師范學院學報,2011,27(7):48-49.
[9]程昌品,陳強,姜永生.基于ARIMA—SVM組合模型的股票價格預測[J].計算機仿真,2012,29(6):343-346.
Design and Implementation of Stock Recommendation System Based on Android
SUN Jin-hua,MENG Zhao-rui,WEI Tian-wu
(School of Computer and Information Engineer,Xiamen University of Technology, Xiamen 361024,Fujian,China)
In this paper,design and development of the stock recommendation system based on Android is introduced in details including structure of system,system function and key technologies.By analyzing historical stock data,applying the yahoo finance stock API and SQLite database,the system can carry out stock recommendation actively and evaluating.Tests and applications results show that the system can run on mobile devices based on the android system,and help users to gain in the stock deal.
stock;recommendation system;mobile devices;android system
TP311
:A
:1007-5348(2015)04-0008-05
(責任編輯:歐愷)
2014-11-16
福建省教育廳科技計劃項目(JB12184).
孫金華(1976-),男,福建三明人,廈門理工學院計算機與信息工程學院講師,碩士;研究方向:計算機軟件與理論、數(shù)據(jù)庫與數(shù)據(jù)挖掘等.