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