项目实战——打造一款股票区间交易盯盘系统

Irene181
• 阅读 1793

一、简介


大家好,我是Snowball。今天给大家分享的内容是基于Java编程,实现股票交易相关功能开发,如果读者对股票或金融衍生物交易不太了解,又比较感兴趣的话可自行查询相关资料。

在这篇文章里边,介绍了两个策略,用Python编程借助现有量化平台编写股票交易策略和回测分析,这篇文章,我们来实战个大的项目。

常见的交易策略有很多种,例如趋势型,网格型,剥头皮,概率法则,高频交易等,今天主要给大家介绍2种低频的交易策略,高抛低吸网格交易策略、日内做T策略。其他的交易策略较复杂,读者可自行百度了解,笔者这里推荐一个量化交易网站,仅供参考,米筐量化:

https://www.ricequant.com/doc/quant/

二、需求分析&实现思路

每个交易日的股票都会上涨或者下跌,在这个过程中笔者们偶尔会想针对部分股票进行股价的涨跌幅进行监控,或者自动进行交易,在这个需求前提下,现有券商、股票分析软件都会带有机器人自动交易策略功能,大部分都需要收费或者部分策略不能满足自己的需求,笔者这边提供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
用户模块,包含用户基础功能

3)接口文档

项目实战——打造一款股票区间交易盯盘系统

这里贴一个接口,其他接口见接口文档地址描述

`网格交易-创建/更新计划``/stock/tradePlan/grid/save`

项目实战——打造一款股票区间交易盯盘系统

4)部署工程

1、根据data目录下的stock_sql.sql创建数据库相关表

2、修改工程yml配置文件,配置自己的邮箱通知地址、企业微信聊天机器人地址

3、maven工程对stock-platform模块进行package打包,将输出的jar包上传到服务器,运行jar

5)运行效果

1、表结构

项目实战——打造一款股票区间交易盯盘系统

2、Idea本地运行日志

项目实战——打造一款股票区间交易盯盘系统

3、服务端运行目录

项目实战——打造一款股票区间交易盯盘系统

4、服务端运行日志

项目实战——打造一款股票区间交易盯盘系统

6)小结

以上就是手写的区间交易盯盘系统相关功能描述和结果展示,包含用户模块、股票模拟组合模块、套利策略模块、股票通用模块等,工程后端服务在服务器单机部署,在A股股票实践验证几个月,代码暂无发现bug,部分结果通知截图暂未提供,读者可以自行下载代码使用Idea运行工程实践,有什么问题和想法随时可以留言或者联系小编。

四、总结

以上就是笔者根据个人炒股经验和量化交易知识,独立在业余时间花了1个月左右零碎时间开发的股票区间交易的盯盘后台系统,实现了高抛低吸网格交易策略、日内做T策略两种策略的线上运行,以及触发交易的通知机制功能。虽然功能完善性可能不是很够,但基本可以满足这两种策略的套利功能。对股票自动交易策略有兴趣、实战项目想了解的读者可以下载源代码阅读,也欢迎读者留言分享自己的看法。

**-----**------**-----**---**** End **-----**--------**-----**-****

项目实战——打造一款股票区间交易盯盘系统

往期精彩文章推荐:

项目实战——打造一款股票区间交易盯盘系统

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

本文转自 https://mp.weixin.qq.com/s/Zjpn64IW7Cg542fAiH71Dg,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Irene181 Irene181
2年前
用Python编程借助现有量化平台编写股票交易策略和回测分析
一、简介大家好,我是Snowball。今天给大家分享的内容是基于Python编程,实现股票交易相关功能开发,如果读者对股票或金融衍生物交易不太了解,又比较感兴趣的话可自行查询相关资料。接下来笔者会给大家介绍股票交易中的常见几种交易策略实现思路和源码编写过程,如果大家听说过量化交易这个词语的话,对其中的交易策略或许了解过,大概意思就是在股票、加密货币或者金融衍
Aidan075 Aidan075
2年前
厉害了,股票K线图还能这么画!
大家好,我是小五🐶发现大家还是最喜欢股票基金话题呀~那说到股票基金就不得不提——K线图!那小五今天就带大家👉用python来轻松绘制高颜值的K线图🚀获取股票交易数据巧妇难为无米之炊,做可视化也离不开数据。本文我将以酱香型科技——贵州茅台为例,获取它的近期股票数据并绘制K线图。如果我们要特意去动手去写爬虫,就显得有些多余了,这里
徐小夕 徐小夕
3年前
《精通react/vue组件设计》之5分钟教你实现一个极具创意的加载(Loading)组件
前言本文是笔者写组件设计的第八篇文章,今天带大家用5分钟实现一个极具创意的加载(loading)组件.涉及的核心知识点主要是css3相关特性,如果大家非常熟悉,可直接跳过介绍直接看正文.时刻问自己:是否具备创造力?笔记前端组件的一般分类:通用型组件:比如Button,Icon等.布局型组件:比如Grid,Layout布
Stella981 Stella981
2年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
2年前
ETF溢价产生原因分析,别买贵了
前几篇分析国外主要指数的文章都提到一点,场内购买指数基金要注意溢价。如果在溢价过高时买入,就亏了。今天来详细说说溢价这个问题,溢价主要产生于场内购买ETF的时候,我们先来了解下ETF。01ETF,即交易型开放式指数基金。它是一种特殊的指数基金,最主要的特点是可交易性,在券商软件里,你可以像买卖股票那样购买ETF份额。和普通指数基金一样
Stella981 Stella981
2年前
LightningChart.NET创建显示财务数据的2D StockSeries图表
本教程说明了如何从CSV文件加载财务数据并使用LightningChartStockSeries显示它们。股票系列用于以烛台和股票条格式可视化股票交易数据。本教程假定您已在WinForms或WPF应用程序上使用LightningChart创建了新图表。如果没有,请按照我们的简单2D图表创建应用程序。!(https://image.evget.com
Wesley13 Wesley13
2年前
NEO从源码分析看UTXO交易
_0x00前言_社区大佬:“交易是操作区块链的唯一方式。”_0x01交易类型_在NEO中,几乎除了共识之外的所有的对区块链的操作都是一种“交易”,甚至在“交易”面前,合约都只是一个小弟。交易类型的定义在Core中的TransactionType中:源码位置:neo/Core/TransactionType
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
何婆子 何婆子
1个月前
Python量化交易工程师养成实战-金融高新领域
Python量化交易工程师养成实战金融高新领域download》chaoxingit.com/2162/Python量化交易工程师养成实战:金融高薪领域随着金融市场的快速发展,量化交易已经成为了一个备受关注的高薪领域。Python作为一种强大的编程语言,为