編者按:獨立開發者SebastianDobrincu建了壹個神經網絡用於高頻的股票交易作為業余項目,現在這個機器人每個月能為他賺3500美元。我們壹起來看看他是怎麽開發這個神經網絡並把它做大的。不過不要指望從中找到什麽技術實現細節,主要是看看他作為獨立黑客是如何做項目的。
背景和項目介紹
我叫SebastianDobrincu,是壹名軟件工程師,目前的工作是壹名自由職業者。我還是壹名熱心的產品制造者,熱愛開發業余的、瘋狂的商業項目。我的職業背景可以用機器學習、移動開發、設計等來概括。
壹開始我做StockTradingBot(股票交易機器人)只是作為自個人的研究項目。目的是想試試看現代的機器學習方案能不能億極高的頻率用於對當今的股票市場進行預測以及自動化買賣。
結果表明,它在5個月內每個月大概就為我賺了3500美元,而維護成本只有不到90美元/月。目前我自己是主要用戶。我打算繼續開發這個機器人,目標是盡可能擴充它的規模。
妳是怎麽想到要開發股票機器人的?
冒出這個想法實際上相當偶然。有壹次我準備飛去舊金山之前決定先下載壹些播客來看看。我覺得要試壹些新東西,於是就從金融欄目裏面選了最熱門的壹些內容。在壹萬英尺的天上,我點擊了播放讓讓自己放松下來。
主持這次談到的是流動性的話題,流動性被分為了3個尺度:價格、規模以及時間。姐幫妳上當流動性充裕時,投資者就可以成功地以當前的價格在短時間內做出更大的定單交易。當他們開始爭論高頻交易能否通過提供流動性來改善市場時,我打開了手機的筆記本應用,開始奮筆疾書其中壹些主要想法。
在這個項目之前,我對金融的了解是相當有限的。我對基礎交易的了解很透徹,但除此以外就不甚了了。我希望改變這壹點,但我也記得有人說過99%的金融書都是廢話。
Sebastian渴望坐下來學習舒適區以外的新東西是極其有益的。
我相信,我們已經達到了AI領域的巔峰。我們現在既有強大的機器也有足夠的數據用於AI處理。想到這壹點,我內心的那位工程師對於利用當今的先進技術來涉足這壹市場感到興奮不已。此外,我對於做壹些迷人的項目也非常上癮,這個也不例外。
妳開發這個機器人用了多長的時間,采用了哪些技術?
我最初的目標是做壹個僅聚焦於比特幣(主要是因為比特幣方面的API很多)的高頻交易(HFT)機器人。其巨大優勢在於在這裏沒有跟大型交易機構打交道會遇到的障礙。
那是因為在股票交易時,每壹毫秒都有可能導致交易出錯比如妳的機器人會成為另壹個更快的機器人引誘報價的受害者(想想看水擁有更快的服務器和機器人?)。但是在加密貨幣中,這些小的時間增量未必就那麽重要。
盡管我認為目前是比特幣市場的黃金時代(因為它還不完美),但我很快(也許太快了?)放棄了這個想法,因為沒辦法找到足夠穩定的基於FIX的API。這裏面的技術細節我就不想說太多了因為妳會煩的,總之這個交易API基本上是基於REST的,對於我的目標來說表現還不夠快。
此外出於專利保密的原因我不會公開討論過多技術的實現細節。盡管我收到了很多項目的開源請求,我認為公開這壹模型或者預測方法的深度細節不會損害這壹解決方案相對於其他現有機器人的優勢。然而,對於任何想要了解更多細節的人來說,我更願意在私下跟妳們展開討論。
長話短說,我最終還是選擇了股票市場,但並不是進入真正意義上的高頻交易市場。我的機器人會守住壹個點位,市場從數秒到數分鐘不等(有時候甚至是數小時),所以它更像是壹個自動化的交易商而不是高頻交易商。其背後的原因是,作為個體操盤手妳是很難跟大型交易商競爭的,因為妳缺乏非常強大的硬件、先進的受訓練軟件等有利條件,服務器放置的位置也沒有對方好。離股市越近,妳收到信息就越快。那些大型交易商往往要花好幾百萬美元就為了讓自己的服務器離交易所近幾英裏。
交易的話我推薦Kite,主要是因為他們穩定的ConnectAPI以及低帶寬。他們的限制是每秒鐘3個請求,對於我的新策略來說這個已經足夠了。拿到可靠的歷史金融數據並不便宜,鑒於有那麽多人跑到提供商那裏去下載數據,所以他們限制提供信息沒有什麽好指責的。Intrinio是壹個很好的實時股票報價提供商,而且價格也非常便宜。然而,能拿到更深入的數據永遠都會獲得更好的結果。
第壹個原型我大概用了不到壹個月的時間。我壹般是利用晚上的時間,然後在白天作為自由職業者的工作間歇再寫寫。這個時候機器人還不是很聰明。後來我又多花了2周的時間來提供數據給它,直到錯誤率達到令我滿意的程度,然後又用了2周的時間來進行測試,最後才投入生產。所以目前這個版本的技術實現前後總***用了4個月的時間,壹路上都在不斷改進。
妳的未來目標是什麽,妳打算如何實現這些目標?
自從我公開發布了這款機器人之後,我已經收到了交易公司的10多份報價。目前這套系統讓我取得了相對於其他交易商的優勢。如果我把它賣掉的話,我也就失去了對其他交易商的優勢了。盡管我不排除將來出售它的可能性,但目前我的打算是專心改進產品並對其進行擴充。