当前位置: 首页 > news >正文

【深度学习量化交易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.

相关文章:

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

关注我的朋友们可能知道,我经常在信号处理的领域出没,时不时会发一些信号处理、深度学习科普向的文章。 不过算法研究久了,总想做一些更有趣的事情。 比如用深度学习算法赚大钱。。毕竟有什么事情能比暴富更有意思呢。 一、神经网络与彩票…...

【0基础学爬虫】爬虫基础之自动化工具 DrissionPage 的使用

概述 前三期文章中已经介绍到了 Selenium 与 Playwright 、Pyppeteer 的使用方法,它们的功能都非常强大。而本期要讲的 DrissionPage 更为独特,强大,而且使用更为方便,目前检测少,强烈推荐!!&a…...

c++_0基础_讲解7 练习

这一讲我为大家准备了几道题目,大家试着独自做一下(可能来自不同网站) 整数大小比较 - 洛谷 题目描述 输入两个整数,比较它们的大小。若 x>yx>y ,输出 > ;若 xyxy ,输出 &#xff…...

docker一些常用命令以及镜像构建完后部署到K8s上

docker一些常用命令以及镜像构建完后部署到K8s上 1.创建文件夹2.删除文件3.复制现有文件内容到新建文件4.打开某个文件5.查看文件列表6.解压文件(tar格式)7.解压镜像8.查看镜像9.删除镜像10.查看容器11.删除容器12.停止运行容器13.构建镜像14.启动容器15…...

在typora中利用正则表达式,批量处理图片

一,png格式 在 Typora 中批量将 HTML 图片标签转换为简化的 Markdown 图片链接,且忽略 alt 和 style 属性,可以按照以下步骤操作: 打开 Typora 并加载你的文档。按下 Ctrl H(在 Windows/Linux 上)或 Cmd…...

构建LangChain应用程序的示例代码:33、如何在LangChain框架中使用HumanInputChatModel来模拟人工输入的聊天模型教程

除了HumanInputLLM,LangChain还提供了一个伪聊天模型类,可以用于测试、调试或教育目的。这允许您模拟对聊天模型的调用,并模拟如果人类接收到这些消息会如何响应。 在这篇笔记中,我们将介绍如何使用这个模型。 我们首先在代理中…...

虚拟机使用桥接模式网络配置

1、获取本机的网络详细信息 windowr 输入cmd 使用ipconfig -all 一样即可 在自己的虚拟机中设置网络 虚拟机中的ip ---------192.168.36.*,不要跟自己的本机ip冲突 网关-----------192.168.36.254 一样即可 dns -----------一样即可,我多写了几个&am…...

韩顺平0基础学java——第24天

p484-508 System类 常见方法 System.arrycopy(src,0,dest,1,2); 表示从scr的第0个位置拷贝2个,放到目标数组索引为1的地方。 BigInteger和BigDecimal类 保存大整数和高精度浮点数 BigInte…...

leecode N皇后

深度优先遍历,然后回溯 思考得到的技巧: 1.先思考怎么用学过的数据结构解题 2.回溯不只需要知道最后一步,还需要知道之前所走的每一步 3. 棋盘的生成,.join([]),可以变列表为字符串 看题解得到的技巧: 1.妙啊&#xf…...

2024050802-重学 Java 设计模式《实战模板模式》

重学 Java 设计模式:实战模版模式「模拟爬虫各类电商商品,生成营销推广海报场景」 一、前言 黎明前的坚守,的住吗? 有人举过这样一个例子,先给你张北大的录取通知书,但要求你每天5点起床,12点…...

UNIAPP-ADB无线调试

ADB下载 SDK 平台工具版本说明 | Android Studio | Android Developers (google.cn) 环境变量配置 ADB版本查看 adb version 手机使用数据线连接到电脑 手机需要授权adb调试(开发人员选项里面) CMD输入命令 adb tcpip 5555 到了这一步你手机已经启动了adb服务了&…...

【stm32-新建工程】

stm32-新建工程 ■ 下载相关STM32Cube官方固件包(F1,F4,F7,H7)■ 1. ST官方搜索STM32Cube■ 2. 搜索 STM32Cube■ 3. 点击获取软件■ 4. 选择对应的版本下载■ 5. 输入账号信息■ 6. 出现下载弹框,等待下载…...

写点什么吧,作为STM32系列的开篇……

自从本科毕业后,就再也没碰过单片机…… 自从研究生毕业后,就再也没碰过硬件…… 自以为以前单片机玩的熟得很,特别是ATMEGA系列的AVR单片机,由于老师的推荐,本科时花了好多精力在这个系列单片机上面…… 本科时STM…...

代码随想录算法训练营第十天| 232.用栈实现队列|225. 用队列实现栈|20. 有效的括号|1047. 删除字符串中的所有相邻重复项

232.用栈实现队列 文档讲解:代码随想录 视频讲解:栈的基本操作! | LeetCode:232.用栈实现队列_哔哩哔哩_bilibili 知道要用两个栈实现,具体咋做忘了。队列的特性是先进先出,栈是先进后出,入队操…...

Pulsar 社区周报 | No.2024-06-07 | Apache Pulsar 新分支 3.3 版本发布

“ 各位热爱 Pulsar 的小伙伴们,Pulsar 社区周报更新啦!这里将记录 Pulsar 社区每周的重要更新,每周发布。 ” 本期主题:Apache Pulsar 新分支 3.3 版本发布 Apache Pulsar 新分支 3.3 版本发布:Apache Pulsar 3.3.0[1…...

Go源码--sync库(3):sync.Pool(2)

回收 回收其实就是将 pool.local 置为空 可以让垃圾回收器回收 我们来看下 源码 func init() {// 将 poolCleanup 注册到 gc开始前的准备工作处理器中在 STW时执行runtime_registerPoolCleanup(poolCleanup) }这里注册了清理程序到GC前准备工作 也就是发生GC前需要执行这段代…...

Go如何在本地引用以及发布并引用自定义工具包

如何引用本地自定义工具包 我们首先要准备两个项目,分别为需要引入的工具包和当前项目。 myutils、myproject1. myutils为我们的项目1-工具包 package mypakgeimport "strings"func IsContains(s string) bool {if strings.Contains(s, "a")…...

使用了代理IP怎么还会被封?代理IP到底有没有效果

代理IP作为一种网络工具,被广泛应用于各种场景,例如网络爬虫、海外购物、规避地区限制等。然而,很多用户在使用代理IP的过程中却发现自己的账号被封禁,这让他们不禁产生疑问:使用了代理IP怎么还会被封?代理…...

在WSL2的Ubuntu中安装和使用Docker/Podman

在WSL2的Ubuntu中安装和使用Docker/Podman 0. 目的 当网络环境良好(例如在公司,能直接访问Google等)时, Docker/Podman 安装和使用不是问题。 当网络环境不佳(例如在家里),要把 WSL2 的 Ubun…...

【WEEK16】Learning Objectives and Summaries【Spring Boot】【English Version】

Learning Objectives: Learning SpringBoot Learning Content: Reference video tutorials【狂神说Java】SpringBoot最新教程IDEA版通俗易懂Dubbo and Zookeeper Integration Learning time and outputs: Week16 TUE~FRI 2024.6.11【WEEK16】 【DAY2】Dubbo和Zookeeper集成第…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

SpringCloudGateway 自定义局部过滤器

场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

WebRTC调研

WebRTC是什么&#xff0c;为什么&#xff0c;如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...