- 登入
- 註冊
Python 是近年來相當熱門的程式語言,在各個領域甚至職場裡,幾乎成為新鮮人技能的標配。除了免費開源、語法簡單好理解,在這幾年 Python 的生態系資源也越來越成熟完整,當大家的討論度越來越高,自己遇到問題也容易找到方法解決。
甚至所有新手基本的功能,Python 都有套件支援,像是 pandas、datetime、numpy 等。除此之外 Python 可以跨平台使用、容易擴充、自由度高等優勢,都是這幾年排名不斷上升的原因。
延伸閱讀:
最齊全的 Python 技術指標工具箱 talib (一)套件安裝與基本操作說明
最齊全的 Python 技術指標工具箱 talib (二):閱讀套件說明文件的邏輯就這麼簡單
Python 可以說是學習程式最好入門的語言之一,也是數據分析及爬蟲的主流程式語言。 除了在金融領域上,在其他領域的應用範圍也很廣泛,以下跟大家介紹四個 Python 在金融投資常見的用途。
爬取股價是 Python 在程式交易其中一個強大的功能,個股的相關資訊每日都會在證交所公布,透過爬蟲相關資訊就可以進行數據分析,甚至制定出自己的選股策略和模型。
Python 的 requests 與 BeautifulSoup 是目前最常作為網路爬蟲實作的套件。使用爬蟲即是讓程式幫我們去瀏覽各個網站,能自動化獲取指定的資料,例如:企業財報資料、社群訊息、網路小說等。再利用串接資料庫的套件,像是 pymongo,就能輕易地把爬蟲獲取的資料放到資料庫,以備後續大數據分析時取用。
延伸閱讀:
實作你的選股利器 – 找出業績好轉的盤整股
實作你的選股利器 – 找出低本益比的營收成長股
Python 的程式碼可以相當簡單地就與資料庫互動,並擁有 pandas、numpy 等強大的資料處理套件,以及 plotly 等視覺化套件、tensorflow 等機器學習套件,使得 Python 在大數據分析佔有相當的地位。透過大數據分析,能夠做到使用者偏好推薦、輿情分析等。
而「回測」 指的是將投資策略透過歷史資料驗證,模擬在過去的時間中實際交,確認這個投資策略在過往的歷史數據中所能獲得的績效。透過分析爬蟲來的數據,我們可以更精準的找到穩定的獲利機會。
延伸閱讀:
市售回測軟體與自己開發的差異
進行回測常被提到的套件們
Python 除了上述套件以外,也具備 statsmodel 等統計套件,與 R 語言同樣都是金融業的程式語言。應用領域包括量化模型設計、全自動程式交易、資產定價、風險控制等。
Python 可以快速蒐集、整理、分析資產配置相關資料,「 資產配置 」指的是一種投資方式,主要的做法是把錢分配到不同商品上,借此分散投資的風險。透過 Python 能讓我們所設計的資產配置模組依照事先制定好的規則自動配比。
延伸閱讀:
資產配置理財入門大補包(一) – 資產配置是什麼?用 Python 做資產配置不可不知的兩大好處!
IDE,或者稱為整合開發環境。軟體商幫你把 Python 功能整合在一起,可以幫助使用者 debug、儲存指令、執行功能等。簡言之,就是讓使用者可以更簡單又便利的寫程式 。
Python 的 IDE 有很多種,比較常見的包括: Spyder、Jupyter、PyCharm、vs code 等。當然 Python 也有屬於內建的 IDE,每家 IDE 都有自己的特色與功能,這邊可以參考閱讀量化通 Eric 之前寫的 PyCharm 環境安裝全方位解說,就不多做介紹囉!
以下簡單整理常用的Python常用名詞,讓大家能初步有個概念:
常用名詞 | 說明 | 範例 |
---|---|---|
輸出,檢視程式運行的結果,也稱為印出。 | print("Hello Python") | |
註解 | 紀錄用的筆記,電腦不會讀取到,可以針對所撰寫的程式去說明用途。 | #單行註解 "多行註解 多行註解" |
縮排 | Python 使用縮排(Tab 鍵)來表示這是同一個區塊的程式碼。 | a=10 If a>5 : print("Yes") |
SyntaxError | 程式語法的錯誤提醒 | 常見的錯誤像是少打一個括弧、打錯程式等 |
變數 | 幫資料取一個代稱,使用「=」來表示兩邊是相同的內容。 | a = 123 b = 6.66 c = "567" |
資料型態 | 基本的資料分類可以大略分為文字、數字、布林值和裝「文字」、「數字」的容器。 | a = 123 b = "我是文字" c = True d =[123,"文字"] |
基本運算式 | 資料的數學運算 | a = 10 b = 5 print(a + b) 結果 >>>15 |
關係運算式 | 數值資料的大小比較 | a = 10 b = 5 print(a > b) 結果 >>>True |
邏輯運算式 | 資料之間的邏輯關係,包含 and(且)、or(或)、not(否)等。 | a = 10 b = 5 print(a > b) 結果 >>>True |
布林值 | 判斷條件是否符合,提供True(是/對)或 False(否/錯)的回覆。 | a = 10 b = 5 print(a > b) 結果:>>>True |
input | 由使用者輸入資料給程式 | Name = input("請輸入您的大名") |
pip | 安裝外部工具套件。 | pip install pandas |
import | 安裝內部程式模組。 | import pandas as pd |
迴圈 | 讓程式重複的執行指令直到條件滿足,分成 for 跟 While 兩種形式的迴圈。 | a=[123,666] for i in a: print(a) 結果 >>>123,666 |
函式 | Python分為內建函式和自訂函式 | a=[1,2,3] print(max(a)) 結果 >>>3 |
本系列會從 Python 基本的語法開始介紹,讓沒有程式背景的新手,也能開始用 Python 程式交易。如果你是進階的交易者,可以點擊連結觀看量化通其他 Python 進階文章,認識 爬蟲、實用套件、資產配置 等內容。
建議可以照順序閱讀,從零開始學習 Python: