AI + Rust 实现 BTC 量化交易成功变现

157 阅读8分钟

昨天发了一条沸点,说自己用 AI + Rust 实现了 BTC 量化交易,上线后变现。有好多评论,说明有很多人都对此感兴趣。所以我写一篇文章来更详细说说这事情。

从评论说起

评论中首先是有人质疑我是不是要卖课?比如:

全网最强机制,全完只有我有这个机制,破价啦破价啦

哈哈,我也想卖课,我也想说全网就只有我有这个机制。但是反过来想,如果全网就我有这个机制,我还卖什么课?我自己在被窝里躺赚不好吗?

然后,有人问在当前市场下,这究竟能不能赚钱?比如:

厉害啊,能搞出量化交易,不过这种说实话容易被更牛的截胡吧,毕竟有些人靠这个吃饭的

实践出真知,一开始我也不确定能不能,但是随着系统一点点搭建起来,我越来越相信能,但是我不能说一定能。这年头,说一定能赚钱的,百分百是骗子,一定能赚钱我告诉你干嘛?

在区块链这个领域中,肯定是有机会的,肯定是有能赚钱的,肯定是有亏钱的。不管是散户还是机构,不管是个人每天盯盘,还是程序量化。机会和风险都同在,我只是想试试。

那么为什么想到做一个量化程序呢?因为我不是理性的人,自己去操盘不能守纪律。另外在做的过程中,我真的收获了很多,很有意思,这个可以在下文分享。

还有人问:

代码开源吗

我暂时没有开源的打算,我也在想这个项目有哪些变现途径,有哪些玩法,是自己继续玩,还是找一些人一起玩,卖课教学还是做一个平台按月付费,我不知道,我还在想。来看一眼百分百 AI 写的代码:

image.png

最后,如果谁有兴趣,不管是对这个系统还是对 Rust 、AI等技术层面感兴趣,都欢迎联系我,给我私信也行,我会及时回复。

说说 AI 编程

我们先从技术层面说起吧,聊聊 AI 编程。

首先我要从我老板说起,他非常鼓励员工使用 AI,自己也是 AI 的重度使用者(自称离开 AI 就不想写代码,自己写效率赶不上 AI)。我之前文章中,也好多次吐槽”老板“,但是之前的”老板“都是我虚构的,不是真实的哈。老板知道我在写这个项目,非常鼓励我做好这个项目。他说过一句话:

用好 AI 的关键在于:一定不要觉得 AI 不行,而是你不行。

我非常认同这句话,很多时候,只是我们自己用不好 AI,不了解 AI 正确的打开方式罢了。所以,对于 AI 不要抗拒,不要浅尝则止,要深入,要多用,用到人和 AI 一体,标准如下:

所有事情全部 AI 处理,AI 处理不好,那就反复用 AI 处理到好为止。达到,你说什么话,就知道 AI 做什么事,想要 AI 做什么事,就知道怎么写提示词。

至于 AI 编程的技巧,可以网上找一找,好多,我就不说了。很多时候用 AI 的能力,是和消耗的 Token 数量成正比的,类似于一万小时理论。但是 AI 很多时候也和个人能力相关,能力越强,AI 也用的越好。我要说的是:

用 AI 提升自己的能力,通过用 AI 做事情来提升自己的能力。比如你用 AI 写了一个 Terminal 风格的网站,或者写了一段算法,有空了一定要反过来去看看它是怎么写的,时间不多,了解一下原理也可以,不一定要了解算法细节。切记:不是用 AI 完成了功能就可以了,自己要有提升。

说说 Vibe Coding

所谓 Vibe Coding 就是氛围编程,做一个项目只问结果,不关注代码实现细节,甚至连代码也不看。上面这个 Rust 的项目到目前为止有 4.3 万行代码,我就精读了几百行而已。属于全流程 Vibe Coding。

我不鼓励完全不看代码,而是说先做 MVP,有空了一定再去看代码。没空也要问 AI 代码是怎么实现的?代码哪里实现的不够好?代码有什么优点?这类问题也要经常问。学习 AI 好的编程套路、编程思想也可以。

之前,我提到我用 AI 写这个项目有很多收获,首先我证明了 Vibe Coding 是在我这个项目中是可行的。然后,我也证明了 AI 是可以从头到尾写一个大型的项目的。但是上面这两点是有前提的:

除了让 AI 不断写代码外,也随时要停下来,不断让 AI 找出代码中不足之处,随时重构代码。

在项目前期,我用 AI 重构的时间,比用 AI 完成功能的时间,还要多好几倍。所以,你看上面仓库的代码截图,其实整个系统分层,结构都非常清晰。当然,也可以驾驭复杂性,比如这当中的 WebSocket 就非常复杂,我让 AI 花了一张图:

image.png

所以,Vibe Coding 会极大的增加生产力,比如我这个 4W 多行的项目,前后一个月都没有,还都是业余时间。中间三个月工作太忙了,停下来了。

另外,我想说的是既然是 Vibe Coding,那就 Vibe 到底,全流程 AI,包括但不限于:

产品构思 -> 产品功能设计 -> 产品细节设计 -> 项目架构 -> 技术选型 -> 编码实现 -> 单元测试 -> 集成测试 -> 代码 Review -> 代码重构 -> 运维 -> 线上走查 -> 数据库设计部署调优......

以我自己这个项目来说,这些我全部都是交给 AI 完成的,我自己只是把握方向,做一些选择,跟着 AI 学习。其中单元测试对于这样的项目来说是非常必要的,特别是有大量的计算。集成测试,AI 不能完全胜任,但是可以让 AI 直接 Review 线上的日志,通过判断日志来查找问题,或者判断是否正确实现。

我这个项目是部署在 K8s 上的,所以我会让 AI 直接通过 kubectl 去做一切操作,包括部署、数据库建表、Redis 结构设计、日志检查等等。甚至 AI 可以十分钟内部署一个 K8s 单节点的集群,只需要告诉他服务器的账号密码就行。

说说这个项目

这个项目架构合理,分层如下:

  • 数据层:对接交易所以及其他第三方 API;
  • 指标层:计算例如 MACD 等15 种指标;
  • 策略层:根据指标指定策略,根据策略产生买卖信号;
  • 机器学习:训练模型、根据指标推理产生买卖信号;
  • 聚合层:聚合策略层和机器学习层产出的买卖信号,加权投票,最终产生交易信号;
  • 交易层:对接交易所 API 实际下单;
  • 回测层:对历史数据进行回测,给出回测报告;

每一层都是一个单独的服务(Pod),交易全部用 Redis,而数据异步落盘道 TimescaleDB 时序数据库,用来回测、走查。

重点说说机器学习这一部分,其实在此之前我从来没有接触过机器学习,但是我用了两个小时,让 AI 给我完成了这件事。首先是让 AI 出一个方案,比如使用什么机器学习的框架、如何训练。

所有,AI 大大扩展了我们的想象力。让之前想都不敢想的想法,能够快速落地。包括这个项目,如果没有 AI,我全职做半年,都未必有现在这程度。

机器学习架构.png

虽然,我通过 AI 学习了机器学习的原理以及如何训练有效的模型、调试模型,这个又花了一两天的时间。

image.png

这是我通过 AI 写的简单的管理后台,把每一笔交易的过程中的指标、输出都列出来。我不去看代码,指通过这个输出和实际的交易来确定是否实现正确。

最后,要说:

多用 AI 去做自己不擅长的事情。做自己擅长的事情,是为了提效,做自己不擅长的事情,是为了提能。例如前端用 AI 去做后端,后端用 AI 去做前端。

总结

时间关系,就先聊到这里。大家如果有其他问题,可以在评论区提出来,我都会回答。或者再写一篇更详细的说说。