如何用炒股机器人月入3500美元?

编者按:独立开发者SebastianDobrincu建立了一个用于高频股票交易的神经网络,作为一个业余项目,现在这个机器人每月可以为他赚到3500美元。我们来看看他是如何开发出这个神经网络并把它做大的。但是不要指望找到什么技术实现细节,主要是看他作为独立黑客是怎么工作的。

背景和项目介绍

我叫SebastianDobrincu,是一名软件工程师,目前的工作是自由职业者。我也是一个热情的产品制造商,我热爱开发业余和疯狂的商业项目。我的专业背景可以用机器学习、移动开发和设计来概括。

一开始我做StockTradingBot是作为个人研究项目。目的是看看现代机器学习方案是否可以用来预测当前的股票市场,并以非常高的频率自动化交易。

结果显示,它在五个月内每个月为我赚了大约3500美元,维护成本不到90美元/月。目前我自己就是主要用户。我打算继续开发这个机器人,目标是尽可能扩大它的规模。

你是怎么想到开发股票机器人的?

这个想法实际上是偶然产生的。有一次,我决定在飞往旧金山之前下载一些播客来观看。我觉得我想尝试一些新的东西,所以我从财经专栏中选择了一些最受欢迎的内容。在一万英尺的高空,我点击播放来放松自己。

主持人谈到了流动性的话题,流动性分为价格、规模、时间三个尺度。我帮你在流动性充裕的时候,投资者可以在当前价格下,短时间内成功做大单。当他们开始争论高频交易是否可以通过提供流动性来改善市场的时候,我打开了手机的笔记本应用,开始写一些主要的想法。

在这个项目之前,我对金融的了解相当有限。基本交易我了解的比较透彻,除此之外,了解的不多。我希望改变这一点,但我也记得有人说过,99%的金融书都是废话。

塞巴斯蒂安渴望坐下来,在自己的舒适区之外学习新事物,这是非常有益的。

我相信我们已经到达了人工智能领域的顶峰。我们现在既有强大的机器,也有足够的数据进行人工智能处理。考虑到这一点,我内心的工程师对使用当今的先进技术涉足这个市场感到兴奋。除此之外,我也非常沉迷于做一些令人着迷的项目,这一个也不例外。

你们研发这个机器人花了多长时间,用了哪些技术?

我最初的目标是做一个只专注于比特币的高频交易(HFT)机器人(主要是因为比特币上有很多API)。它的一大优势就是在这里和大型交易机构打交道没有障碍。

那是因为在股票交易中,每一毫秒都可能导致交易失误。比如你的机器人会成为另一个更快的机器人引诱要约的牺牲品(想想用更快的服务器和机器人看水?)。但在加密货币中,这些小的时间增量不一定那么重要。

虽然我觉得现在是比特币市场的黄金时代(因为还不完善),但是我快了(可能太快了?)因为找不到足够稳定的基于fix的API,所以放弃了这个想法。这里不想说太多技术细节,因为你会觉得无聊。总之这个交易API基本是基于REST的,对于我的目标来说还不够快。

另外,出于专利保密的原因,我不会公开讨论太多技术的实现细节。虽然我收到了许多项目的开源请求,但我不认为披露这种模型或预测方法的深度细节会损害这种解决方案相对于其他现有机器人的优势。然而,对于任何想知道更多细节的人,我更愿意私下和你讨论。

长话短说,我最终选择了股市,但并没有进入真正的高频交易市场。我的机器人会持仓,行情从几秒到几分钟(有时甚至几小时)不等,所以更像自动化交易员,而不是高频交易员。背后的原因是,作为个人交易者,你很难和大型交易者竞争,因为你缺乏非常强大的硬件,先进的训练有素的软件等有利条件,服务器的位置也不如对方。你离股市越近,接收信息就越快。这些大交易商经常花费数百万美元,仅仅是为了让他们的服务器离交易所几英里远。

我推荐Kite做交易,主要是因为他们的ConnectAPI稳定,带宽低。他们的限制是每秒三个请求,这对于我的新策略来说已经足够了。获得可靠的历史金融数据并不便宜。鉴于如此多的人去提供商那里下载数据,他们限制提供信息也无可厚非。Intrinio是一个很好的实时股票报价提供商,价格非常便宜。然而,获得更深入的数据总是会带来更好的结果。

第一个原型花了我不到一个月的时间。我一般都是利用晚上的时间,然后白天再以自由职业者的身份写。这个时候机器人就不太聪明了。后来,我又花了两周时间给它提供数据,直到错误率达到令人满意的水平,然后我又花了两周时间对它进行测试,然后才投入生产。所以目前这个版本技术实现前后需要4个月的时间,一路走来不断完善。

你未来的目标是什么,你打算如何实现它们?

自从我公开发布这个机器人以来,我已经收到了超过10份来自贸易公司的报价。目前,这个系统让我比其他交易者更有优势。如果我卖掉它,我将失去对其他交易者的优势。虽然我不排除未来出售的可能,但目前我的计划是集中精力改进产品,扩大规模。