版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、融資融券或QFII系統(tǒng)建設(shè)思路 (廉價(jià)版)廉價(jià)融資融券或 QFII系統(tǒng)建設(shè)思路1.題記62. 總體構(gòu)想63. 搭建思路73.1總思路73.2平臺(tái)定位84. 具體功能94.1系統(tǒng)特點(diǎn)94.2系統(tǒng)功能114.2.1總后臺(tái)功能 客戶管理代理商管理 留倉(cāng)股票查詢(xún)交割清單查詢(xún) 股票設(shè)置財(cái)務(wù)管理總賬查詢(xún)資金變動(dòng)查詢(xún)管理員設(shè)置144.2.2 PC代理商功能用戶管理 交割清單 出入金記錄 154.
2、2.2.4總賬查詢(xún)16423 PC客戶端功能16423.1股票查詢(xún)16423.2股票交易16423.3資金轉(zhuǎn)賬17423.4留倉(cāng)查詢(xún)18423.5交割單查詢(xún)18423.6其他功能184.3.4安卓客戶端184.2.5 IOS 客戶端184.2.6 商城184.2.7股價(jià)監(jiān)聽(tīng)程序自動(dòng)監(jiān)聽(tīng)股價(jià)采集歷史股價(jià)數(shù)據(jù) 根據(jù)股價(jià)波動(dòng)自動(dòng)平倉(cāng).自動(dòng)收取過(guò)夜費(fèi)超過(guò)六個(gè)工作日自動(dòng)售出股票205. 技術(shù)要點(diǎn)205.1開(kāi)發(fā)技術(shù)和語(yǔ)言205.2服務(wù)端接口技術(shù) 205.3數(shù)據(jù)庫(kù)技術(shù)255.4高并發(fā)技術(shù)285.5轉(zhuǎn)賬接口 305.6股
3、票接口 325.7自動(dòng)處理技術(shù)355.8分頁(yè)技術(shù)355.9手機(jī)端開(kāi)發(fā)技術(shù)411. 題記把看似復(fù)雜的事情想透徹了,就會(huì)變得很簡(jiǎn)單。我沒(méi)事喜歡將一件事情研究 透徹,證券市場(chǎng)平臺(tái)是我突發(fā)靈感,感覺(jué)一向神秘的證券平臺(tái)或許門(mén)檻沒(méi)有這么 高,如是開(kāi)始著手研究,我研究證券平臺(tái)有三個(gè)目的:1. 證券平臺(tái)一向神秘,沒(méi)有工作經(jīng)驗(yàn)的人很難窺其真容,這對(duì)我是一個(gè)誘惑, 我想從網(wǎng)上搜集資料,整理一下。2. 一直認(rèn)為技術(shù)大數(shù)據(jù)的分析可以降低投資風(fēng)險(xiǎn),如果擁有這個(gè)大數(shù)據(jù),加上先進(jìn)的分析模型,肯定可以大幅降低理財(cái)風(fēng)險(xiǎn),形成群狼效應(yīng)。3. 互聯(lián)網(wǎng)資源豐富,依靠廉價(jià)的互聯(lián)網(wǎng)自建為大家服務(wù)是我的愛(ài)好。歷時(shí)接近三個(gè)月的測(cè)試,已經(jīng)形成
4、一部分成果:一種小型、實(shí)用的 A股融 資融券平臺(tái)搭建思路。可以很少量的投資就可以窺探證券動(dòng)向, 并可以對(duì)外提供 一些增值服務(wù)。2. 總體構(gòu)想、代理L客J*總部.代理J廣11客J系統(tǒng)是一個(gè)小規(guī)模的生態(tài),有三種用戶:總部、代理分部和客戶??偛控?fù) 責(zé)運(yùn)維整個(gè)系統(tǒng),包括股票設(shè)置、用戶賬號(hào)管理、虛擬資金統(tǒng)計(jì)分析、真實(shí)資金管理等;代理商可以依靠這個(gè)平臺(tái)搭建小型的運(yùn)營(yíng)生態(tài),包括開(kāi)設(shè)自己下面 的客戶賬號(hào)、歸屬自己的資金分析、和總部進(jìn)行真實(shí)資金結(jié)算等;客戶就是股 民了,可以在平臺(tái)開(kāi)倉(cāng)、平倉(cāng)、資金轉(zhuǎn)賬等等。平臺(tái)建成之后,“總部”可以按照自己的“運(yùn)作”特點(diǎn),精選一些股票,在 平臺(tái)設(shè)置一下,客戶就可以放心的按照我們的
5、“指導(dǎo)”夠買(mǎi)了。總部貢獻(xiàn)技巧, 代理商做大市場(chǎng),客戶分享收益,一個(gè)良好的生態(tài)。3.搭建思路3.1總思路總后臺(tái)服務(wù)端股價(jià)監(jiān)聽(tīng)器有人可能會(huì)說(shuō),你個(gè)大騙子,不是說(shuō)好的廉價(jià)平臺(tái)嗎?則么搞這 么多東東?道理很簡(jiǎn)單:您誤會(huì)我了。據(jù)我了解,一套成熟的融資融 券系統(tǒng),造價(jià)在1000多萬(wàn)甚至幾千萬(wàn),而且是在中國(guó)的價(jià)格,現(xiàn)在 美國(guó)的很多系統(tǒng)都交給中國(guó)開(kāi)發(fā),因?yàn)橹袊?guó)開(kāi)發(fā)便宜。這樣的整個(gè)系 統(tǒng)互相依托運(yùn)作,筆者估計(jì)大概僅需要 30-60萬(wàn),是不是很“廉價(jià)”呢?那么我們看看每一個(gè)系統(tǒng)都是干什么的吧?3.2平臺(tái)定位服務(wù)端整個(gè)系統(tǒng)的中心,位于我們的中心機(jī)房為各個(gè)系統(tǒng)提供網(wǎng)絡(luò)服務(wù), 讓我們的總后臺(tái)、代理端和客戶端都能在它的服
6、務(wù)下互相協(xié)作??偤笈_(tái)顧名思義是整個(gè)系統(tǒng)的最高權(quán)力機(jī)構(gòu),負(fù)責(zé)管理整個(gè)系統(tǒng)的運(yùn)作,這個(gè)程序運(yùn)行在運(yùn)行這個(gè)平臺(tái)的個(gè)人電腦上面,依靠服務(wù)端進(jìn)行設(shè)置,整個(gè)系統(tǒng)在這個(gè)總后臺(tái)的指導(dǎo)下運(yùn)作。PC代理端代理端負(fù)責(zé)發(fā)展客戶,給自己的客戶開(kāi)戶,開(kāi)戶以后客戶端就可 以立即使用客戶端了,但這個(gè)時(shí)候是不能立即開(kāi)倉(cāng)的,需要客戶自己 登錄到PC客戶端進(jìn)行充值,有了資金以后客戶可以開(kāi)倉(cāng)了??蛻舨?作所收取的費(fèi)用,代理端可以查看自己的利潤(rùn)。PC客戶端PC客戶端提供給客戶使用,客戶進(jìn)行股票查詢(xún)、開(kāi)倉(cāng)、留倉(cāng)股 票查詢(xún)、平倉(cāng)、資金轉(zhuǎn)賬等操作。An droid客戶端功能參照PC客戶端,去掉了資金轉(zhuǎn)賬功能,因?yàn)橐苿?dòng)支付開(kāi)發(fā) 相對(duì)麻煩,我沒(méi)
7、有做相關(guān)研究。IOS客戶端功能參照PC客戶端,去掉了資金轉(zhuǎn)賬功能,因?yàn)橐苿?dòng)支付開(kāi)發(fā) 相對(duì)麻煩,我沒(méi)有做相關(guān)研究。監(jiān)聽(tīng)器這也是系統(tǒng)的重點(diǎn)之一。首先因?yàn)槲覀冋麄€(gè)系統(tǒng)需要實(shí)時(shí)股價(jià)作 為支撐,這個(gè)監(jiān)聽(tīng)器就負(fù)責(zé)從網(wǎng)上拉取最新股價(jià)信息放到我們系統(tǒng), 供開(kāi)倉(cāng)、平倉(cāng)和風(fēng)險(xiǎn)控制等操作;其次我們系統(tǒng)作為指導(dǎo)性強(qiáng)的系統(tǒng), 應(yīng)該指導(dǎo)用戶操作,包括是否當(dāng)日留倉(cāng)、股價(jià)波動(dòng)到一定幅度自動(dòng)平 倉(cāng)等等,因?yàn)檫@些操作需要我們的客戶端不打開(kāi)也能夠做到的。商城之所以要建立一個(gè)商城是因?yàn)槲覀兊钠脚_(tái)資金賬號(hào),因?yàn)檫@樣的 系統(tǒng),即使是玩票,估計(jì)也很難申請(qǐng)到,但是商城就比較容易申請(qǐng)了, 建議公司開(kāi)通一個(gè)商城,利用商城的資金賬號(hào)進(jìn)行模擬交易。
8、4.具體功能終于到了重點(diǎn),這樣一個(gè)系統(tǒng)是怎么實(shí)現(xiàn)的呢?我們先分析系統(tǒng)的特點(diǎn)和特色,然后根據(jù)這個(gè)脈絡(luò)繼續(xù)向下分析。4.1系統(tǒng)特點(diǎn)一種獨(dú)立的系統(tǒng)它不依靠大型券商系統(tǒng),形成自己的交易生態(tài),所有交易規(guī)則自己來(lái)定獨(dú)立的用戶體系賬號(hào)管理是獨(dú)立的,系統(tǒng)和第三方支付平臺(tái)對(duì)接實(shí)現(xiàn)資金轉(zhuǎn)賬高價(jià)值用戶服務(wù)T+0包括優(yōu)選股票、開(kāi)倉(cāng)和平倉(cāng)風(fēng)險(xiǎn)控制、股價(jià)波動(dòng)風(fēng)險(xiǎn)控制、 等服務(wù)項(xiàng)目。雙向支持開(kāi)多倉(cāng)和開(kāi)空倉(cāng)。透明靈活的計(jì)費(fèi)計(jì)費(fèi)是運(yùn)營(yíng)的基礎(chǔ),系統(tǒng)應(yīng)該計(jì)費(fèi)透明而且合理才更有競(jìng)爭(zhēng)力。杠桿可以放大可用資金,用戶以小博大??焖龠@是所有系統(tǒng)的共性了,股價(jià)瞬息萬(wàn)變,股民肯定要求根據(jù)最新 的股價(jià)操作,我們不是大券商,股價(jià)數(shù)據(jù)比大券商言辭1-
9、2秒還是很 靠譜的吧。廣泛支持滬深股票、股指期貨、貴金屬交易。安全可靠整個(gè)系統(tǒng)并不是基于網(wǎng)頁(yè)實(shí)現(xiàn),而是基于客戶端服務(wù)器技術(shù),客 戶、代理商、總后臺(tái)的功能均通過(guò)安裝包安裝應(yīng)用程序?qū)崿F(xiàn),和服務(wù) 器通信快速,安全可靠,整個(gè)實(shí)現(xiàn)和大券商客戶端相同。4.2系統(tǒng)功能4.2.1總后臺(tái)功能融資融券總后4- 客戶管代 理 冏 -管留 倉(cāng) 股票交割單、1股票設(shè)置4財(cái)務(wù)管 %r1總賬查1資 金 變 動(dòng)I管理 員 /I客戶管理客戶管理負(fù)責(zé)對(duì)所有客戶賬號(hào)進(jìn)行管理,主要功能有客戶列表、客戶統(tǒng)計(jì)、資金調(diào)整、賬號(hào)凍結(jié)和解凍、客戶信息修改等??蛻袅斜盹@示所有客戶的信息,可以根據(jù)客戶姓名、賬號(hào)、所屬代理商、 注冊(cè)時(shí)
10、間來(lái)查詢(xún)某些客戶信息??蛻艚y(tǒng)計(jì)可以按照區(qū)域、代理商、注冊(cè)時(shí)段、開(kāi)戶行來(lái)統(tǒng)計(jì)客戶分布情況。資金調(diào)整修改某一個(gè)客戶的賬戶資金,該功能是為了系統(tǒng)機(jī)動(dòng)處理某些特殊賬 戶資金的預(yù)留功能。賬號(hào)凍結(jié)、解凍 凍結(jié)一個(gè)客戶,凍結(jié)后該客戶將不能使用客戶端功能,包括交易。解 凍是指恢復(fù)一個(gè)客戶賬號(hào)的正常狀態(tài)??蛻粜畔⑿薷男薷目蛻舻男畔?,包括銀行賬號(hào)、初始化密碼等。421.2 代理商管理該模塊負(fù)責(zé)代理商所有管理功能,開(kāi)設(shè)代理商賬號(hào)、凍結(jié)代理商賬號(hào)、 代理商資金結(jié)算等。開(kāi)設(shè)代理商賬號(hào)開(kāi)設(shè)一個(gè)代理商賬號(hào),將可以使用該賬號(hào)登錄 PC代理端。凍結(jié)代理商賬號(hào)凍結(jié)代理商賬號(hào)的功能是指關(guān)閉該代理商的管理功能,凍結(jié)以后該代理商無(wú)法開(kāi)
11、設(shè)賬號(hào),其下面的客戶仍然可以使用客戶端交易。代理商資金結(jié)算平臺(tái)結(jié)算給代理商利潤(rùn)是分期結(jié)算的,平臺(tái)提供簡(jiǎn)單的結(jié)算功能即 可:平臺(tái)實(shí)時(shí)計(jì)算應(yīng)計(jì)算的金額,并可以根據(jù)時(shí)間查詢(xún)應(yīng)結(jié)算總額, 總后臺(tái)不提供網(wǎng)銀轉(zhuǎn)賬結(jié)算功能,通過(guò)網(wǎng)銀直接轉(zhuǎn)賬或線下方式結(jié) 算,完成以后到平臺(tái)標(biāo)記結(jié)算金額,下次結(jié)算的時(shí)候系統(tǒng)統(tǒng)計(jì)待結(jié)算 金額(扣除以前結(jié)算的金額),直接結(jié)算即可。 留倉(cāng)股票查詢(xún)查詢(xún)所有客戶當(dāng)前持倉(cāng)的股票信息,包括客戶信息、股票信息、購(gòu)買(mǎi)時(shí)間、當(dāng)前盈虧、各種費(fèi)用收取和待收取情況等,可以強(qiáng)平客戶 的持倉(cāng)股票,強(qiáng)平客戶持倉(cāng)股票是指在任意時(shí)間點(diǎn), 后臺(tái)可以指定一 個(gè)價(jià)格強(qiáng)行將該股票售出。421.4 交割清單查
12、詢(xún)查詢(xún)客戶已經(jīng)平倉(cāng)的股票信息,包括客戶信息、股票信息、購(gòu)買(mǎi) 時(shí)的股票價(jià)格,售出時(shí)的股票價(jià)格,盈利情況,平臺(tái)費(fèi)用收取情況等 信息。421.5股票設(shè)置設(shè)置系統(tǒng)支持操作的股票,在此登記的股票,在客戶端才可以進(jìn) 行交易。功能包括添加股票信息、刪除股票信息、快速導(dǎo)入多支股票 信息、導(dǎo)出股票信息、設(shè)置是否允許開(kāi)多倉(cāng)或開(kāi)空倉(cāng)、是否禁止交易、 是否啟用風(fēng)險(xiǎn)控制。股票設(shè)置的信息會(huì)立即體現(xiàn)在每一個(gè)客戶的客戶端,當(dāng)禁止交易 或者修改了股票信息,客戶端要立即禁止相關(guān)操作或顯示最新內(nèi)容。股票設(shè)置的基本信息僅僅包括股票代碼和股票名稱(chēng)即可,信息一 定要和A股一定要一致,否則后面提到的獲取股價(jià)功能將無(wú)法實(shí)現(xiàn)。
13、財(cái)務(wù)管理該功能實(shí)際值出入金的管理,用于財(cái)務(wù)查看客戶入金的明細(xì)情況、按月統(tǒng)計(jì)入金報(bào)表,財(cái)務(wù)出金轉(zhuǎn)賬登記,出金匯總等。入金管理客戶轉(zhuǎn)賬到平臺(tái)稱(chēng)為入金,系統(tǒng)可以開(kāi)通資金賬號(hào), PC客戶端 直接調(diào)用網(wǎng)銀功能實(shí)現(xiàn)立即轉(zhuǎn)賬,平臺(tái)可以收到轉(zhuǎn)賬成功后的各種信 息。入金管理是指統(tǒng)計(jì)客戶轉(zhuǎn)賬到平臺(tái)的時(shí)間、資金情況等信息。出金管理平臺(tái)轉(zhuǎn)賬給客戶稱(chēng)為出金。出金不通過(guò)平臺(tái),客戶從PC客戶端發(fā)起出金請(qǐng)求,平臺(tái)審核通過(guò)以后,在當(dāng)日將資金通過(guò)其他平臺(tái)轉(zhuǎn)賬, 系統(tǒng)只需登記即可,登記完成后,用戶的可用資金將減少。421.7 總賬查詢(xún)查詢(xún)平臺(tái)目前的資金情況、客戶的收益情況、平臺(tái)的收益情況、 客戶預(yù)期收益情況、平臺(tái)預(yù)期收益情況、代理
14、商收益和預(yù)期收益情況 等信息。 資金變動(dòng)查詢(xún)用于查看客戶的資金變動(dòng)歷史,包括客戶的各種操作引發(fā)的資金 變動(dòng):入金、出金、開(kāi)倉(cāng)、平倉(cāng)、后臺(tái)強(qiáng)制平倉(cāng)、系統(tǒng)自動(dòng)平倉(cāng)、后 臺(tái)修改資金等。 管理員設(shè)置包括開(kāi)通管理員賬號(hào)、修改管理員賬號(hào)等功能。4.2.2 PC代理商功能PC代理週端PC代理端用父V 出總戶割入賬-管清L金PC代理端提供給代理商使用,包括代理商管理自己的客戶、交 割清單、出入金記錄、總賬查詢(xún)422.1用戶管理用戶管理包括客戶管理負(fù)責(zé)對(duì)所有客戶賬號(hào)進(jìn)行管理,主要功能 有客戶列表、客戶統(tǒng)計(jì)、資金調(diào)整、賬號(hào)凍結(jié)和解凍、客戶信息修改 等??蛻袅斜盹@示所有客戶的信息,可以根
15、據(jù)客戶姓名、賬號(hào)、所屬代理商、 注冊(cè)時(shí)間來(lái)查詢(xún)某些客戶信息。賬號(hào)凍結(jié)、解凍凍結(jié)一個(gè)客戶,凍結(jié)后該客戶將不能使用客戶端功能,包括交易。 解凍是指恢復(fù)一個(gè)客戶賬號(hào)的正常狀態(tài)。客戶信息修改修改客戶的信息,包括銀行賬號(hào)、初始化密碼等。 交割清單查詢(xún)所有客戶當(dāng)前持倉(cāng)的股票信息,包括客戶信息、股票信息、 購(gòu)買(mǎi)時(shí)間、當(dāng)前盈虧、各種費(fèi)用收取和待收取情況等。 出入金記錄該功能實(shí)際值出入金的管理,用于財(cái)務(wù)查看客戶入金的明細(xì)情 況、按月統(tǒng)計(jì)入金報(bào)表,財(cái)務(wù)出金轉(zhuǎn)賬登記,出金匯總等。入金管理統(tǒng)計(jì)該代理商的客戶轉(zhuǎn)賬到平臺(tái)的時(shí)間、資金情況等信息。出金管理統(tǒng)計(jì)該代理商的客戶從平臺(tái)提取資金的時(shí)間、資
16、金情況等信息。422.4 總賬查詢(xún)查詢(xún)平臺(tái)目前的資金情況、客戶的收益情況、平臺(tái)的收益情況、 客戶預(yù)期收益情況、平臺(tái)預(yù)期收益情況、代理商收益和預(yù)期收益情況 等信息。4.2.3 PC客戶端功能PC客戶端是客戶進(jìn)行股票交易的客戶端軟件。包括股票查詢(xún)、股 票交易、資金轉(zhuǎn)賬、修改密碼、留倉(cāng)查詢(xún)、交割單查詢(xún)等功能。PC客戶端 股票查詢(xún)股票查詢(xún)功能是指為客戶端提供可以交易的股票列表,用戶可以按照股票代碼和股票名稱(chēng)查詢(xún)某一只股票。股票查詢(xún)所包括的信息包括股票代碼、股票名稱(chēng)、是否允許多開(kāi)、是否允許空開(kāi)、是否禁止交易等。 股票交易股票交易是指進(jìn)行股票開(kāi)倉(cāng)和交割兩類(lèi)操作開(kāi)倉(cāng)開(kāi)倉(cāng)是指用戶購(gòu)
17、入某一只股票,包括股票查詢(xún)、購(gòu)買(mǎi)和刷新留倉(cāng) 四個(gè)環(huán)節(jié)。股票查詢(xún)負(fù)責(zé)從服務(wù)器查詢(xún)股票信息,包括獲取股票代碼、 股票名稱(chēng)、多空開(kāi)倉(cāng)限制、是否禁止交易、根據(jù)開(kāi)盤(pán)停盤(pán)時(shí)間停止交 易、根據(jù)節(jié)假日停止交易、根據(jù)股價(jià)波動(dòng)停止交易、查詢(xún)最新的股價(jià) 信息、顯示平臺(tái)規(guī)定的交易價(jià)格等信息。購(gòu)買(mǎi)包括對(duì)用戶輸入的手?jǐn)?shù) 進(jìn)行判斷是否允許交易,執(zhí)行購(gòu)買(mǎi)同時(shí)扣除用戶的資金。刷新留倉(cāng)是 指刷新客戶端的留倉(cāng)信息,看到自己的開(kāi)倉(cāng)成功,開(kāi)倉(cāng)后30分鐘不允許交易,防止客戶頻繁刷單。開(kāi)倉(cāng)分為開(kāi)多倉(cāng)和開(kāi)空倉(cāng),開(kāi)多倉(cāng)是指股價(jià)漲的時(shí)候盈利, 開(kāi)空 倉(cāng)是指股價(jià)跌的時(shí)候盈利。交割交割是指出售一只股票交割的交割的操作包括出售股票和返還資 金兩部分。
18、423.3 資金轉(zhuǎn)賬資金轉(zhuǎn)賬包括銀證轉(zhuǎn)賬和證銀轉(zhuǎn)賬。銀證轉(zhuǎn)賬銀證轉(zhuǎn)賬是指從客戶的銀行賬號(hào)到平臺(tái)的資金賬號(hào)轉(zhuǎn)賬,客戶發(fā) 起銀證轉(zhuǎn)賬以后,系統(tǒng)調(diào)用平臺(tái)開(kāi)通的網(wǎng)銀頁(yè)面,用戶輸入轉(zhuǎn)賬的金 額,將客戶的銀行資金轉(zhuǎn)入到平臺(tái),轉(zhuǎn)賬成功后用戶的信用資金立即 增加。證銀轉(zhuǎn)賬證銀轉(zhuǎn)賬是指平臺(tái)資金轉(zhuǎn)入到客戶的銀行賬號(hào),用戶從客戶端發(fā) 起證銀轉(zhuǎn)賬,后臺(tái)收到轉(zhuǎn)賬請(qǐng)求以后,財(cái)務(wù)通過(guò)其他渠道轉(zhuǎn)給用戶資 金,轉(zhuǎn)出以后在系統(tǒng)中確認(rèn)訂單完成,客戶的使用資金降低。423.4 留倉(cāng)查詢(xún)留倉(cāng)查詢(xún)用于查詢(xún)留倉(cāng)信息,所查詢(xún)信息包括自己所留倉(cāng)的股票, 信息包括股票基本信息、當(dāng)前股價(jià)、當(dāng)前盈虧、費(fèi)用收取情況、即將 收取的費(fèi)用情況、是否允許平倉(cāng)
19、等??梢詫?duì)留倉(cāng)股票出倉(cāng)。4.235 交割單查詢(xún)交割單查詢(xún)用于查詢(xún)已經(jīng)交割的股票情況,包括股票基本信息、 交割盈虧情況、費(fèi)用收取情況等信息。 其他功能包括修改密碼、鎖定客戶端等功能。4.3.4安卓客戶端參見(jiàn)PC客戶端功能。比客戶端少了資金轉(zhuǎn)賬功能。4.2.5 IOS 客戶端參見(jiàn)PC客戶端功能。比客戶端少了資金轉(zhuǎn)賬功能。4.2.6 商城商城負(fù)責(zé)在申請(qǐng)平臺(tái)的資金賬號(hào)的時(shí)候使用,用戶銀證轉(zhuǎn)賬的時(shí) 候也可以使用商城的商品名稱(chēng)進(jìn)行交易,這里沒(méi)有什么技術(shù)含量。 4.2.7股價(jià)監(jiān)聽(tīng)程序股價(jià)監(jiān)聽(tīng)程序負(fù)責(zé)從互聯(lián)網(wǎng)拉取最新的股價(jià)信息,供平臺(tái)所用, 并且提供平臺(tái)服務(wù)端自動(dòng)化處理的功能427.1自動(dòng)監(jiān)聽(tīng)股
20、價(jià)自動(dòng)監(jiān)聽(tīng)股價(jià)的功能是根據(jù)系統(tǒng)設(shè)定的股價(jià)范圍,從互聯(lián)網(wǎng)拉取股價(jià),提供給系統(tǒng)使用。我們優(yōu)先選用新浪財(cái)經(jīng)的股價(jià)接口,因?yàn)檫@ 個(gè)接口包含的信息是相當(dāng)齊全的,而且響應(yīng)速度快,非常穩(wěn)定。據(jù)我 測(cè)試2000只股票,獲取時(shí)間最長(zhǎng)2秒,當(dāng)然如果我們的服務(wù)器夠好, 應(yīng)該能做到1秒以?xún)?nèi),這就完全夠我們使用了。采集歷史股價(jià)數(shù)據(jù)前面提到我們希望平臺(tái)具有“分析功能”,根據(jù)股價(jià)波動(dòng)來(lái)分析風(fēng) 險(xiǎn),從而自動(dòng)平倉(cāng)或者自動(dòng)禁止開(kāi)倉(cāng), 這個(gè)新浪接口不能直接幫我們 實(shí)現(xiàn),因?yàn)樗鼪](méi)有查詢(xún)歷史股價(jià)的能力,我們系統(tǒng)可以做一個(gè)補(bǔ)償設(shè) 計(jì),就是每日掃描一次股價(jià)信息,保存在我們系統(tǒng)中,供查詢(xún)使用, 這也是“大數(shù)據(jù)”哦。我們可以采集
21、的信息包括“最近一周的最高價(jià) 波動(dòng)情況”、“近期開(kāi)盤(pán)就漲停情況”,“近期漲停和跌停次數(shù)”等等。 根據(jù)股價(jià)波動(dòng)自動(dòng)平倉(cāng)系統(tǒng)有一個(gè)功能:當(dāng)股價(jià)波動(dòng)到一定幅度以后,系統(tǒng)會(huì)自動(dòng)止損 或者止盈平倉(cāng)。該功能是平臺(tái)自動(dòng)的,因此需要靠監(jiān)聽(tīng)程序來(lái)實(shí)現(xiàn)。 監(jiān)聽(tīng)程序首先遍歷所有留倉(cāng)中的股票, 然后對(duì)比當(dāng)前的股價(jià),如果股 價(jià)波動(dòng)超過(guò)一定的比例,自動(dòng)按照當(dāng)前的股價(jià)出倉(cāng),并且將利潤(rùn)返回 給當(dāng)前賬號(hào)。 自動(dòng)收取過(guò)夜費(fèi)如果平臺(tái)開(kāi)啟收取過(guò)夜費(fèi)的收費(fèi)項(xiàng)目,那么過(guò)夜費(fèi)在第一個(gè)交易日結(jié)束或者第一日收盤(pán)的時(shí)候開(kāi)始自動(dòng)收取。該功能也是系統(tǒng)主動(dòng)主動(dòng)的行為,按照行規(guī),過(guò)夜費(fèi)收取的時(shí)候,如果用戶的賬戶資金不夠,則自
22、動(dòng)出售該股票,將該股票的資金用于過(guò)夜費(fèi),如果股票賣(mài)出以后仍然不夠,則出售其他股票收取。超過(guò)六個(gè)工作日自動(dòng)售出股票如果系統(tǒng)系統(tǒng)中的留倉(cāng)股票超過(guò) 6個(gè)工作日仍未手動(dòng)出倉(cāng),系統(tǒng)將強(qiáng)制自動(dòng)出倉(cāng)。5. 技術(shù)要點(diǎn)既然需求已經(jīng)分析,我們一起看看要完成這樣的系統(tǒng)所需要的技術(shù)。5.1開(kāi)發(fā)技術(shù)和語(yǔ)言前端技術(shù)是為操作本系統(tǒng)的人提供的交互界面開(kāi)發(fā)技術(shù)。包括pc客戶端、代理商客戶端、總后臺(tái)和股價(jià)監(jiān)聽(tīng)系統(tǒng)的界面,考慮數(shù)據(jù)交換的及時(shí)性、系統(tǒng) 安全性和交互體驗(yàn),系統(tǒng)需要采用C/S的架構(gòu),這也是絕大多數(shù)大型券商系統(tǒng)的通用格式。那么我們應(yīng)該采用什么技術(shù)實(shí)現(xiàn)呢?目前主流的服務(wù)端技術(shù)有 java、.net 等,其中ja
23、va不適合做前端開(kāi)發(fā),因此我們應(yīng)該選用.net作為開(kāi)發(fā)語(yǔ)言,前端 采用Winform技術(shù)開(kāi)發(fā),后臺(tái)采用.net WebAPI技術(shù)。Winform研發(fā)所用到的技術(shù)包括控件技術(shù)、排版布局技術(shù),當(dāng)然如果要做得 更好,需要用到自定義控件技術(shù)、多線程預(yù)加載技術(shù)、進(jìn)度條交互技術(shù)。5.2服務(wù)端接口技術(shù)服務(wù)端接口技術(shù)主要是服務(wù)端的處理業(yè)務(wù)邏輯以及和客戶端API對(duì)接的技術(shù),剛講到主要是使用.net WEBAP技術(shù),建議接口采用restful規(guī)范,主要約 束如下:由于系統(tǒng)接口不多,建議只使用 get和post兩類(lèi)接口方式,一般向服 務(wù)端上報(bào)數(shù)據(jù)采用post方式,從服務(wù)端拉取數(shù)據(jù)采用 get方式。服務(wù)端收到客 戶端
24、的請(qǐng)求以后,開(kāi)始進(jìn)行業(yè)務(wù)處理,完畢以后返回?cái)?shù)據(jù),舉例: webAPI首先需要初始化一些參數(shù),對(duì) WebAPIConfig改造一下。 using CacheCow.Server;using Newt on soft.Js on. Serializati on;using System.Linq;using System.Net.Http.Formatting;using System.Web.Http;n amespaceFu ndAPIpublic static class WebApiConfigpublic static void Register( HttpC on figurati o
25、ncon fig)|/去掉json序列化時(shí)的循環(huán)引用var json = con fig.Formatters.Js onF ormatter;json .SerializerSetti ngs.Refere nceLoopHa ndli ng =Newt on soft.Js on.Refere nceLoopHa ndli nggno re;con fig.Formatters .JsonF ormatter.SerializerSett in gs.DateTimeZ on eHa ndli ng =Newt on soft.Js on.DateTimeZ on eHa ndli ng
26、.Utc;|_/去掉XML序列化器con fig.Formatters.Remove(c on fig.Formatters.XmlFormatter);var js onF ormatter =config.Formatters.OfType().First();jsonF ormatter.SerializerSetti ngs.Co ntractResolver =newCamelCasePropertyNamesC on tractResolver ();/服務(wù)端緩存器|GlobalC on figurati on.Con figurati on. MessageHa ndlers.A
27、dd(newCachingHandler (GlobalConfiguration.Configuration);/ Web API 路由con fig.MapHttpAttributeRoutes();con fig.Routes.MapHttpRoute(n ame:DefaultApi,routeTemplate:fstock/v2/api/co ntroller/actio n/id,defaults:n ew id =RouteParameter .Optional );然后在API層進(jìn)行接口代碼編寫(xiě),首先一個(gè)API的代碼文件存放一塊業(yè)務(wù)邏 輯,例如節(jié)假日設(shè)置的 API,我們可以按照
28、如下編寫(xiě):using FundAPI.Models;using FundAPI.Models.vousing FundAPI.Services;using System;using System.Collections.Generic;using System.Web.Http;n amespaceFu ndAPl.C on trollerspublic class SyslogC on trollerApiCo ntroller/獲取一個(gè)客戶在指定日期的操作資金變動(dòng)日志/ vparam n ame=vo/ HttpPost public IHttpActionResultAllSyslogB
29、yCustomerAndDate( DeliveryQueryVO vo)DateTime dtBeg in =DateTime.Parse(vo.beg in date);DateTime dtE nd = DateTime .Parse(vo.e nddate);List ret = new List ();ret.Add(new SyslogService ().GetByCustomerld(vo.uoginname);ret.Add(new Info (獲取成功“);return Ok(ret);/ /獲取該日所有用戶的資金變動(dòng)日志/ / / HttpPost public IHtt
30、pActionResult AllSyslogByDate( DeliveryQueryVO vo) DateTime dtBeg in = DateTime.Parse(vo.beg in date);DateTime dtE nd = DateTime .Parse(vo.e nddate);List ret = new List vobject ();ret.Add(new SyslogService ().GetAIIByDate( dtBegin, dtEnd);ret.Add(new Info (獲取成功“);return Ok(ret);/ /所有客戶的總變動(dòng)日志/ /vretu
31、r nsx/retur ns HttpPost publicIHttpActio nResuItAIISysIog()List vobject ret = new List vobject (); |ret.Add(new SysIogService ().SeIectAII();ret.Add(new Info (獲取成功“);return Ok(ret);在服務(wù)層,我們需要書(shū)寫(xiě)具體的實(shí)現(xiàn)代碼:using FundAPI.commons;using FundAPI.ModeIs;using FundDB;using MongoDB;using System;using System.CoII
32、ections.Generic;using System.Linq;n amespaceFu ndAPl.ServicespubIic cIass SysIogServicepubIic void ADD(SysLog item)using ( FundMongoDBndb = new FundMongoDB)var coIIecti on = mdb.GetCoIIectio n();coIIecti on.ln sert(item);IEnumerable SelectAII()using ( FundMongoDBndb = new FundMongoDB)var collecti on
33、 = mdb.GetCollectio n();var query = from deliveryStock in collection.Linq() select deliveryStock;IEnumerable deliveryStockIEnumerator = query.AsEnumerable。; deliveryStockIE numerator =StructClone .CloneList(deliveryStockIEnumerator);return deliveryStockIEnumerator;L /根據(jù)客戶查找/ / /public IEnumerable Ge
34、tByCustomerId( stringloginname)r using ( FundMongoDBndb = new FundMongoDB)L var collecti on = mdb.GetCollectio n();IEnumerable deliveryStockIEnumerable = collection.Find(c = c.u_log inn ame = logi nn ame).Docume nts;deliveryStockIE numerable =StructClone .CloneList(deliveryStockIEnumerable);return d
35、eliveryStockIEnumerable;/ /根據(jù)客戶查找/ /public IEnumerable GetAllByDate( DateTime dtBegin,DateTime dtEnd)using ( FundMongoDBndb = new FundMongoDB)var collecti on = mdb.GetCollectio n();IEnumerable deliveryStocklEnumerable = collection.Find(c = c.date dtBegi n & c.date public IMon goDatabase UseDb(stri n
36、g dbName)if ( stringsNullOrEmpty(dbName)throw new ArgumentNullException (dbName);_db = _mon go.GetDatabase(dbName);return _db; 一/ /獲取當(dāng)前連接的數(shù)據(jù)庫(kù)*/ public IMon goDatabase Curre ntDbgetif (_db = null )throw new Exception (當(dāng)前連接沒(méi)有指定任何數(shù)據(jù)庫(kù)。); return _db;I / 廠 /獲取當(dāng)前連接數(shù)據(jù)庫(kù)的指定集合【依據(jù)類(lèi)型】/ /vtypeparam n ame= Tx/type
37、param/vretur nspublic IMongoCollection GetCollection() where T : classreturn this .CurrentDb.GetCollection();/ /獲取當(dāng)前連接數(shù)據(jù)庫(kù)的指定集合【根據(jù)指定名稱(chēng)】/ / vtypeparam n ame= T/vparam name=namd集合名稱(chēng) class/vretur nspublic IMongoCollection vT GetCollectionvT( string name) where Treturn this .CurrentDb.GetCollectionvT(nam
38、e);public void Dispose()if (mongo != null )5.4高并發(fā)技術(shù)基于IIS的.net技術(shù)作為服務(wù)端,那么怎么做到很高的并發(fā),能讓APP有更流暢的訪問(wèn)速度,并且不會(huì)因?yàn)榭蛻舳嗨俣榷黠@降低,我們應(yīng)該怎么做呢?1. 設(shè)置IIS,能接受更多的請(qǐng)求;定期回收資源,保證在健康的狀況下運(yùn)行。2. 多使用緩存,采用數(shù)據(jù)庫(kù)會(huì)損耗服務(wù)器性能,而且通常存放在數(shù)據(jù)庫(kù)中的內(nèi)容越多,越有利于并發(fā)。例如股價(jià)的訪問(wèn)一定要快,我們放在內(nèi)存中,保 障客戶端只要是訪問(wèn),就能立即返回。我們用的是Memcache乍為緩存服務(wù),當(dāng)然我更傾向于用Redis。using FundAPl.Models;
39、using FundAPI.Services;using System;using System.Collections.Generic;using System.Web;n amespaceFu ndAPI.App_Catchepublic class StockPriceHistoryCacheprivate static int CACHEDDAYS = 7; /緩存7個(gè)工作日的股票價(jià)格public static void CacheStockPriceHistory()IEnumerable holidays = newCloseDaysService ().getWorkDaysBe
40、fore(CACHEDDAYS);CacheStockPriceHistory(holidays);private static void CacheStockPriceHistory(IEnumerable days)if (days = null ) return ;IEnumerable catchedDays =(IEnumerable )HttpRuntime .Cache STOCKPRICE HISTORYDAYSif (catchedDays = null ) catchedDays =new List ();List cachedDayList = new List ();f
41、oreach ( DateTime dateitem in catchedDays) cachedDayList.Add(dateltem);List toCacheDayList = new List ();foreach ( DateTime dateitem in days) toCacheDayList.Add(dateltem);/將沒(méi)有緩存的歷史股價(jià)加入到緩存/如果已經(jīng)緩存的時(shí)間表里面沒(méi)有緩存當(dāng)前日期的數(shù)據(jù),則緩存foreach ( DateTime dateltemin days) if (!cachedDayList.Contains(dateltem)cacheStockPr
42、iceByDay(dateltem);/清除掉已經(jīng)緩存的,過(guò)期的數(shù)據(jù)foreach ( DateTime dateitem in cachedDayList)if (!toCacheDayList.Contains(dateitem)removeCachedStockPriceByDay(dateltem);private static void removeCachedStockPriceByDay( DateTime day)IEnumerable stockSettings =StockSettingCache .GetCachedStockSetting();if (stockSett
43、ings =null ) return ;string dateStr = day.ToString(yyyy-MM-dd);foreach ( StockSetting stockSettingin stockSettings) HttpRuntime .CachedateStr + stockSetting.s_stockcode =nullI zz=丄private static void cacheStockPriceByDay( DateTime day)day = day.Date;string dateStr = day.ToString(yyyy-MM-dd);StockPri
44、ceService stockPriceService = new StockPriceService ();IEnumerable stockPriceByDate = stockPriceService.GetPrice(day); foreach ( StockPrice stockPriceltem in stockPriceByDate)if (dateStr =2015-11-03 & stockPriceltem.StockCode =600017)Co nsole.WriteL in e(dateStr + stockPriceltem.StockCode);HttpRunti
45、me .CachedateStr + stockPriceltem.StockCode = stockPriceltem;3. 所業(yè)務(wù)邏輯,使業(yè)務(wù)邏輯的處理簡(jiǎn)單化,不要邏輯互相糾纏,引起服務(wù)端的過(guò)多操作。5.5轉(zhuǎn)賬接口轉(zhuǎn)賬接口主要負(fù)責(zé)銀證轉(zhuǎn)賬,轉(zhuǎn)賬接口是對(duì)銀行的支付接口,通常在支付完成后會(huì)有兩次握手。實(shí)例代碼如下:using System;using System.Collections.Generic;using System.Collections.Specialized;using System.Text.RegularExpressions;n amespaceFu ndAPl.Pay
46、.Mobaopublic partial class Callback : System.Web.UI. Pagef public stri ng apiName;public stri ng no tifyTime;public stri ng tradeAmt; |public stri ng merchNo;public stri ng merchParam;public stri ng orderNo;public stri ng tradeDate;public stri ng accNo;public stri ng accDate;public stri ng orderStat
47、us;public stri ng veryfyDesc;protected void Page_Load( object sender,EventArgs e)if (HsPostBack)此處可增加一個(gè)日志來(lái)記錄通知數(shù)據(jù),便于調(diào)試接口。Dictionary dict = GetRequestPost();/判斷是否有帶返回參數(shù)if (dict.Count 0)/驗(yàn)證簽名,先獲取到簽名源字符串和簽名字符串后,做簽名驗(yàn)證。stri ng srcStri ng =string .Format( apiName=0¬ifyTime=1&tradeAmt=2&merchNo=3&merchPa
48、ram=4&orderNo=5&tradeDate=6&accNo=7&accDate=8&orderStatus=9dictapiName,dictn otifyTime,dictdicttradeAmt,merchNo,dictmerchParam,dictorderNo,dicttradeDate,dictaccNo,dictaccDate,orderStatus);dictstring sigString = dict signMsg;stri ng no tifyType = dictno tifyType;sigStri ng = sigStri ng.Replace(r , ).Replace( n,);bool verifyResult =MobaopaySignUtil .Instance.verifyData(sigString,srcStrin g);veryfyDesc = verifyResult ?簽
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建設(shè)申請(qǐng)報(bào)告范文(6篇)
- 社區(qū)的社會(huì)實(shí)踐調(diào)查報(bào)告
- 政治必修四教案8篇
- 廣東省廣州市2024?2025學(xué)年高二上學(xué)期10月月考 數(shù)學(xué)試卷含答案
- 江西省宜春市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版摸底考試(下學(xué)期)試卷及答案
- 二年級(jí)語(yǔ)文上冊(cè)三單元教案
- 編制說(shuō)明-《企業(yè)研發(fā)管理體系建設(shè)指南(征求意見(jiàn)稿)》
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版能力評(píng)測(cè)((上下)學(xué)期)試卷及答案
- 上海市縣(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版競(jìng)賽題(上學(xué)期)試卷及答案
- 雨水回收系統(tǒng)技術(shù)規(guī)格書(shū)
- 2024年區(qū)人民法院公開(kāi)招考聘用制司法輔助人員考試題及答案
- 特立帕肽治療骨質(zhì)疏松性骨折中國(guó)專(zhuān)家共識(shí)(2024版)解讀
- (完整版)新員工進(jìn)場(chǎng)三級(jí)安全教育考核-試卷及答案
- 新高考生物二輪復(fù)習(xí)生物大概念重要概念次位概念
- DB3305-T 104-2019環(huán)境污染責(zé)任保險(xiǎn)風(fēng)險(xiǎn)評(píng)估技術(shù)規(guī)范
- 外研版(2024新版)七年級(jí)上冊(cè)英語(yǔ)Unit 3 Family ties大單元教學(xué)設(shè)計(jì)
- 特種設(shè)備之壓力管道監(jiān)管要求
- 社區(qū)垃圾清運(yùn)委托協(xié)議
- 二年級(jí)體育說(shuō)課稿《單腳起跳 雙腳落地 》
- 校本課程實(shí)施綱要
- 門(mén)窗維修簡(jiǎn)單合同范本(2024版)
評(píng)論
0/150
提交評(píng)論