Java項(xiàng)目實(shí)戰(zhàn)—打造一款股票區(qū)間交易盯盤系統(tǒng)
一、簡介
大家好,我是Snowball。今天給大家分享的內(nèi)容是基于Java編程,實(shí)現(xiàn)股票交易相關(guān)功能開發(fā),如果讀者對股票或金融衍生物交易不太了解,又比較感興趣的話可自行查詢相關(guān)資料。
常見的交易策略有很多種,例如趨勢型,網(wǎng)格型,剝頭皮,概率法則,高頻交易等,今天主要給大家介紹2種低頻的交易策略,高拋低吸網(wǎng)格交易策略、日內(nèi)做T策略。
二、需求分析&實(shí)現(xiàn)思路
每個(gè)交易日的股票都會上漲或者下跌,在這個(gè)過程中筆者們偶爾會想針對部分股票進(jìn)行股價(jià)的漲跌幅進(jìn)行監(jiān)控,或者自動進(jìn)行交易,在這個(gè)需求前提下,現(xiàn)有券商、股票分析軟件都會帶有機(jī)器人自動交易策略功能,大部分都需要收費(fèi)或者部分策略不能滿足自己的需求,筆者這邊提供2種實(shí)現(xiàn)思路:
1、借助現(xiàn)有量化平臺編寫策略和回測分析,然后在券商軟件層面進(jìn)行策略執(zhí)行。
2、自己編寫功能代碼來監(jiān)控估價(jià),對股價(jià)波動進(jìn)行特殊處理滿足特殊需求。
第一種實(shí)現(xiàn)成本較低,但功能受限于平臺;第二種實(shí)現(xiàn)成本毋庸置疑相對較高,但是邏輯可以自己控制。
這個(gè)量化平臺在筆者的熟悉情況下,它可以很方便的回測你的交易策略,但是在股價(jià)盯盤上,或者自定義邏輯上支持的不是很完善,很多功能也是需要收費(fèi)才能使用,下面筆者簡單介紹下手?jǐn)]個(gè)股票區(qū)間交易盯盤系統(tǒng)的實(shí)現(xiàn)過程。
三、區(qū)間交易盯盤系統(tǒng)
1)實(shí)現(xiàn)思路
大致分為以下四大功能模塊,分別為
1、股票池:需要獲取數(shù)據(jù)的股票列表
2、股票實(shí)時(shí)數(shù)據(jù)收集服務(wù):針對不同數(shù)據(jù)源配置拉取對應(yīng)的股票實(shí)時(shí)數(shù)據(jù),并提供重試機(jī)制
3、股票組合、交易策略配置、交易策略運(yùn)行:具體可以參考接口文檔,代碼實(shí)現(xiàn)
4、通知服務(wù):通知支持郵件通知,企業(yè)微信聊天機(jī)器人通知。(在application.yml配置)
2)代碼實(shí)現(xiàn)
工程采用單機(jī)應(yīng)用架構(gòu),使用框架為SpringBoot + Spring Data Jpa + Redis等常規(guī)開發(fā)框架。數(shù)據(jù)庫采用mysql,結(jié)構(gòu)和文件見源碼工程data目錄
源碼地址:
https://gitee.com/snowball2dev/stock-trade-strategy
maven工程結(jié)構(gòu)
- stock-back-test
- 策略回測模塊,暫未實(shí)現(xiàn)
- stock-base
- 基礎(chǔ)模塊,主要是通用工具類
- stock-data
- 股票數(shù)據(jù)模塊,功能包含股票池、股票數(shù)據(jù)源實(shí)時(shí)采集、數(shù)據(jù)更新、事件通知等
- stock-platform
- 股票后臺平臺啟動模塊,包含工程配置
- stock-trade
- 股票交易策略模塊,功能有股票組合管理、網(wǎng)格交易策略參數(shù)配置、T0交易參數(shù)配置、2種交易策略的實(shí)現(xiàn)和執(zhí)行等
- stock-user
- 用戶模塊,包含用戶基礎(chǔ)功能
3)接口文檔
這里貼一個(gè)接口,其他接口見接口文檔地址描述
- 網(wǎng)格交易-創(chuàng)建/更新計(jì)劃
- /stock/tradePlan/grid/save
4)部署工程
1、根據(jù)data目錄下的stock_sql.sql創(chuàng)建數(shù)據(jù)庫相關(guān)表
2、修改工程yml配置文件,配置自己的郵箱通知地址、企業(yè)微信聊天機(jī)器人地址
3、maven工程對stock-platform模塊進(jìn)行package打包,將輸出的jar包上傳到服務(wù)器,運(yùn)行jar
5)運(yùn)行效果
1、表結(jié)構(gòu)
2、Idea本地運(yùn)行日志
3、服務(wù)端運(yùn)行目錄
4、服務(wù)端運(yùn)行日志
6)小結(jié)
以上就是手寫的區(qū)間交易盯盤系統(tǒng)相關(guān)功能描述和結(jié)果展示,包含用戶模塊、股票模擬組合模塊、套利策略模塊、股票通用模塊等,工程后端服務(wù)在服務(wù)器單機(jī)部署,在A股股票實(shí)踐驗(yàn)證幾個(gè)月,代碼暫無發(fā)現(xiàn)bug,部分結(jié)果通知截圖暫未提供,讀者可以自行下載代碼使用Idea運(yùn)行工程實(shí)踐,有什么問題和想法隨時(shí)可以留言或者聯(lián)系小編。
四、總結(jié)
以上就是筆者根據(jù)個(gè)人炒股經(jīng)驗(yàn)和量化交易知識,獨(dú)立在業(yè)余時(shí)間花了1個(gè)月左右零碎時(shí)間開發(fā)的股票區(qū)間交易的盯盤后臺系統(tǒng),實(shí)現(xiàn)了高拋低吸網(wǎng)格交易策略、日內(nèi)做T策略兩種策略的線上運(yùn)行,以及觸發(fā)交易的通知機(jī)制功能。雖然功能完善性可能不是很夠,但基本可以滿足這兩種策略的套利功能。