曾雅麗 張民鵬
摘要:介紹了使用Objective-C語(yǔ)言開發(fā)的iOS手機(jī)客戶端炒股軟件,詳述了該炒股軟件的需求以及設(shè)計(jì)與實(shí)現(xiàn)過(guò)程。該軟件集股票信息、資訊、模擬炒股于一體,可以使人們?cè)谑褂眠^(guò)程中獲得更真實(shí)的體驗(yàn)。
關(guān)鍵詞:炒股軟件;手機(jī)軟件;iOS
DOIDOI:10.11907/rjdk.151501
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):16727800(2015)006012003
基金項(xiàng)目基金項(xiàng)目:福州市科技局項(xiàng)目(2013G84)
作者簡(jiǎn)介作者簡(jiǎn)介:曾雅麗(1990-),女,福建漳州人,福建師范大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院碩士研究生,研究方向?yàn)榫W(wǎng)絡(luò)與信息安全;張民鵬(1992-),男,湖北荊門人,福建師范大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院學(xué)生,研究方向?yàn)榫W(wǎng)絡(luò)與信息安全。
0 引言
隨著手機(jī)終端智能化的不斷提高,手機(jī)終端不僅是通信終端,更是互聯(lián)網(wǎng)的主要組成部分[1]。iPhone手機(jī)在硬件和用戶體驗(yàn)方面都受到人們喜愛,基于iOS的軟件開發(fā)更是在手機(jī)軟件市場(chǎng)中具有較高占有率。當(dāng)前的炒股軟件大多是專業(yè)炒股軟件,而沒(méi)有開發(fā)出適用于毫無(wú)經(jīng)驗(yàn)的用戶練習(xí)與學(xué)習(xí)的模擬炒股軟件。在這樣的背景下,開發(fā)了愛炒股軟件,該軟件可模擬股票交易功能,讓用戶能真實(shí)地體會(huì)炒股的流程與規(guī)則,同時(shí)還整合了各大財(cái)經(jīng)門戶網(wǎng)站的信息以及各大機(jī)構(gòu)的調(diào)研報(bào)告供人們投資參考。該軟件主要面向的群體是想體驗(yàn)炒股并且毫無(wú)經(jīng)驗(yàn)的人群。模擬炒股中提供了買、賣、撤單3個(gè)模塊,讓用戶通過(guò)仿真模擬交易,學(xué)習(xí)如何進(jìn)行擇股、投資組合等。
1 開發(fā)環(huán)境
該應(yīng)用軟件使用的開發(fā)工具為Xcode 5.1,開發(fā)語(yǔ)言為Objective-C[2]。目前Xcode已更新到6.1版本,在該應(yīng)用中主要使用Xcode 5.1進(jìn)行開發(fā),并在后續(xù)的更新和維護(hù)中采用Xcode 6.1。當(dāng)下市場(chǎng)上比較流行的iOS應(yīng)用開發(fā)語(yǔ)言是OC和Swift,但由于Swift不太穩(wěn)定,有很多語(yǔ)言規(guī)范還在不斷完善中,所以該軟件應(yīng)用主要采用Objective-C語(yǔ)言進(jìn)行編碼開發(fā)。該軟件主要使用了以下幾種第三方框架:①AFNetworking:一個(gè)輕量級(jí)的網(wǎng)絡(luò)請(qǐng)求api類庫(kù);②CorePlot:開源矢量圖形庫(kù);③GDataXMLNode:解析xml數(shù)據(jù)的類庫(kù);④MJRefresh:可進(jìn)行數(shù)據(jù)刷新和加載;⑤SDWebImage:提供圖片異步緩存的機(jī)制;⑥ShareSDK:新浪微博登錄、分享;⑦XCMultiSortTableView:多級(jí)表格;⑧XGSDK:騰訊信鴿遠(yuǎn)程推送。
2 需求分析
根據(jù)系統(tǒng)功能劃分,該軟件的主要需求描述如下:①自選股模塊:該功能為基本功能,上海證券交易所和深圳證券交易所的股票總數(shù)超過(guò)3 000只,用戶可根據(jù)自己的選擇偏好添加關(guān)注的股票,查看自選股相關(guān)信息,同時(shí)根據(jù)關(guān)注度不同調(diào)整對(duì)自選股的排序等;②大盤指數(shù)模塊:大盤指數(shù)是股票交易的一個(gè)參考,在選擇股票交易時(shí),可以關(guān)注該股所在行業(yè)或板塊的漲跌幅。同時(shí),對(duì)于偏好交易漲?;虻9傻挠脩簦梢噪S時(shí)關(guān)注其中的漲停榜和跌停榜,并能在漲停分析中查看漲停原因及相關(guān)概念,以便能夠在相關(guān)概念中發(fā)掘低價(jià)股,逢低買進(jìn);③我的賬戶模塊:在模擬交易中,“我的賬戶”占有重要地位。用戶所有的交易信息均能在“我的賬戶”中查看到,并且能夠清晰地看到當(dāng)前持倉(cāng)的盈虧以及當(dāng)前資產(chǎn)的構(gòu)成情況等;④模擬交易模塊:模擬交易模塊為該應(yīng)用的主要模塊,用戶通過(guò)該模塊進(jìn)行模擬買賣交易及撤單,同時(shí)可以查看當(dāng)日交割單等信息;⑤決策模塊:該功能通過(guò)篩選各大機(jī)構(gòu)的分析報(bào)告,給予用戶更多投資信息,使用戶能夠清晰地了解當(dāng)前投資機(jī)構(gòu)的動(dòng)向,把握市場(chǎng)熱門股;⑥股市資訊模塊:該模塊有新聞和直播兩大類,用戶通過(guò)該模塊能夠?qū)崟r(shí)關(guān)注股市動(dòng)態(tài),獲得第一手股市訊息,把握出手時(shí)機(jī);⑦設(shè)置模塊:用戶根據(jù)自身行為偏好、相關(guān)網(wǎng)絡(luò)環(huán)境的變化等進(jìn)行個(gè)性化設(shè)置,包括行情刷新頻率、漲跌顏色、主題等。
3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)功能架構(gòu)
該系統(tǒng)主要由自選股、大盤指數(shù)、我的賬戶、模擬交易、決策、股票資訊、設(shè)置等模塊組成(見圖1)。
(1)自選股模塊。用戶可以自定義添加關(guān)注的股票,并查看股票相關(guān)信息。具體功能有:①添加、刪除自選股;②按當(dāng)前價(jià)格、漲跌幅排序;③快速下單交易:快買、快賣、快撤;④查看該股的個(gè)股新聞和該股所屬的行業(yè)新聞;⑤論股:實(shí)時(shí)更新該股的最新帖子數(shù)據(jù);⑥分享功能:支持新浪微博、微信好友、微信朋友圈、短信等平臺(tái)分享。
(2)大盤指數(shù)模塊。提供市場(chǎng)的主要指數(shù)信息及熱門板塊等。具體功能有:①查看各個(gè)市場(chǎng)的主要指數(shù),包括:上證指數(shù)、深證指數(shù)、道瓊斯指數(shù)、納斯達(dá)克指數(shù)、恒生指數(shù)、日經(jīng)指數(shù)、臺(tái)灣加權(quán)、新加坡等主要指數(shù);②漲停分析:分析漲停榜中的股票漲停原因,以及該股所屬板塊或相關(guān)概念等。
(3)我的賬戶模塊。具體功能有:①我的賬戶:查看當(dāng)前資產(chǎn)狀況;②我的持倉(cāng):查看當(dāng)前購(gòu)買的股票市值;③投資收益:查看賬戶盈虧情況,以及當(dāng)前購(gòu)買股票的盈虧;④交易記錄:可通過(guò)時(shí)間段查詢交易記錄。
(4)模擬委托交易模塊。模擬市場(chǎng)進(jìn)行交易,可以進(jìn)行買入、賣出、撤單,以及查看我的持倉(cāng)、當(dāng)日委托、當(dāng)日成交、查詢資金、資金明細(xì)、股東資料等。具體功能有:①買入:輸入購(gòu)買的股票代碼時(shí),可自動(dòng)填充該股所有信息,并結(jié)合模擬賬戶計(jì)算出可委托數(shù)量;②賣出:結(jié)合模擬賬戶,自動(dòng)填充可賣數(shù)量;③撤單:買進(jìn)股票時(shí),競(jìng)賣價(jià)大于委托價(jià)格時(shí),可撤單,即取消買進(jìn);賣出股票時(shí),競(jìng)買價(jià)小于委托價(jià)格時(shí),可撤單,即取消賣出;④我的持倉(cāng):用戶可查看當(dāng)前賬戶買進(jìn)的所有股票的余額、可用余額、凍結(jié)數(shù)量、市價(jià)、成本、盈虧值、市值、股票代碼、市場(chǎng)類別等信息;⑤查詢資金:快捷查詢賬戶的幣種類別、余額、可用資金、凍結(jié)資金、股票、資產(chǎn)等信息;⑥資金明細(xì):查詢所有交易中的資金動(dòng)向等。
(5)決策模塊。具體功能有:①個(gè)股報(bào)告:提供機(jī)構(gòu)對(duì)某些個(gè)股的評(píng)級(jí)分析和投資指導(dǎo)意見等;②行業(yè)報(bào)告:提供機(jī)構(gòu)對(duì)行業(yè)的評(píng)測(cè)分析報(bào)告;③機(jī)構(gòu)晨報(bào):投資機(jī)構(gòu)每日推薦個(gè)股;④策略報(bào)告:投資機(jī)構(gòu)投資策略建議。
(6)股市資訊模塊。該模塊通過(guò)以下6個(gè)部分呈現(xiàn)股市重要信息:①股市要聞;②滾動(dòng)新聞;③投資機(jī)會(huì);④自選股新聞;⑤更多;⑥股市直播。
(7)設(shè)置模塊。具體功能有:①行情刷新頻率設(shè)置:用戶可分別設(shè)置在2G/3G/4G和WiFi下數(shù)據(jù)刷新的頻率。設(shè)置可選項(xiàng)包括:非WiFi網(wǎng)絡(luò)環(huán)境(不刷新、5秒、15秒、30秒和60秒)、WiFi網(wǎng)絡(luò)環(huán)境(不刷新、5秒),默認(rèn)均為不刷新;②顯示設(shè)置:用戶可根據(jù)自身喜好及習(xí)慣,進(jìn)行顯示設(shè)置,設(shè)置選項(xiàng)有:紅漲綠跌、綠漲紅跌。默認(rèn)為紅漲綠跌;③清除緩存:緩存中的數(shù)據(jù)來(lái)源主要是走勢(shì)圖、K線圖及微博登陸等。
3.3 數(shù)據(jù)抓取與解析
應(yīng)用中的數(shù)據(jù)主要來(lái)源于同花順、新浪股票、和訊股票、自選股(騰訊)、雅虎等,這些數(shù)據(jù)來(lái)源返回的數(shù)據(jù)類型、格式也截然不同。應(yīng)用中數(shù)據(jù)的抓包在Mac環(huán)境下使用的工具是paros。解析思路如下:①將返回的數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換,否則會(huì)出現(xiàn)亂碼的情況;②通過(guò)分號(hào)“;”判斷請(qǐng)求股票的個(gè)數(shù),并通過(guò)分號(hào)將其隔開;③去掉多余的返回?cái)?shù)據(jù)“var hq_str_”;④將等號(hào)“=”轉(zhuǎn)換成逗號(hào)“,”,并通過(guò)逗號(hào)再次將個(gè)股中的數(shù)據(jù)分割;⑤最后將分割的數(shù)據(jù)逐個(gè)存儲(chǔ)到模型中。
3.4 數(shù)據(jù)庫(kù)
在軟件中將相關(guān)數(shù)據(jù)進(jìn)行存儲(chǔ),可以提高用戶的訪問(wèn)查詢速度。表1為該軟件中用到的一張數(shù)據(jù)存儲(chǔ)表,其結(jié)構(gòu)包括屬性、類型以及相應(yīng)說(shuō)明。
3.5 數(shù)據(jù)安全
在該軟件的開發(fā)過(guò)程中,為了保證數(shù)據(jù)安全,采取了MD5加密。MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于確保信息傳輸完整一致[3],是計(jì)算機(jī)廣泛使用的雜湊算法之一。在該應(yīng)用中,對(duì)用戶的信息進(jìn)行加密后存儲(chǔ)。MD5加密算法最終產(chǎn)生128bit固定長(zhǎng)度的值,而在實(shí)際的應(yīng)用開發(fā)中,通常以16進(jìn)制輸出,即產(chǎn)生32位16進(jìn)制的字符。在隨機(jī)產(chǎn)生的字符中大小寫混雜在一起,之后可對(duì)其進(jìn)行二次處理,以產(chǎn)生32位大寫或小寫字符串。
4 系統(tǒng)測(cè)試
Activity Monitor會(huì)監(jiān)控測(cè)試對(duì)象的運(yùn)行環(huán)境,記錄CPU、內(nèi)存和I/O的一些指標(biāo),用于對(duì)比分析。在監(jiān)控運(yùn)行中可以得到當(dāng)前時(shí)刻的CPU占用率、實(shí)際內(nèi)存和虛擬內(nèi)存等信息。同時(shí)使用Activity Monitor可以進(jìn)行多次運(yùn)行結(jié)果的對(duì)比,以此來(lái)對(duì)比當(dāng)前運(yùn)行結(jié)果和之前運(yùn)行結(jié)果的差異。測(cè)試結(jié)果如圖2所示:在1′20的測(cè)試時(shí)間內(nèi),其CPU占用率為15%,占用時(shí)長(zhǎng)為1′06。
5 結(jié)語(yǔ)
iOS手機(jī)客戶端炒股軟件主要針對(duì)剛接觸股市或準(zhǔn)備接觸股市的特定群體,在軟件中模擬炒股,可有效地幫助其迅速了解真實(shí)的股票交易流程,并增加選股交易經(jīng)驗(yàn)。在后續(xù)的迭代開發(fā)中,將進(jìn)一步完善模擬交易的功能,使之與真實(shí)交易更加吻合。
參考文獻(xiàn):
[1] 程文靜,劉燕美,稂光雨.基于iOS客戶端的酒店管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2014(8):6668.
[2] 北鼻.iOS開發(fā)者成長(zhǎng)之路——入門準(zhǔn)備篇[J].計(jì)算機(jī)應(yīng)用文摘,2013(3):6668.
[3] 陳瑋.MD5加密原理及安全性分析[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2007,4(19):8788.
[4] 劉磊,張賀,田家赫.基于IOS的校園OA管理系統(tǒng)設(shè)計(jì)[J].軟件導(dǎo)刊,2015,14(1):113114.
責(zé)任編輯(責(zé)任編輯:黃 ?。?