【如何用股票交易機器人每月賺3500美元?】

ADVERTISEMENT

編者按:獨立開發者Sebastian Dobrincu建了一個神經網絡用於高頻的股票交易作為業務項目,現在這個機器人每個月能為他賺3500美元。我們一起來看看他是怎麼開發這個神經網絡並把它做大的。不過不要指望從中找到什麼技術實現細節,主要是看看他作為獨立黑客是如何做項目的。

ADVERTISEMENT

背景和項目介紹

我叫Sebastian Dobrincu,是一名軟件工程師,目前的工作是一名自由職業者。我還是一名熱心的產品製造者,熱愛開發業餘的、瘋狂的商業項目。我的職業背景可以用機器學習、移動開發、設計等來概括。

一開始我做Stock Trading Bot(股票交易機器人)只是作為自個人的研究項目。目的是想試試看現代的機器學習方案能不能億極高的頻率用於對當今的股票市場進行預測以及自動化買賣。

結果表明,它在5個月內每個月大概就為我賺了3500美元,而維護成本只有不到90美元/月。目前我自己是主要用戶。我打算繼續開發這個機器人,目標是盡可能擴充它的規模。

你是怎麼想到要開發股票機器人的?

冒出這個想法實際上相當偶然。有一次我準備飛去舊金山之前決定先下載一些播客來看看。我覺得要試一些新東西,於是就從金融欄目里面選了最熱門的一些內容。在一萬英尺的天上,我點擊了播放讓讓自己放鬆下來。

主持這次談到的是流動性的話題,流動性被分為了3個尺度:價格、規模以及時間。姐幫你上當流動性充裕時,投資者就可以成功地以當前的價格在短時間內做出更大的定單交易。當他們開始爭論高頻交易能否通過提供流動性來改善市場時,我打開了手機的筆記本應用,開始奮筆疾書其中一些主要想法。

在這個項目之前,我對金融的了解是相當有限的。我對基礎交易的了解很透徹,但除此以外就不甚了了。我希望改變這一點,但我也記得有人說過99%的金融書都是廢話。

在經過廣泛研究之後,我選定了Larry Harris的《Trading and Exchanges》以及John Hull的《股權、期貨以及其他衍生品》這兩本讀物。第一本也許是我讀過的最好的金融類書籍。它回答了任何進行過交易的好奇者都可能會提出的所有問題。另一方面,John Hull的書對數學金融進行了的極好介紹,讓我從應用角度了解了這門學科。如果你剛剛開始了解交易的話,我高度推薦這兩本書。

我相信,我們已經達到了AI領域的巔峰。我們現在既有強大的機器也有足夠的數據用於AI處理。想到這一點,我內心的那位工程師對於利用當今的先進技術來涉足這一市場感到興奮不已。此外,我對於做一些迷人的項目也非常上癮,這個也不例外。

你開發這個機器人用了多長的時間,采用了哪些技術?

我最初的目標是做一個僅聚焦於比特幣(主要是因為比特幣方面的API很多)的高頻交易(HFT)機器人。其巨大優勢在於在這里沒有跟大型交易機構打交道會遇到的障礙。

那是因為在股票交易時,每一毫秒都有可能導致交易出錯——比如你的機器人會成為另一個更快的機器人引誘報價的受害者(想想看水擁有更快的服務器和機器人?)。但是在加密貨幣中,這些小的時間增量未必就那麼重要。

盡管我認為目前是比特幣市場的黃金時代(因為它還不完美),但我很快(也許太快了?)放棄了這個想法,因為沒辦法找到足夠穩定的基於FIX的API。這里面的技術細節我就不想說太多了因為你會煩的,總之這個交易API基本上是基於REST的,對於我的目標來說表現還不夠快。

ADVERTISEMENT

此外出於專利保密的原因我不會公開討論過多技術的實現細節。盡管我收到了很多項目的開源請求,我認為公開這一模型或者預測方法的深度細節不會損害這一解決方案相對於其他現有機器人的優勢。然而,對於任何想要了解更多細節的人來說,我更願意在私下跟你們展開討論。

長話短說,我最終還是選擇了股票市場,但並不是進入真正意義上的高頻交易市場。我的機器人會守住一個點位,市場從數秒到數分鍾不等(有時候甚至是數小時),所以它更像是一個自動化的交易商而不是高頻交易商。其背後的原因是,作為個體操盤手你是很難跟大型交易商競爭的,因為你缺乏非常強大的硬件、先進的受訓練軟件等有利條件,服務器放置的位置也沒有對方好。離股市越近,你收到信息就越快。那些大型交易商往往要花好幾百萬美元就為了讓自己的服務器離交易所近幾英里。

交易的話我推薦Kite,主要是因為他們穩定的Connect API以及低帶寬。他們的限制是每秒鍾3個請求,對於我的新策略來說這個已經足夠了。拿到可靠的曆史金融數據並不便宜,鑒於有那麼多人跑到提供商那里去下載數據,所以他們限制提供信息沒有什麼好指責的。Intrinio是一個很好的實時股票報價提供商,而且價格也非常便宜。然而,能拿到更深入的數據永遠都會獲得更好的結果。

第一個原型我大概用了不到一個月的時間。我一般是利用晚上的時間,然後在白天作為自由職業者的工作間歇再寫寫。這個時候機器人還不是很聰明。後來我又多花了2周的時間來提供數據給它,直到錯誤率達到令我滿意的程度,然後又用了2周的時間來進行測試,最後才投入生產。所以目前這個版本的技術實現前後總共用了4個月的時間,一路上都在不斷改進。

你的未來目標是什麼,你打算如何實現這些目標?

自從我公開發布了這款機器人之後,我已經收到了交易公司的10多份報價。目前這套系統讓我取得了相對於其他交易商的優勢。如果我把它賣掉的話,我也就失去了對其他交易商的優勢了。盡管我不排除將來出售它的可能性,但目前我的打算是專心改進產品並對其進行擴充。

近期我的打算之一是提高交易金額,讓機器人經受更大的交易量。我腦子里已經有了很多的改進想法,尤其是在調整位置保持的時間跨度方面,此外還有讓它更輕量、促進更大交易量的解決方案。

你面臨的最大問題是什麼?如果你必須從頭開始的話你會怎麼做?

我在應用高頻交易到比特幣上面浪費了太多的時間。一開始這個想法似乎是很棒的,但我很快在試圖擴大請求數方面遭遇到很多的技術問題。然而,我現在還不敢肯定說實現加密貨幣真正的高頻交易是不是就沒有可能了,所以未來我可能還會回過頭來研究一下。

在由於技術限制而拋棄高頻交易的想法之後,我盯上了自動化交易的一種更加分析性的方法。那些改變大部分都不能應用到比特幣市場上,因為這是高度不可預測的,很難圍繞著它建立模型。也就是在那個時候我決定去做股票市場

知道什麼時候該忽略什麼很重要。比方說,我看到很多的獨立黑客盲從於一些隻對有VC資金支持的公司有效的建議。

開始犯的另一個大錯誤是太過於依賴模型。我沒有嚐試用不同的辦法去分析手頭的數據,而是主要靠模型來識別有利潤的模式,沒有投入時間到其他更為直接的解決方案上面。模型只是現實世界的簡單抽象,而我的常識救了我不止一次。

迄今為止,我目前的策略在95%的時間都是有效的。當然,從任何意義上來說這都還不是一個可靠地指標,而且還有很多因素會影響到它。這個機器人還沒有經過足夠的測試來保證這不是僥幸(可能性一樣存在)。大型投資管理公司戶不惜任何代價來實現這些指標,我敢肯定在將來的交易當中我大概保持不了這樣的成功概率。迄今為止所取得的成功很大程度上也是受到了有利的行情條件、選擇的股票,以及機器人只是間歇性運行等因素的影響。

ADVERTISEMENT

此外,當另5%發生時,情況會變得非常糟糕。我是用非常痛苦的方式來學會這個的。不久之前市場變得相當瘋狂,如果我說自己沒有料到自己交易的股票出現重大崩盤的話那就是在撒謊。結果真的發生了這樣的情況。

盡管我的止損讓我避免了重大損失,但如果不是因為我在合適之機介入的話,機器人可能會讓我過去幾個月的利潤付之東流。那次事件讓我開始認真思考,我決定停止運行幾天,直到我把漏洞給修複好。

這對我來說也是一次很好的學習經曆,我認為如果不經曆過這些起伏的話,我永遠也做不出讓它走到今天的算法。我不後悔在比特幣上浪費的時間,因為它讓我對加密貨幣交易如何運作有了更深入的了解,而這些東西也許在將來有朝一日就會派上用場。

你的最大優勢是什麼?有沒有一些特別有用的東西?

我的最大優勢也許是自己是一位樂觀過頭的年輕夢想家。從某種程度來說,這讓我對想法足夠相信願意投入別人不願投入的足夠精力去實現它。正是這個激勵著我堅持要找到市場的那些“後門”。機關許多人認為個體操盤手沒有多少機會扳倒武裝到牙齒的大公司,但我證明了隻要實現得好市場還是有操作空間的。

另一個極其有用的資源是網上公開的研究論文。實際上,我從2006年發表的論文上面得到了極大的幫助。我經常發現這些論文盡管包含著超級有用的分析,但大部分都被為人所忽視。

身為工作狂對取得這一成功也有相當大的貢獻。我每天工作10到12小時一點問題都沒有。在時間方面,我形成了一種非常有生產力且一致的生活方式,設法排除了大部分的干擾。這讓我有時間投入到打磨和研究項目的不同策略上面。

你對有抱負的獨立黑客的建議是什麼?

我見過幾個人,他們在那個論壇上就這麼呆呆地等著完美想法出現,或者花費了幾年的時間去完善產品。Reid Hoffman(LinkedIn聯合創始人)的總結最到位:如果你沒有對v1版感到難堪的話,你的產品發布已經太遲了。

要發布東西!如果你全力以赴開發了某個東西但卻放棄推出它的話,沒人會在意它的。我們生活在一個非常資本主義的社會,大家會根據真正的結果來判斷你。沒人會在意你的行動計劃以及你為什麼不發布出去的理由。

正如Sam Altman(YC負責人)所說那樣,沒人會原諒你沒有一個偉大的產品。然而,什麼都沒有肯定比這還要糟糕。不要第一版就想做到完美。先到市場上嗎試試水,收集大量反饋然後不斷迭代你的想法。

盡管這並不是一個面向客戶的產品(目前暫時不是),但是業餘項目的力量再怎麼強調也不為過。業餘項目讓你可以試驗瘋狂的想法又不會被說成是瘋狂的。而且即便大家根據這個來對你做出判斷,你也可以拋出這句話來當擋箭牌:“是的,這不過是個業餘項目罷了。”

還有,你一定要追求腦子里面最瘋狂的想法。大多數成功的公司都是這麼創辦出來的(比如說Facebook、Uber、AirBnb)。你大概不會想浪費自己最寶貴的資源,去開發出又一個Snapchat的山寨品來吧。每一個問題都有一個解決方案。你只是需要有足夠的創意去找到它而已。

ADVERTISEMENT