啥?他一個人寫了個價值100萬的軟體,卻用來開源了!
Dromara開源社群裡有這麼一款專業軟體,作者Kevin笑稱這軟體得估值百萬。今天小編就帶大家一起來看看,這究竟是個什麼玩意兒。
以下是小編與作者Kevin的對話摘錄。
小編:這究竟是個啥軟體啊?
Kevin:專業術語叫量化交易軟體。說人話就是,一個可以程式設計、並通過程式化執行交易邏輯,從而實現在期貨、股票、外匯市場上進行買賣交易的軟體。
小編:嗯,聽上去好像很厲害的樣子。真的能值100萬麼?
Kevin:呵呵,其實一個軟體值多少錢,得看你的估值模型。一般來講,比較容易理解的估算模型有兩種:一種是以投入成本估算的模型,比如一個軟體投入了多少人多少工時,總花費成本是多少錢,那這個軟體就值多少錢;還有一種是以它所帶來的收入現金流來估算的模型,比如一年可以賣100萬。
小編:那你這個是按哪一種演算法呢?
Kevin:其實都差不多。業界比較有名的付費商業軟體,一般都是在1萬元/年左右的價格。那麼100萬也就100個使用者而已。要是按投入成本算,我的工時費還是蠻高的,具體就不告訴你了,哈哈。
小編:當時是怎麼會想到開發這麼個東西呢?
Kevin:首先是興趣。我很久之前就在想,怎麼可以把交易邏輯寫成程式,然後可以自動化執行。直到2015年才接觸到了上面提到的那些商業軟體。當時就買了來用,當時的1萬塊跟現在都不是一個概念,我可以說是咬著牙來買的。後來折騰了一年,交易上也沒掙到什麼錢,再加上這麼貴的軟體成本,就沒繼續買了。後來也瞭解到了一些其他的開源方案,一般都是用PYTHON開發的。我當時也試用了一下,感覺也不太好用。再後來接觸到了一個用JAVA寫的專案,因為我本身是做JAVA相關的開發的嘛,所以就特別感興趣。但那個專案的作者沒有提供足夠的文件,對使用者不太友好。結果我把心一橫,求人不如求己嘛,就開始基於那個JAVA專案改造成自己心目中的樣子。到目前為止,已經迭代了四個版本了。
小編:現在都有哪些功能了?
Kevin:剛才提到的那些商業軟體提供的功能,我這軟體都能實現了。比如編寫交易邏輯、執行交易邏輯、做歷史回測、程式執行監控臺等等。理論上說,那些商業軟體能做的,我這也能做;他們做不了的,我這也能做。
小編:一路走來,迭代了四個版本,中途遇到過一些什麼困難麼?
Kevin:個人覺得最難的莫過於軟體建模。因為平時我們一般在公司做業務程式碼開發,大部分人都是做資訊系統的開發,基本上都是面向資料庫程式設計的。一般的資訊系統的資料流,無非就是從介面流到資料庫,又或者把請求轉發到第三方的服務去,再把響應結果從第三方服務轉回去前臺。而這個交易平臺,資料庫只是一個輔助角色,很多計算要在執行時記憶體處理的,所以需要定義很多模型。最難的是,這玩意兒完全是要靠憑空定義出來的,沒有一些最佳實踐給你參考。所以要通過不斷的嘗試與迭代,才能找到一些比較好的設計方案。有幾次都讓我差點想放棄不做了。
小編:那後來是怎麼堅持下來的呢?
Kevin:很多時候就是太累了,才會萌生放棄的想法,然後不斷自問我究竟是在折騰啥呢?每次我意識到自己這麼喪的時候,我就去睡覺。睡醒一覺有了精神,很多之前沒想通的問題就有了新的思路。就是這麼堅持下來的。
小編:為什麼選擇走開源這條路呢?
Kevin:一開始我其實沒考慮太多,就是覺得有個自己的開源專案是件很酷的事情。但這一路走來,我也在不斷反思這個問題,尤其是像log4j事件,給我觸動挺大的。作者不單貢獻了自己的時間,還招來了社群的一頓罵,這開源專案要是都這樣做,以後都沒人願意做開源了。所以現在我覺得開源專案必須要有商業閉環,才能實現長久的發展。其實我們是已經有現成的模式可以參考的。開源專案本身就好比抖音上的網紅,本質上就是網紅模式。通過開源專案作為流量入口,把公域流量轉化成私域流量,只要有流量就有變現的可能。這就是開源專案的商業化模式。
小編:那未來你這專案大概會怎麼走呢?
Kevin:我這專案的定位是針對入門級的量化交易愛好者的,使用者需要有一些程式設計基礎,也需要一些交易經驗。目前我們的社群也有百來人吧,基本上都是這類人群為主。同時我也希望有更多志同道合的朋友來加入我們。我希望打造出一個生態,讓每個社群的夥伴都能有所收穫。比如有的在這裡學會了做量化交易最終能從市場上賺到錢,有的提升了技術水平在職場上把錢賺回來,有的能從中找到一些付費服務機會為其他人提供服務等等。最後,我也分享一下專案的官網 (opens new window),方便大家做更進一步的瞭解。
這個專案英文名叫 Northstar
代表北極星,喻意它可以幫我們在交易領域指明方向;中文名叫 盈富
,寓意著盈滿則富。
專案面向的是單租戶場景的個人應用軟體,採用了 B/S 架構去解決交易平臺會部署在雲伺服器7x24地執行的需求。專案主程式採用了JAVA + springboot的技術棧,前端監控臺則採用js + vue的技術棧。
專案有三大精彩亮點:
- 專案的可擴充套件性設計:作者針對量化交易軟體的特點,提供了高度可擴充套件的程式架構,使得使用者可以按自己的需求自行擴充套件,輕鬆對接不同交易所的介面,以及實現不同型別的交易策略。
- 使用者程式設計介面的簡化設計:作者巧妙地採用了函數語言程式設計模型,極大地簡化了使用者編寫交易策略的難度。
- 交易平臺的抽象模型設計:作者通過這個專案的磨鍊,大大提升了系統架構設計能力,技術水平上升了一個數量級。
更多亮點歡迎各位自行挖掘。
附上專案的地址:
官網地址:http://northstar-doc-1gwbhfxd522a1168-1310148562.ap-shanghai.app.tcloudbase.com/ (opens new window)
倉庫地址:http://gitee.com/dromara/northstar(opens new window)
開源不易,歡迎點贊支援!
- 使用 HertzBeat 5分鐘搞定 SpringBoot2 監控告警
- 使用開源實時監控系統 HertzBeat 對 Mysql 資料庫監控告警實踐
- 使用 HertzBeat 對 執行緒池框架 DynamicTp 進行監控實踐
- 使用 HertzBeat 對 API 閘道器 Apache ShenYu 的監控實踐
- 5分鐘搞定 HertzBeat 對物聯網資料庫 IoTDB 監控實踐
- 中秋第一天,我寫了一篇SSL證書過期監控最佳實踐
- 00 後 Dromara 成員帶你學 Java Lambda 函式程式設計
- 學到就是賺到,面試加分項之WebServer執行緒池管理!
- 啥?他一個人寫了個價值100萬的軟體,卻用來開源了!
- 執行緒池,我是誰?我在哪兒?
- API除錯 API管理 API搜尋工具,為什麼不能在一起?
- IDEA版Postman - Fast Request版本更新,為簡化開發而生
- Hutool-5.8.0.M1 釋出,嘗試里程碑釋出
- HertzBeat v1.0.beta.6 釋出,Linux 監控支援來啦!
- 【萬字長文】Apache ShenYu整合Apache RocketMQ實現海量日誌採集的原理與實踐
- 易用友好的監控告警系統HertzBeat赫茲跳動v1.0.beta.5釋出
- MaxKey 單點登入認證系統 v3.3.3 GA 釋出