Python財務計算

本課程將透過Python實現財務分析與模型計算。課程內容目前規劃如下:
(1) Python programming*
(2) 擷取金融資料、資料整理與資料視覺化
(3) 利用Python現有的量化套件進行統計分析
(4) 衍生性金融商品的定價模型與模型校正
(5) 風險評估與動態避險
其餘細節請參考課程大綱。

* 建議至少學過一次python的語法,沒有學過python但是有其他程式經驗的學員可透過本課程快速掌握python。



SP500_impv

課程大綱

(tentative schedule)

References
>> Yves Hilpisch, Python for Finance: Analyze Big Financial Data, O'Reilly Media, 2014
>> Yves Hilpisch, Derivatives Analytics with Python: Data Analysis, Models, Simulation, Calibration and Hedging, Wiley, 2015
>> Philippe Jorion, GARP (Global Association of Risk Professionals), Financial Risk Manager Handbook, 6/e, Wiley, 2010

Python crash course
>> Computational model (CPU-memory)
>> Variable, built-in data types (int, float, str, boolean), and assignment/arithmetic/rational/logical operators
>> Data structures: list, tuple, dictionary, and set
>> Selections (if-elif-else)
>> Iterations (for loop, while loop) with jump statements (break, continue)
>> Iterables: range, map, zip, enumerate, reversed, sorted
>> Comprehensions
>> Function, scope, arguments (positional, keyword)
>> Functional programming: lambda expression, map/filter pattern, generator (yield), decorator
>> Analysis of algorithms
>> Script, module, and package
>> Class and object: attributes and methods
>> Object-oriented paradigm: encapsulation, inheritance, and duck type
>> Exception handling (try-except-else-finally, raise, with-as)

Data preprocessing, visulization, and strategy evaluation
>> Financial data crawler using urllib and requests
>> File IO with pandas
>> Data visualization
>>>> 2D plotting with matplotlib and seaborn
>>>> 3D plotting
>> Technical analysis
>> Backtesting

Mathematical tools
>> numpy: vectorization, linear algebra, random number generator
>> scipy: numerical methods (e.g. interpolation, integration, optimiaztion, pdf/cdf, ...)
>> statsmodels: statistical tools (regression, ARMA, ...)

Financial models
>> Modern portfolio theory (efficient front by optimization)
>> Simulation of financial models: geometric Brownian motion, Cox-Ingersoll-Ross model, stochastic volatility model, jump diffusion
>> Valuation framework: fundamental theorem of asset pricing
>> Monte Carlo simulation for European/American option prices
>> Binomial Option Pricing Model (BOPM) for European and American options
>> Greeks: sensitivity analysis
>> Dynamic hedge
>> Model calibration
>>>> Implied volatility
>> Risk measure: Value at Risk (VaR)

Misc
>> Performance issue
>>>> numexpr, numba, cython, multiprocessing
>> Machine learning
>>>> Supervised learning: ridge regression, LASSO regression, logistic regression, supporting vector machine, decision tree, random forest
>>>> Unsupervised learning: K-mean, K-clustering, K-nearest neighbors, principal component analysis (PCA)
>>>> Reinforcement learning: Q-learning
>> Blockchain

註0:updated on 2019/4/1
註1:英文教材中文授課。
註2:課程內容仍會依照學員需要而變動。

適合對象

對金融產業有興趣或具備基本金融認識的學員

開發環境

Python 3.6.x on Jupyter/Spyder in Anaconda

近期班次

  • 第312期 開課日期:2019.05.22 確定開課

    上課時間:每週(三)(六)
    7:00 PM ~ 10:00 PM
    上課日期:2019.05.22 ~ 2019.06.26
    學費:新生新台幣5000元整

    詳細資訊

  • 注意事項

    • 上課地點:台灣大學資訊工程學系系館 詳細位置;教室號碼將於開課前一日公佈於官網"最新消息"中。
    • 上課教材:開課後將公布教學網站給同學查閱。
    • 結業狀況:請上官網”結業名單”查閱是否合格及可領取證書進度。

    講師介紹

    • 臺灣大學資訊工程學系 博士班
    • 交通大學電信工程研究所 碩士
    • 中央大學電機工程學系 學士

    // 服務經驗

    • 在本班已教授超過100個班,累計教學時數3,000個小時
    • 國立台灣大學 腦與心智科學研究所 兼任研究助理 (2014.8--present)
    • 中國信託商業銀行 全球金融商品交易處 期貨自營部 實習研究員 (2014.1--present)
    • 國立台灣大學 資訊工程學系 資訊系統訓練班 講師 (2014.1--present)
    • 國立台灣大學 資訊工程學系 課程助教:計算理論、離散數學、財務演算法 (2012.9--present)

    // 研究興趣

    • Financial computing
    • Analysis and design of algorithms
    • Quantitative finance, econometrics, and algorithmic trading
    • Statistics and machine learning
    • Computing theory and programming language design

    // 程式語言

    • MATLAB, Java, C, C++, Python

    // 教學特色

    • 中文授課,課程教材以英文為主。適合規劃出國求學或對科學/技術理論有興趣的學員。