序
在金融科技時代,程式設計能力是一項核心技能,培養計算思維亦是重要課題。傳統的財務管理教科書,主要皆以財務計算機或Excel來演示計算過程。因應社會對AI人才的需求,配合大學教學改革的趨勢,本書將傳統商管用教科書結合Python編程進行重編改寫。旨在培養學生使用Python程式解決財務管理專業問題的能力,同時提升學生的計算思維和創新能力。
市面上雖多有教導Python應用於商管領域的書,內容大多僅涉及財務管理部分章節,且多偏向技術層面,未若像專業教科書一樣能系統性地介紹。專業特色以及學生基礎的差異是教學當中必須要考慮的問題。在學習過程中,倘若又缺少程式設計在財會領域的應用場景,商學院學生便發出「跟自己所學專業有什麼關係」質疑。例如:在電腦專業教育中,Recursive是演算法中一個很重要的觀念。教師往往會用河內塔的經典案例說明。但若用來教商學院的學生,學生可能會有疑惑:「Recursive跟我財會、經管、金融專業有何關係?」、「我學河內塔作些什麼?」導致學生對程式設計沒有感覺,學習動力不足。
本書循序漸進,由淺入深,強調前後知識遷移。在財務管理中,我們經常得做很多的計算。第壹章「把Python當作計算機使用」便是教大家用Python來完成財務計算,並熟悉print()輸出完整的資訊、控制小數點和百分比的輸出格式。第貳章「基本理財問題」更提供生活中的一些基本理財問題,讓大家了解用Python解題的潛能。
前兩章是基礎的內容,隨後逐漸系統性地講解Python語法並結合財務管理的知識點應用。如第參章「基本價值觀念——複利過程」便是圍繞在Python的循環結構,教大家繪製現金流量時間序列線、複利過程。在第參章的基礎上,第肆章「基本價值觀念——折現過程」剖析逆序循環結構,並繪製折現過程。第伍章「貨幣價值的公式與函數」講解Python中的函數、匿名函數的基本語法,並在Python中實現複利現值、複利終值、年金現值,與年金終值的函數。第陸章「現值與終值係數」藉查詢複利現值係數、複利終值係數、年金現值係數,與年金終值係數的例子,說明Python中條件判斷if-elif-else和match-case語法。第柒章「係數表」的重點是巢狀迴圈的語法,並示範如何用來建構複利現值係數表、複利終值係數表、年金現值係數表,與年金終值係數表。至此,講解了Python基礎語法。
在財務管理中,我們也會推導公式,進行求解。第捌章「符號運算」便是告訴大家如何用sympy模組來完成符號計算。而第玖章「方程式求解」則教大家運用scipy模組來進行方程式求解。
財務管理的估值觀念離不開現金流。第壹拾章「現金流的數據結構」便是探討如何運用Python中的列表、字串和字典結構來儲存現金流量。該章節也是後面債券、股票、淨現值的計算基礎。
隨後的章節便參考大學普遍使用財務管理的教材,如Stephen A. Ross所著的《公司理財》、Jonathan Berk和Peter DeMarzo合著的《公司金融》。這些教材,也是筆者在教學過程中採用過的。本書在編寫時,也有用Python去解教材中範例題目和習題。讀者可系統性得到完整用Python去實現傳統財務管理教材中知識的方法。
第壹拾壹章「債券」用Python進行平息債券、零息債券、到期一次還本付息債券的估價、理解到期殖利率的求解方法。第壹拾貳章「股票」用Python掌握零增長型股票、固定增長型股票以及非固定增長型股票估價。第壹拾參章「報酬與風險」用Python計算各類報酬與風險。
接下來兩章涉及投資組合的觀念。第壹拾肆章「二項資產的投資組合」以二項資產的投資組合為例用Python計算投資組合的報酬率和風險、繪製投資組合的效率前緣、解投資組合分散風險的機制。第壹拾伍章「多項資產的投資組合」進一步用向量和共變異數矩陣的表示方法,用Python求解有效投資組合的權重。投資組合之後,第壹拾陸章「資本資產定價模型」用Python計算系統風險和風險溢酬、描繪資本市場線和證券市場線。
接下來的章節焦點圍繞在資本預算,第壹拾柒章「資本預算的基本方法」用Python來實現會計收益率法、投資回收期法、折現投資回收期法。第壹拾捌章「淨現值法」利用Python程式碼來計算淨現值、繪淨現值曲線。第壹拾玖章「獲利指數法」利用Python來計算獲利指數。第貳拾章「內含報酬率法」利用numpy和scipy來計算內含報酬率、解內含報酬率法的局限、掌握修正內含報酬率法的計算。第貳拾壹章「情境分析」利用Python進行情境分析用來衡量投資計畫風險。
編寫本書之前,筆者已在大學教了七、八年的財務管理課程。配合教學改革的趨勢,筆者嘗試將課堂上所講解的例題,一一用Python進行求解。整理建設好相關材料後,在學院的支持下開設了「財務管理與Python實現」課程。由於事務繁忙,本書也經過兩年多的時間才完成編寫工作。有人說:「人工智能讓機器越來像越像人類,人類越來像越像機器。」願讀者在追求知識的同時,不忘人性中本有的良善,多多陪伴家人。
筆者就讀國立中山大學時,雙主修資訊工程和財務管理。這本結合Python和財務管理的書,可算不辜負一生所學。誠摯感謝當年教我財務管理的郭修仁老師,是他激發我對財務管理的興趣,支撐我到博士畢業。也謝謝支持我的家人,諒解我因為工作不能時常陪伴。最後也感謝五南出版社,給我能出版的機會。
黃子倫