1. 程式人生 > >回國兩年小結,我所見到的是海闊天空 【董可人】

回國兩年小結,我所見到的是海闊天空 【董可人】

作者:董可人
連結:https://zhuanlan.zhihu.com/p/25814461
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

我從2015年5月回國加入凱納擔任 CTO,轉眼間已經快滿兩年。兩年前,我雖然有一些在海外工作積累下的行業經驗,但是對於國內的量化環境還是一無所知的小白。兩年後,得益於在凱納這家國內本土一線量化私募的工作,我實際處理了很多在國內做量化所必需要面對的現實問題,同時也得以接觸很多國內的同行,對於主流的量化團隊的工作模式有了一些瞭解,終於算是接了地氣。這一篇文章我就來講一下從一個 CTO 的視角上,這兩年裡我的一些感受。國內的優點不多說了,行業發展快機會多空間大,是難得的沃土,我非常慶幸兩年前做了回國的決定,對於這兩年的進展也很滿意和開心。下面主要講問題。

首先,毫不意外的,國內的量化團隊普遍來說IT水平是比較差的。這裡沒有貶義,就算是西方那麼多國家,要論IT研發能力,網際網路系的科技公司都比金融業高到不知哪裡去了,相比之下國內的情況雖然漏洞百出,但是還不算太糟,至少大家都能做到自給自足。這裡面一方面是金融業吸收新技術相對比較保守,整體科技升級的步子不可能邁得太大,另一方面科技人才要轉行也有很多現實的挑戰,比如薪酬體系不明確,學習有曲線門檻比較高等之類。現實來看,量化這麼一個雖說是科技驅動的行業,其實際的IT水平還存在很大的發展空間。

舉例來說,我所接觸的大多數量化團隊都是這麼一個配置,策略人員主要使用 matlab 或者 python/pandas 之類的數學類軟體開發策略訊號,然後有少則一兩個多則三五個程式設計師負責開發訊號執行系統。基本上每個採取了這種配置的團隊,表面上看起來都是其樂融融。你如果要看工作演示,那個主程一般就會掏出一個編譯好的軟體(可能是 windows 上的帶圖形介面的,也可能是 linux 上的純命令列的程式),演示怎麼啟動、操作、停止這個軟體,everything is just working。但是仔細看,實際上這個配置下面的開發模式是非常脆弱的。一般來說,這少數的幾個程式設計師會使用 svn 或者 拿著 git 當 svn 使來做版本控制,整合測試很可能是沒有用的(主要靠實盤),更不用說 peer review 等高階點的保障軟體質量的手段。甚至軟體交付也缺乏標準化流程,很可能是u盤拷一個新鮮編譯的 exe 就上線了,交易機器多了甚至都搞不清哪臺機器執行的是哪個版本。

另外一個常見的問題是,大家的儲存普遍做的很差。研究用的資料,常見的萬得、恆生聚源等都以 SQL 資料庫的形式提供,策略師一般需要自己進行清洗處理成便於匯入 matlab 之類軟體的格式,這個過程很容易變成一筆爛賬,尤其是和生產系統關聯在一起以後,怎麼維護清洗程式碼,怎麼保證每天的匯出可以在無人看守的情況下正常穩定執行,都是並不簡單的工程問題。比方說供應商的資料推送延遲了、導資料的機器記憶體洩漏了或者硬碟滿了、甚至辦公室大樓半夜斷電了,都對資料質量有直接影響。實盤交易的儲存,就更是問題多多,有的乾脆沒存,出現問題全靠實盤除錯;有的會用 MySQL,然而行情資料往關係型資料庫裡硬懟無論如何都是一場噩夢;稍微聰明點的會上一些記憶體型資料庫比如 mongo 或者 redis,這些東西的穩定性和效能又夠喝一壺。在這種環境下,你要想對成交記錄做點細緻分析,基本上只能靠拍腦袋,因為連準確可靠的資料都沒有。有時候我真的佩服在這種環境下野蠻生長的量化團隊,除了運氣以外能依靠的只有不計成本的試錯了。

真正的危險還在於,負責研發策略的 quant 們,因為自身有一定的程式設計能力,很容易產生一種輕視工程技術的心理,如果除了會寫 matlab 以外還能寫幾行 c++,那簡直要自信心爆棚。我理解凸顯自己全知全能是一個聰明人的人性,但很遺憾的是系統開發是一項需要百分百投入的工作,一個人絕不可能既是策略專家,又是系統專家。我在工作中接手過很多策略同事的程式碼,有些質量問題至今還讓人頭疼不已。這兩年裡如果說我得到了什麼深刻的經驗,那就是在團隊中劃分清楚策略和IT的邊界是一道必需解開的難題,既要保證策略師有足夠的空間進行創造性研究工作,又要避免他們對生產系統產生破壞性的影響,這件事處理的好壞對於團隊發展有決定性的影響。

不過,要命的是,在這個行業裡,大多數人實際上不會覺得現有的模式有什麼問題,因為的確在表面上看起來,每天系統都在交易,簡直歌舞昇平。但是你如果把播放時間加快,就會發現,這樣的團隊一般在規模上很難擴大,因為根本就不具備擴容的實力。最後高層會不得不通過其他方面的辦法實現資管規模擴大,比如金融方面的產品設計(收益率注水),或者是人力上的簡單複製(每增加一種產品就單獨招一批新的開發人員)。而對於開發者來說,在這個局面下,一方面你的工作對整體業績的貢獻相當有限,導致回報不可能有較大的提升,另一方面長期在這種作坊式的工作模式下賣力,對於個人的職業生涯恐怕就算不是毀滅性影響,也是溫水煮青蛙式的慢性自殺,因為乾的事情無非是機械性的適配一個又一個的櫃檯介面,對各種現存的不相容的系統補丁摞補丁,你怎麼能在工程能力上有顯著提高呢?

所以我們可以看到一個很弔詭的現狀,量化團隊表面上雖然都會強調IT的重要性,但實際上開發到一定階段就觸頂到天花板,開發模式缺乏能增加更多商業價值的底層架構,當然在行業的業績增長中難以分到更重要的一杯羹;然後因為IT開發在行業中實際上的不重要性(因為做的爛,老闆們乾脆想別的辦法避開這個薄弱環節),平均而言回報也難以和BAT系的網際網路科技公司抗衡,直接造成了行業內的招人難;最後因為缺乏高素質人才的進入,很多典型IT問題無法解決,又難以根本上提升IT的貢獻度,陷入一個死迴圈困境。

以上是我對現存的一些業內問題的理解和看法。問題說了不少,如何應對和解決似乎沒怎麼講,因為聰明的我當然不會在一篇文章裡寫完所有的話,請大家期待後續的文章。順便透露一點,我們也在考慮把我們的一些工作成果以開源的形式提供出來,讓大家看看我們對於這些問題究竟交出一份怎樣的答卷,歡迎關注。

說了這麼多,關子也賣過了,如果激起了你的一點點好奇心,想看看我所在的到底是一個怎樣的團隊,我們是如何與眾不同的解決上面說的這些問題,那就請你看一條招聘廣告:

凱納資本是由眾多具有海外背景和國內證券期貨領域資深投資人組成,公司成員畢業於清華、復旦、上交、曼徹斯特大學、倫敦商學院等海內外知名學府。公司目前資管規模接近20億,並且還在保持快速增長。公司在北京、上海、廣州均有辦公室,其中在上海和廣州都設有策略研發團隊。凱納IT部位於上海,為公司內部數個策略團隊提供IT支援,工作包括開發及運維策略回測平臺、交易執行系統等,現有系統支援股票、期貨等多品種,多週期策略,經過大資金實盤檢驗,在高頻領域也印證過自身實力,現在到了我們接納新人的時候。

我們承諾你會得到一線量化系統的開發經驗,以及一流的技術研發環境,你將體驗使用最前沿的技術解決量化交易中的種種難解之題,見證一個快速發展的量化公司的成長曆程。我們保證你在這裡工作的每一天都將進行有挑戰的工作和肉眼可見的成長速度,不會浪費你的時間在無意義的專案上。這樣,除去有市場競爭力的薪酬,你付出的努力和收穫的成長也會保障你的增值。

同時,我們期望你是一個積極主動,能夠快速成長、快速推動所負責專案前進,有活力的新星。你應該拒絕接收低效的工作方式,無法忍受停滯不前的工作狀態,厭惡沒有條理和複雜的工作環境,以及有良好的溝通能力和自控能力。我們期待與這樣的你共舞。

職位:程式設計師

地點:上海

職位要求:

1、重點大學計算機或者相關專業

2、至少熟練使用一門語言(c/c++[11+]/python/java/javascript 均可),掌握常用資料結構及演算法。(熟悉函數語言程式設計技術如 scala/erlang/haskell 或其他語言中的functional功能可加分)

3、熟悉前端技術(html/css/angularjs 等)可加分。

4、熟悉網路原理(tcp/ip),作業系統(檔案系統、kernel原理等),計算機體系結構等可加分。

5、熟悉 git/phabricator/jenkins/docker/tcpdump/dtrace/stap 等開發工具可加分。

6、不要求金融背景,相關知識可在工作中進行學習。

工作內容包括但不限於: 參與搭建低延遲交易執行系統的開發,包括底層架構、策略引擎、儲存系統等。

有意者請傳送簡歷到 [email protected]

相關推薦

回國小結見到的是海闊天空 可人

作者:董可人連結:https://zhuanlan.zhihu.com/p/25814461來源:知乎著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。 我從2015年5月回國加入凱納擔任 CTO,轉眼間已經快滿兩年。兩年前,我雖然有一些在海外工作積累

沉澱的開源專案已上線!

轉載請註明出處:https://blog.csdn.net/guolin_blog/article/details/84886691 本文同步發表於我的微信公眾號,掃一掃文章底部的二維碼或在微信搜尋 郭霖 即可關注,每個工作日都有文章更新。 今天跟大家談談情懷。

過的最簡短、最靈活的javascript日期轉字符串工具函數

var gets java cti return -m func date 靈活 我們知道javascript的Date對象並沒有提供日期格式化函數。將日期對象轉換成"2015-7-02 20:35:11"等這樣的格式又是項目中非經常常使用的需求。近期在我們項目中看到了

實習到轉正以來希望自己能夠不斷的進步

免費空間 一個 支付寶 前景 零花錢 開機 了解 找工作 建立 2016年年末就開始準備建立自己的網站了,那時的我,剛剛邁入社會,壓力瞬間上升,自己不能成為啃老族,要開始進入找工作的大軍中,在去年6,7月中同拿到畢業證的學長學姐們爭下一條路,在前路迷茫中,踏入滬

神獸大廳源碼搭建前端入行--教會了這些道理

種子 創始人 上下 折騰 幸福 與他 簡歷 知識 是你 1.前言光陰似箭,日月如梭。不得不感慨時間過得很快,2017差不多結束了,一下子我從事前端開發的時間已經兩年了。神獸大廳源碼搭建(h5.hxforum.com)扣扣2952777280這兩年可以說是一波三折,回想這兩年

淺談的CSS組織風格

color 後處理 time 分布 抽取 gin variables cor pic 1.簡單組織(見習級) projectName ├─css | └style.css 優點:簡單,單一文件,適合一些簡單項目。 缺點:過度集中,沒有模塊化,無法適應大型項目。 2

7回來一事無成

性格 cto 現在 心態 自己的 老師 都是 更新 慢慢 正所謂做多做少都是累,說多說少都是罪。路邊大叔我最後沒有成為程序員,去做了和編程無關的事情。說是造化弄人或者天意難測都行。現在自己也算半個殘疾人,性格又扭曲,很多東西都不如過去,7年過去,自己依然發現自己是個×××。

使用了eclipse10之後終於投向了IDEA

mac inf 快捷 不出 問題 編程 ibm 但是 翻譯 使用了eclipse10年之後,我終於投向了IDEA 最近,改用了idea,同事都說我投敵了。當然,這些同事都是和我一樣的“老”程序員。不說畢業生,公司裏的90後基本電腦都不會安裝eclipse。 eclipse的

一個程式設計師的六反思為什麼選擇快速開發

  經常會寫點東西,寫久了就不知道該說些什麼了,看著各位技術大V在社群中侃侃而談,菜鳥新手孜孜不倦,甚是感慨,回想一下自己走過的路,諸多記憶湧上心頭,今天閒來無事,一起聊上一聊。 今天為止,混到CTO已經兩年了,參與過大大小小的專案也有幾十個了,苦逼的是現在依然需要帶小弟,畢竟要保持團隊年輕化嘛

一個程序員的六反思為什麽選擇快速開發

框架 平臺 工作流 經常會寫點東西,寫久了就不知道該說些什麽了,看著各位技術大V在社區中侃侃而談,菜鳥新手孜孜不倦,甚是感慨,回想一下自己走過的路,諸多記憶湧上心頭,今天閑來無事,一起聊上一聊。 今天為止,混到CTO已經兩年了,參與過大大小小的項目也有幾十個了,苦逼的是現在依然需

花了六時間才和你坐在一起畫拓撲

我親愛的同事們,客戶們,如果我是一個剛畢業的小白,又或是一個沒有經驗的工程師,你們會讓我來規劃一個集團的網路嗎?不會,肯定不會。我花了六年時間,現在終於有信心規劃一個有上萬人企業的網路,終於有能力畫出一張有幾個資料中心的拓撲圖,終於敢站在老闆的面前講我的PPT。 想起了《讀者》上的一篇文章,於是拿來改改給大

程式設計師嘆息:畢業稅前50萬很失敗網友:不裝逼能死?

每個行業都有喜歡花式炫耀的人,網際網路這個圈子尤甚。因為網際網路是目前的熱門行業,造就了一批批的暴富神話,因此這個行業也被其他行業吐槽太浮躁,太功利了。 有一名研究生畢業兩年半的程式設計師就在網路上開啟了花式炫富模式,稱自己稅前50萬,感覺活得特別失敗。 其稱:碩士畢業,在網際

開發了5android開始了go學習之旅

奧術大師 做了近5年的android開發,最近專案也是不怎麼忙,空閒的時候總會思考一些事情,不過作為移動開發,我個人覺得很有必要學習後臺開發,由於公司是Go語言開發的,瞭解go語言一段時間後,我發現go語言的強大。基於優雅的語法和其強大的併發性,我開啟我的go學習之旅。 golang強大的資料庫

做了三開發的出路在哪?

  轉眼之間,從事開發工作已三年,但卻是第一次建立部落格,第一次寫文章,確實很慚愧。。。回想起剛剛接觸程式碼的時候,有些興奮,同時也有很多迷茫。。。興奮的是我即將從事這麼神祕、這麼牛X的一份工作,我將用我的雙手敲出的程式碼來改變我的生活;迷茫的是,我該怎麼開始呢?   由於我“大學”(暫且叫它是大學,其實就

在過去的一是如何自學資料科學的?

  作者: Harrison Jansma編譯: MikaCDA 資料分析師原創作品,轉載需授權   在過去的一年裡,我自學了資料科學。我學習了數百個線上資源課程,每天學習6-8個小時,同時還在做一份兼職工作謀生。 我的目標是在缺乏資金的前提下,從事我熱愛的資料科學職業。 在過去

次轉行為什麼要做程式設計師?

我本是學機械工程及其自動化出身的,本科時也跟著師兄、師姐煞有介事的參與了兩個機械類專案,其中一個專案預算也還挺嚇人的,好吧,即使我現在看也覺得不少。但是忙忙碌碌三年的時光過去了,專案結題了,自己在機械領域的能力真的沒什麼長進。 那會兒的我從一個訪談節目中的整容醫生那裡聽來一萬小時原理,覺得自己也

Java你憑什麼要15k?程式設計師:這就嫉妒了?白菜價好吧

昨天小編看到一位網友寫了一篇短文,結合網友們的評論,還是還挺有意思的。所以拿來和大家分享下:兩年Java,你憑什麼問公司要15k?憑學歷?還是憑長相?Java的基礎你確定你都滾瓜爛熟了嗎?資料結構你確定你都會了嗎?前端程式碼你確定你上手就能寫了嗎?半個小時內搭好一套簡易的SS

13 寫了這些糟糕的遊戲程式碼

【導讀】:Evan Todd 用風趣幽默的口吻點評了自己從 2004 年以來做遊戲時寫的程式碼,有 Java、C++、Python。經過十幾年打怪練級,最近終於完整地做完並推出了自己的第一套遊戲。Todd 今年 26 歲。 在一個獨處的星期五晚上,因急需一些靈感,

敏捷開發英文是Agile理解的敏捷

理論上的知識我看的不多,沒有很準確的概念,我想無論哪種開發方式都有自己的理論基礎,和相應的方法步驟,比如 瀑布模型,增量模型,迭代模型,敏捷方法等, 並且由於專案不同,比如是否是新專案,二次開發專案,或者是維護專案,採用的方法也不盡相同,沒有固定不變的,不同的公司也可能不

Java的序列化和反序列化遇到的坑

有時需要為物件做持久化,就是把記憶體裡的物件儲存到磁碟(暫且叫做磁碟吧,可以等同於sp、db、檔案、網路等)上,等以後需要這個物件的時候再從磁碟上還原到記憶體,因此需要序列化和反序列化。 如果使用ObjectOutputStream方式序列化,可能出現的坑如下: 坑1、類裡