量化交易--第一節(jié)--why python襟雷,not java

Why python ,not java
    我們選用Java作為API語(yǔ)言是因?yàn)椤覀冎粫?huì)Java——這并不是一句單純的玩笑話。

在API設(shè)計(jì)之初搔驼,我們的確想過(guò)用Python,然而最初的創(chuàng)始人(我和@licco-li)對(duì)于Python幾乎完全不了解侈询,而我們(主要是我)當(dāng)時(shí)天真地認(rèn)為Java自從JDK1.8開(kāi)始從語(yǔ)法層面跟Python幾乎沒(méi)有明顯的劣勢(shì)舌涨,所以用Java來(lái)寫(xiě)一套量化交易API只是沒(méi)人敢想而不是做不出來(lái)。于是決定先用Java來(lái)寫(xiě)這一套名為“Market Hammer”的算法引擎及API扔字。

當(dāng)然為了實(shí)現(xiàn)一個(gè)完整的量化平臺(tái)囊嘉,光有一個(gè)引擎是不行的。后臺(tái)還有撮合引擎革为、風(fēng)險(xiǎn)值計(jì)算器哗伯、數(shù)據(jù)源等模塊,還有一系列支撐平臺(tái)的調(diào)度模塊篷角,總共30余萬(wàn)行代碼(自動(dòng)生成的有約10萬(wàn)行焊刹,主要是通信框架,類(lèi)似現(xiàn)在的gRPC恳蹲,只不過(guò)當(dāng)時(shí)它還沒(méi)有出現(xiàn)虐块。我們自己實(shí)現(xiàn)了一套Netty+ProtoBuffer+gRPC的類(lèi)似物——不是定制——以滿足高性能要求)。這些都是現(xiàn)在平臺(tái)性能的關(guān)鍵:當(dāng)你選擇股票的數(shù)量在100個(gè)以下時(shí)嘉蕾,不管回測(cè)時(shí)段選的是1年還是10年贺奠,回測(cè)速度幾乎沒(méi)有區(qū)別。因?yàn)橹饕款i不在回測(cè)運(yùn)行上错忱。我們以后還會(huì)進(jìn)一步優(yōu)化編譯這個(gè)步驟儡率,已經(jīng)有方案挂据,大概還可以節(jié)約0.5秒左右。

這一切看起來(lái)很美儿普,但是……

近期我們請(qǐng)了一些實(shí)習(xí)生來(lái)幫我們開(kāi)發(fā)一些基本的策略崎逃,并發(fā)在論壇上供大家學(xué)習(xí)參考。直到上個(gè)月中眉孩,我們發(fā)現(xiàn)了Java語(yǔ)言的局限性个绍。Java的局限性并不在于語(yǔ)言本身,而是在于它的社區(qū)浪汪,確切地說(shuō)巴柿,是科學(xué)計(jì)算的社區(qū)。

Java誕生的目的是為了工程死遭,所以它是強(qiáng)類(lèi)型+靜態(tài)類(lèi)型的語(yǔ)言广恢。而Python一開(kāi)始就是為科學(xué)計(jì)算準(zhǔn)備的,它是強(qiáng)類(lèi)型+動(dòng)態(tài)類(lèi)型的語(yǔ)言呀潭。強(qiáng)類(lèi)型保證了數(shù)據(jù)的嚴(yán)謹(jǐn)性(如 s = "1" + 1會(huì)報(bào)錯(cuò)袁波,而不會(huì)返回2),動(dòng)態(tài)類(lèi)型又使得開(kāi)發(fā)比較簡(jiǎn)便蜗侈,當(dāng)然犧牲了一大部分類(lèi)型推導(dǎo)能力及性能篷牌,使得它不適合做復(fù)雜的系統(tǒng)工程。

后來(lái)各大投行開(kāi)始從經(jīng)濟(jì)上支持Python的科學(xué)計(jì)算社區(qū)踏幻,使得Python的科學(xué)工具棧無(wú)比強(qiáng)大枷颊。如果Java也有Python的工具棧,Python一行搞定的事情Java也不需要兩行该面,然而Java就是沒(méi)有夭苗。

我個(gè)人非常想將Java推向科學(xué)計(jì)算領(lǐng)域,因?yàn)樗鄬?duì)于C++來(lái)說(shuō)隔缀,性能上并不吃虧题造,而語(yǔ)言本身比C/C++簡(jiǎn)單太多(GC就不提了因?yàn)镃++11開(kāi)始也有了),非常適合科學(xué)計(jì)算使用——只要有合適的工具搞定編譯和運(yùn)行猾瘸。然并卵界赔。Python已經(jīng)在那里,并且很強(qiáng)大牵触,我不能憑一己之力淮悼,Ricequant也不能憑一個(gè)平臺(tái)之力來(lái)改變這個(gè)現(xiàn)狀。不能硬來(lái)揽思,只能妥協(xié)袜腥,所以我們將推出Python版本的API,包括基于Jupyter(IPython Notebook)的研究平臺(tái)钉汗,以及基于Python的API(背后仍然調(diào)用Java以保證性能及穩(wěn)定性)羹令。以后我們會(huì)同時(shí)維護(hù)兩套API鲤屡,各有各的工具鏈,也各有優(yōu)勢(shì)福侈。

直到某一個(gè)平臺(tái)的用戶數(shù)降到0酒来。

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市癌刽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尝丐,老刑警劉巖显拜,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異爹袁,居然都是意外死亡远荠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)失息,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)譬淳,“玉大人,你說(shuō)我怎么就攤上這事盹兢×诎穑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵绎秒,是天一觀的道長(zhǎng)浦妄。 經(jīng)常有香客問(wèn)我,道長(zhǎng)见芹,這世上最難降的妖魔是什么剂娄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮玄呛,結(jié)果婚禮上阅懦,老公的妹妹穿的比我還像新娘。我一直安慰自己徘铝,他們只是感情好耳胎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著惕它,像睡著了一般场晶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怠缸,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天诗轻,我揣著相機(jī)與錄音,去河邊找鬼揭北。 笑死扳炬,一個(gè)胖子當(dāng)著我的面吹牛吏颖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恨樟,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼半醉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了劝术?” 一聲冷哼從身側(cè)響起缩多,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎养晋,沒(méi)想到半個(gè)月后衬吆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绳泉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年逊抡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片零酪。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冒嫡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出四苇,到底是詐尸還是另有隱情孝凌,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布月腋,位于F島的核電站胎许,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏罗售。R本人自食惡果不足惜辜窑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寨躁。 院中可真熱鬧穆碎,春花似錦、人聲如沸职恳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)放钦。三九已至色徘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間操禀,已是汗流浹背褂策。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斤寂。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓耿焊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親遍搞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子罗侯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • python程序員提高必做開(kāi)源項(xiàng)目robobrowser A library for web scraping b...
    Python程序媛閱讀 12,309評(píng)論 7 146
  • http://python.jobbole.com/85231/ 關(guān)于專(zhuān)業(yè)技能寫(xiě)完項(xiàng)目接著寫(xiě)寫(xiě)一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,574評(píng)論 1 118
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)钩杰。 張土汪:刷leetcod...
    土汪閱讀 12,743評(píng)論 0 33
  • 個(gè)人筆記,方便自己查閱使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik閱讀 67,696評(píng)論 0 5
  • 我渴望的 是庸俗的诊县,是平凡的 是名利讲弄,是鮮花 偶爾 是希望一個(gè)擁抱 喜歡一個(gè)姑娘 喜歡她的容顏她的笑臉 喜歡她的靈...
    0969fa688661閱讀 173評(píng)論 0 1