【深度学习量化交易1】一个金融小白尝试量化交易的设想、畅享和遐想

关注我的朋友们可能知道,我经常在信号处理的领域出没,时不时会发一些信号处理、深度学习科普向的文章。

不过算法研究久了,总想做一些更有趣的事情。

比如用深度学习算法赚大钱。。毕竟有什么事情能比暴富更有意思呢。

一、神经网络与彩票梦

那还是在上大学期间的一个午后,宿舍邻座的舍友在捣鼓MATLAB编程,他说他在研究使用神经网络算法做彩票预测,我闻之大惊。当时互联网还未像当今这样发达,神经网络算法还是新兴概念,在一个刚上大学还处于蒙圈阶段的愣头青(也就是我)的理解中,神经网络这种模拟人类生物学特征的算法,这种可以自主学习的算法,这种据说可以拟合一切的算法,预测彩票也不是不可能的吧!

打开知网,搜索“神经网络彩票预测”,还真的找到了佐证!

从论文中的效果来看,这准确率高的很呐[1]。

这要是能复现出来,年纪轻轻的我岂不是可以财务自由了?

不知道是幸还是不幸,论文中的“BP神经网络”像是一座难以逾越的山,十几年前的互联网可没有知乎或者B站这么便捷的学习手段,满腹疑惑也无人能解答,彩票事业就此搁浅。

此后我也逐渐明白,彩票结果都是随机数,每次开奖都是独立事件,是不可被预测的。但是奈何诱惑太大啊:万一成了呢!

直到去年,编程实现类似的预测算法已经不是难事了,再加上爬虫、网页前端后端、服务器搭建这些技术也都掌握了,于是重新拾起封存的暴富梦,把实时彩票自动预测的整个流程终于实现了出来:

首先,选择了一种简单的彩票种类——福彩3D。这个彩票每天(除了周末)都会开奖,有更大的数据量;他开出来的数字只有3位,预测起来更加简单;中奖不需要数字顺序完全一致,中奖概率也更高。只不过奖金也相应低很多。

第二,算法上也鸟枪换炮,都21世纪第3个十年了,肯定不能还用BP神经网络,我选用了LSTM长短时记忆神经网络。

第三,我在不用的服务器上搭建了定时服务,每天凌晨会自动获取当天的开奖号码,核对中奖情况,并将新的数据纳入到训练数据中预测下一次开奖号码。

这个程序一直在运行,今天他的预测结果如下:

程序跑了大半年,单选和组选各预测中了一次,组选的那次买了,小挣了173元。

当然,这个结果基本就是蒙上的了,指望这个办法财务自由终究是不靠谱。

二、深度学习与量化交易

彩票预测从原理上就否定了预测成功的可能性,但是使用深度学习炒股能不能行呢?

毕竟Alpha Go都能在围棋领域打败李世石,那我有没有可能创造出一个Beta GoGoGo打败巴菲特呢?

对此我做了一些准备:

第一,开了一个股票账户,放入了少量资金熟悉交易规则,并体验了一把2700点保卫战。

第二,开通了某证券公司的QMT,因为像米筐这些平台难以实现深度学习的量化交易,而我需要的其实只有行情数据获取以及交易接口,剩下的都可以手动搭建,使用miniQMT自建交易系统是灵活性最大的一种实现方案。

第三,买了一张4090[手动狗头],工欲善其事必先利其器嘛。

2.1 关于交易框架的设想

1.关于交易对象。听说期货市场是量化交易的热门领域,因为T+0的规则更适合量化交易的实施,不过期货开户的门槛比较高,我当前只能开通A股主板权限,创业板都够不到,更不要说期货了。所以后续一段时间的策略都是限制在股票市场中的。

2.关于策略类型。高频交易需要专业的网络和交易设备,所以这个方向基本放弃了。我将采取更加接近传统交易的中低频量化投资方法,以智取胜。

3.关于运行环境。我将程序部署在自建的服务器上,开盘期间自动执行获取大盘数据,自动执行策略运算,自动交易,并进行持仓情况和收益率的可视化展示。

2.2 关于交易策略的畅想

在之前研究信号处理的过程中,本人也积累了一些算法经验,就当前有限的算法理解和股票市场的认识,交易策略考虑从这几个角度切入:

1.多元回归预测。股价是由市场上诸多因素共同影响的结果,将所有数据都纳入考虑和训练的范围是不现实的。我所想到的第一个策略,是利用前一个交易日接近收盘时的数据(如价格、成交量、技术指标等)作为输入,训练一个回归预测模型,以预测第二天的收盘收益率。这种策略的优势在于利用了近邻数据较强的相关性,模型训练起来可能会相对简单,并且可以将交易时段都放到收盘前的一小段时间几种处理。

2.事件驱动策略。网络上的舆情和热点事件往往对股票价格有显著的影响。通过收集和分析这些舆情数据,可以有效地捕捉市场情绪,制定相应的交易策略。就像在《脱口秀大会5》节目上,脱口秀演员House讲了他投资“600759”股票的经历,引发该股票从开盘便一路涨停。

3.时间序列预测。利用时间序列数据的自相关性,通过分析股票的历史价格数据,建立模型预测未来的价格走势。时间序列预测有着多样的算法工具,例如ARIMA、LSTM等等。

以上策略也可以共同发挥作用。

2.3 关于财务自由的遐想

工程实践不同于学术研究,其中有太多细节和特殊情况需要考虑,为实现上述设想和畅想,必定需要不懈的付出。

为了给自己打打鸡血,做一做白日梦也是有必要的。

前一段时间抖音上刷到了这样一张图:

如果每个时点都能踩对,一年时间财务自由不是梦!

当然咱也没有这么大的野心,能有1000万也就心满意足啦!

结语

今天开始,我将一步步记录后续做量化交易的实现过程,既是对纷繁的思路的归纳梳理,也是为推动这项一个人的赚钱大业增加一些鞭策激励。

读者朋友们如果有好的想法欢迎一起讨论~

参考

  1. ^涂晔, 车文刚. BP 神经网络在福利彩票预测中的应用[J]. 2009 国际信息技术与应用论坛论文集 (上), 2009.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/714920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue - 实现登录页面

1、技术框架 1、技术框架Vue-Cli Vue3.0 2、界面推荐大小: 1920 * 1080 3、UI组件:elementui 4、icon: element-plus/icons-vue 5、node版本:v20.14.0 2、效果图 3、源代码部分截图 4、其他 有需要的请联系作者。需要购买,不白…

Science:如何快速完成一篇研究性论文?

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 完成一篇研究性论文,是将长时间积累的研究成果凝聚在几页纸中,对资深科学家而言也是一大挑战。作者们需要在充分论述科学问题和详细展示结果之间找到平…

【漏洞复现】东胜物流软件 GetProParentModuTreeList SQL注入漏洞

0x01 产品简介 东胜物流软件是青岛东胜伟业软件有限公司-款集订单管理、仓库管理、运输管理等多种功能于一体的物流管理软件。该公司初创于2004年11月(前身为青岛景宏物流信息技术有限公司),专注于航运物流相关环节的产品和服务。东胜物流信息管理系统货代版采用MS…

Linux:线程池

Linux:线程池 线程池概念封装线程基本结构构造函数相关接口线程类总代码 封装线程池基本结构构造与析构初始化启动与回收主线程放任务其他线程读取任务终止线程池测试线程池总代码 线程池概念 线程池是一种线程使用模式。线程过多会带来调度开销,进而影…

C++类和对象(1):构造函数和析构函数

一.类与对象的基本概念 1.结构体与类 C提供了一种比结构体类型更安全有效的数据类型——类。并且用class取代struct。 在C中将类的成员分为两类:私有成员(用private说明)和公有成员(用public说明)。私有成员(包括数据成员和成员函数)只能被类内的成员函数访问&am…

CSS从入门到精通——动画:CSS3动画执行次数和逆向播放

目录 任务描述 相关知识 动画执行次数 动画反向播放 编程要求 任务描述 本关任务:用 CSS3 实现loading效果。效果图如下: 相关知识 为了完成本关任务,你需要掌握:1.动画执行次数,2.动画反向播放。 需要实现的效…

每天五分钟深度学习框架pytorch:多维tensor向量在某一维度的拼接和分割

本文重点 在深度学习中,我们常常需要完成多个向量拼接,同时也要完成向量的分割,在pytorch中已经有封装好的库,我们可以直接调用完成这部分任务。 Cat拼接 c=torch.cat([a,b],dim=0)表示将a和b按0维度进行拼接,需要注意再非dim维度,两个矩阵的维度必须是一致的,不然会拼…

docker拉取镜像一直在加载中,且会提示error pulling image configuration

1、增加国内镜像配置 #查看文件内容 sudo vim /etc/docker/daemon.json如果没有该文件,则需要在/etc/docker中创建一个daemon.json 文件 创建文件 vim daemon.json#文件中添加以下json {"registry-mirrors":["https://docker.mirrors.ustc.edu.cn/…

小工具开发

因不太喜欢重复性工作,为了提高日常工作效率,在业余时间开发一些小工具用于帮助自己“偷懒”。 小工具功能: 1、Hightec编译的hex文件,与多模式标定hex文件合成 2、Bootloader文件,Hightec编译的hex文件,与…

SpringMVC框架学习笔记(八):自定义拦截器和异常处理

1 自定义拦截器 1.1 什么是拦截器 1.1.1 说明 (1)Spring MVC 也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定 的功能. (2)自定义的拦截器必须实现 HandlerInterceptor 接口 1.1.2 自定义拦截…

ssh的远程连接(Linux篇)

这里用到的虚拟机时centos7 记得提前先把网络连接好,这里选择的是桥接模式 1.启动ssh服务 # 在centos中启动sshd服务 sudo systemctl start sshd 2.在windows的cmd命令界面内输入以下内容 # ssh centos中的登录用户名centos中的IP地址 ssh yl192.168.1.108 然后…

Python 基础:类

目录 一、类的概念二、定义类三、创建对象并进行访问四、修改属性的值方法一:句点表示法直接访问并修改方法二:通过方法进行修改 五、继承继承父类属性和方法重写父类方法 六、将实例用作属性七、导入类导入单个类从一个模块中导入多个类导入整个模块导入…

效果超越ControlNet+IP-Adapter和FreeControl!Ctrl-X:可控文生图新框架(加州大学英伟达)

文章链接:https://arxiv.org/pdf/2406.07540 项目链接:https://genforce.github.io/ctrl-x/ 最近的可控生成方法,如FreeControl和Diffusion Self-guidance,为文本到图像(T2I)扩散模型带来了细粒度的空间…

机器学习(V)--无监督学习(一)聚类

根据训练样本中是否包含标签信息,机器学习可以分为监督学习和无监督学习。聚类算法是典型的无监督学习,目的是想将那些相似的样本尽可能聚在一起,不相似的样本尽可能分开。 相似度或距离 聚类的核心概念是相似度(similarity)或距离(distance…

模板方法模式和命令模式

文章目录 模板方法模式1.引出模板模式1.豆浆制作问题2.基本介绍3.原理类图 2.豆浆制作代码实现1.类图2.SoyaMilk.java 豆浆的抽象类3.PeanutSoyaMilk.java 花生豆浆4.RedBeanSoyaMilk.java 红豆豆浆5.Client.java6.结果 3.钩子方法1.基本介绍2.代码实现1.SoyaMilk.java 添加钩子…

数据中台-知识图谱平台

【数据分析小兵】专注数据中台产品领域,覆盖开发套件,包含数据集成、数据建模、数据开发、数据服务、数据可视化、数据治理相关产品以及相关行业的技术方案的分享。对数据中台产品想要体验、做二次开发、关注方案资料、做技术交流的朋友们,可以关注我。 1. 概述 随着…

弗洛伊德算法——C语言

弗洛伊德算法,是一种用于解决所有顶点对之间最短路径问题的经典算法,该算法通过动态规划的方法计算出从每个顶点到其他所有顶点的最短路径。 弗洛伊德算法的基本思想是逐步考虑每一个顶点作为中间点,更新所有顶点对之间的最短路径。它通过以…

开源模型应用落地-LangChain高阶-LCEL-表达式语言(七)

一、前言 尽管现在的大语言模型已经非常强大,可以解决许多问题,但在处理复杂情况时,仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而,现在可以利用langchain来使得模型的应用变得更加直接和简单。 LCEL是什么&…

STM32CubeMX配置-RTC周期唤醒

一、简介 MCU为STM32G070,采用内部时钟32KHZ,配置为周期6s唤醒,调用回调函数,进行喂狗操作。 二、配置 初始时间、日期、周期唤醒时间配置。 开启周期唤醒中断 三、生成代码 调用回调函数,进行喂狗操作。 //RTC唤醒回…

vue-i18n使用步骤详解(含完整操作步骤)

开篇 下面是从创建vue项目开始,完整使用i18n实现国际化功能的步骤,希望对您有所帮助。 完整步骤 创建项目 创建项目,并在创建项目的时候选择vuex,router 选择3.x版本 后面随意选即可,下面是完整的代码结构 安装vue-i18n,并封装…