1. 程式人生 > >你好,程式設計師;再見,交易者!Jupyter即是新的Excel

你好,程式設計師;再見,交易者!Jupyter即是新的Excel

全文共3246字,預計學習時長8分鐘

如果你從事的是商業交易或者在金融機構工作,Excel是必備技能。

你可以用它分析價格及其他tick資料、評估投資組合、計算風險價值、進行事後檢等等。你熟練掌握資料透視表、Excel公式、圖表甚至是VBA和PowerQuery。這使你可以快速執行一個方案。

但是在你意識到之前,電子錶就會擴張成為幾十個結構複雜的表格和混亂無序的VBA程式碼時,讀懂和維護這些表格將變得極其困難。並且如果按下F9重新整理的話,等待的時間甚至足夠喝完一杯茶(如果這期間電腦還沒崩潰的話)!

上面的陳述聽起來是不是很熟悉?你恐怕正在瘋狂點頭。

儘管電子表格十分有用,但要用來分析資料的話,它並不能提供尋求的所有答案。讓我們看看Excel如此流行的原因及其不足之處,以及最重要的使用Jupyter Notebook這一強大的分析工具來代替Excel的原因。

我們的目的是,讓Excel做Excel擅長的事,把分析和自動化交給Python和Jupyter Notebook。

Excel的優勢

Excel有幾大優勢。最值得一提的就是帶有內建函式的反應計算模型,它使得Excel簡單而又強大。電子錶就像一塊空白的幕布。一個“業餘程式設計師”可以使用Excel的專用語言(也就是公式和VBA)在電子錶中編寫程式碼。

銀行利用各式各樣的資訊科技系統來執行關鍵業務流程。然而有越來越多的影子IT以電子表格的形式出現,它們補充了核心資訊系統的功能,並充當新的商業計劃的預設工具。企業系統不夠靈活,無法適應動態金融環境下產品從雛形到進入市場的時間,而Excel解決了這一問題!

儘管Excel非常便利,但它就是最合適的方法嗎?

Excel在企業中扮演的角色應該被重新定義。

圖片來源:unsplash.com/@mbaumi

Excel的劣勢

在涉及大量資料的、高階的、響應式的分析過程中,電子表格並非合適的工具。

下面是某些Excel重度使用者面臨的問題:

· 級聯錯誤:Excel臭名昭著的問題之一是錯誤可能會沿著列傳播,最終波及整個電子錶,就像一個雪球引起一場雪災。可怕的是,有些錯誤發現時已經無法補救。有不少這樣造成重大損失的案例。

· 可擴充套件性:Excel表格中的行列數量有限。處理規模呈指數級增長的資料集時,電子錶將很快用盡儲存空間或佔用大部分的中央處理器。這種情況的出現將極大提升資料汙染的風險。

· 功能:在複雜的工作表中,改變一個數字可能影響數以百計的重複計算。Excel需要花費時間來重新計算每一個結果。當影響達到一定量級,不僅電子錶本身的執行會變得緩慢,其他所有需要佔用儲存空間的應用都會受到影響。

· 測試:電子錶的正確性幾乎不可測試,也難以證明後續更改沒有造成其他影響。

· 可追蹤性/排除故障:即使微小的變化也可能嚴重篡改複雜的公式。這樣微小的改變極難找到和修復。

· 包含一切:資料和算式都儲存在Excel檔案內並在本地計算機上執行。這意味著合作受到限制,版本控制像噩夢一般困難。並且資料將在最後一次更新後保持不變,而不是隨著情況變化實時更新。

傳統軟體早已在幾十年前解決了上述所有問題。

最後一點,也是很重要的一點:

· 操作風險:所有的電子錶最初都是小型的,易於維護的算式。但是有些電子錶會變成永久的,企業級別的方案。它們被用於大量的業務流程,但由於無法看到資料的全貌,很難保證許多金融、運算和監管過程的完備性。

圖片來源Courtesy: Pixabay

你好,程式設計師;再見,交易者

傳統來說,銀行把定量交易團隊分為定量分析交易者和定量分析開發者。前者提出想法,後者把這些想法寫成可執行的程式碼。如果你既是一個交易者又是個專業的程式設計師,那麼這種劃分就不再必要。這讓你獲得了競爭優勢:一方面銀行希望儘可能減少支出,從而降低了失業風險;另一方面你可以把自己的交易模型投入實踐,利用時間優勢獲取利益。一些單調的任務可以自動處理,這使你獲得解放,而且程式設計實際上非常具有創造性!

這也是為了跟上時代。越來越多的年輕交易者具備在大學中學到的程式設計知識。所以如果想要保持就業競爭力,你也需要參與其中。

如何用Python和Jupyter Notebooks進行資料處理

對於意識到Excel侷限性的交易者和金融專家來說,如何解決這一問題?答案就是:學習使用Python和Jupyter Notebook。

Python

Python學起來很容易,並且功能豐富,因此在金融領域中得到越來越廣泛的應用。如今它和Excel一樣,是許多定量分析過程的必備工具。它沒有C++(或者Java)那樣複雜,這意味著python的學習曲線沒有那麼陡峭,而且完成任務所需的程式碼量減少到1/5甚至1/10。

Python的日漸流行明顯地體現在大量的庫中。這些庫可以支援交易者所需要的幾乎一切功能。

· 資料的讀取、寫入、清洗、刪改和交叉分析。

· 數學序列、統計序列和時間序列。

· 金融分析:交易和定量金融、市場資料分析、股票/衍生市場分析、彭博資料訪問、執行引擎、事後檢驗、風險分析等等。

· 機器學習渠道(比如預測市場價格)。

· 繪圖以及一目瞭然的/互動性的視覺化。

· SQL支援。

· 傳送郵件。

· 網頁資料抓取(比如從網上獲得市場價格)。

· 任務的自動化/日程安排。

· 整合Excel(如果你真的很喜歡使用Excel)。

精準的函式庫的總結(不重複的):https://financetrain.com/best-python-librariespackages-finance-financial-data-scientists

Jupyter

沿用上述思路,Jupyter Notebook是一個基於網路的程式設計環境。它能夠管理各種檔案。這些檔案包含程式碼、圖表、小外掛、豐富的敘述文字(包括連結、等式等)以及圖片。更具體來說,可以:

· 藉助自動句法高亮、縮排以及tab自動補全/檢查等功能,在瀏覽器中編輯程式碼。

· 使用附加在程式碼上的計算結果,通過瀏覽器執行程式碼。

它為計算提供了總括式的、自含式的記錄。這樣Jupyter就可以代替Excel成為一個實時資料分析平臺。

Courtesy: Python for Finance Tutorial

Excel VS Jupyter

所以你可能會想:

我還應該使用Excel嗎?當然!電子錶依然是處理下列情況時的最佳選擇:

· 不那麼注重正確性和準確性

· 資料規模不太大(對可擴充套件性沒有要求)

· 不需要實時更新

· 把Excel作為草稿本,快速整合原型

· 不需要長期維護

你需要這樣一個工具——它能夠支援快速開發,保證正確性和可擴充套件性,與此同時擁有和Excel一樣的反應模型。而這就是Jupyter Notebook提供的功能。

 

不需要拋棄Excel,但是Jupyter Notebook是更好的資料分析工具!

Python/Jupyter最重要的十個優點:

✔強大的資料操作能力——Python/Jupyter是資料科學家的工具箱!

✔先進的視覺化能力——再也沒有無聊的表格!

✔更好的使用者體驗

✔大規模資料集處理——再也不會崩潰!

✔執行管理——利用多執行緒處理

✔測試驅動開發——注重質量!

✔可開源——“有專門的庫來處理這個問題!”

✔可追蹤錯誤

✔更簡單的自動化

✔自我文件化——不要低估這一功能的價值!

如何開始

進入這一領域的新人可能會被嚇倒。但是程式設計並不是學習語言的句法,而是學會使用正確的語言和工具——也就是Python和Jupyter——來解決問題。

這裡有兩個非常好的新手資源:

· Think Python: Free eBook Download

傳送門:http://greenteapress.com/thinkpython2/html/index.html

· Jupyter Notebook for beginners: Online Tutorial

傳送門:https://www.dataquest.io/blog/jupyter-notebook-tutorial

留言 點贊 關注

我們一起分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 “讀芯術”

(新增小編微信:dxsxbb,加入讀者圈,一起討論最新鮮的人工