Project use Python 2.7 Environmental Science , because Python It contains many related libraries for data analysis and financial applications , So use it in courses and projects Anoconda
Integrated environment .
Database tools :SQLite（Anaconda built-in ）,MongoDB（ Big data application chapter uses ）,DTN IQFEED（ Trial account , It's used to quantify high frequency in trading
All the development tools and environments used 、 Libraries are open source , It can be obtained and downloaded free of charge from the Internet .
This tutorial introduces the use of Python Basic knowledge of data analysis and financial application development . The course begins with an introduction to simple financial applications , Lead the participants to review Python Basic knowledge of , And gradually learn how to Python Apply to financial analysis programming . The course covers Python The basic data structure 、 Input and output 、 Efficiency analysis 、 Math library 、 Random analysis library 、 Statistical analysis database, etc . Then the course introduces... In the form of a special topic Python And Excel The combination of , Learn how to use Python Related library generation Excel Callable functions ;Python And Hadoop and MongoDB Combined with the basic knowledge of big data analysis . Finally, the course introduces Python Object oriented programming and introduced two cases ： Use Python Realization of financial derivatives analysis library and its use Python Realize event driven quantitative investment system , Make the trainees understand in the actual combat environment Python The specific application mode in financial application development , Train students to develop independently Python Module capabilities .
Miss Zhu Tong ,2009 He graduated from the Department of finance, Guanghua School of management, Peking University , To finance 、 I have a deep understanding of data analysis and statistics , Over the years, we have been tracking and researching the progress and development of financial quantitative analysis and data statistics , For probability theory 、 Stochastic process and its application in finance has rich practical experience , Good at using all kinds of financial data analysis software , Include MATLAB, R,PYTHON,SAS,STATA etc. , Currently working in a quantitative investment trading software development company , Working as software design and product manager , To finance 、 I have rich experience in the implementation of statistics and trading software , Familiar use C++,JAVA or C# The basic method of data analysis and financial application . During the teaching period, he is good at combining his own learning and working experience , Explain finance and statistics in a more intuitive way 、 Random analysis and other related knowledge , And combined with programming practice to explain . Teacher Zhu Tong has rich teaching experience , Including teaching Econometrics 、 probability statistics 、 Financial derivatives pricing 、 Quantitative financial analysis, etc , The lecture was loud , thole , The explanations were meticulous , It is widely praised by students .
Lesson one 、Python Overview of financial applications
This lecture mainly introduces Python The basic characteristics of , Install the... Required for this course Python Environmental Science , summary Python In the field of financial data analysis . This lecture will use a simple example of Trend Investment , Explain why Python It is very convenient to analyze financial data and quantify investment .
The second is 、Python The basic data type and data structure of
This lecture introduces Python The basic data type and data structure of , Including the foundation Python and NumPy The data structure provided by the library .
1、 Basic data type （ integer 、 floating-point 、 Character ）
2、 Basic data structure （ Tuples 、 Control structure 、 Functional programming 、 list 、 Dictionaries 、 aggregate ）
3、NumPy data structure （ Use Python Array implemented by list 、 routine NumPy Array 、 Structure array 、 Memory allocation ）
The third is 、Python Data visualization
This lecture introduces Python Of matplotlib Data visualization technology provided by the library , although Python There are many other ways to visualize data , however matplotlib Provides a benchmark implementation .
1、 Two dimensional drawing （ One dimensional data set 、 Two dimensional datasets , Other drawing modes , Financial mapping ）
Lesson four 、 Financial time series analysis
A common type of data in financial analysis is financial time series data , This chapter mainly introduces Python Of Pandas The realization of data structure of financial time series type by database ——DataFrame and Series, And how to use these tools for basic financial time series analysis
1、Pandas Basics （DataFrame class , Basic analytical techniques ,Series class ,GroupBy operation ）
2、 Financial data
3、 Regression analysis of data
4、 High frequency financial data
The first five lectures 、 I / O operation
This lecture introduces Python Basic I / O operations provided , And how to use it effectively in financial data analysis and investment .
1、Python Basic I/O operation （ Write objects to the hard disk , Read write text file 、SQL database 、 Reading and writing NumPy Array ）
2、 Use Pandas Of i/O operation （ Basic operation ,SQL database ,CSV file 、EXCEL file ）
3、 Use PyTables Go fast I/O ( Use Table, Use compressed Table, Array operation , Out of memory operations )
About 6 、 promote Python efficiency
This lecture introduces Python Some of the tools to improve computing efficiency and their basic applications in financial data analysis and investment .
1、Python Operational efficiency analysis
Memory allocation and operation efficiency
2、 Parallel computing （Monte Carlo Algorithm 、 Serial computing 、 Parallel computing ）
3、 Dynamic compilation （ Introduce an example 、 Binomial tree option pricing ）
4、 Use Cython Static compilation
5、 be based on GPU Generate random number
Lecture 7 、 Mathematical tools
This lecture introduces Python Provided mathematical methods and tools for financial data analysis and their background knowledge and application methods .
1、 The approximate （ Return to 、 interpolation ）
2、 Convex optimization （ Global optimization 、 Local optimization 、 Constrained optimization ）
3、 integral （ Numerical integration 、 To simulate the integral ）
4、 Symbolic calculation （ Basics 、 equation 、 integral 、 differential ）
Lesson eight 、 Random analysis
The description and research of uncertainty is an important aspect of financial research and analysis , This lecture introduces some knowledge of random analysis , Application in financial data analysis and investment and Python Realization .
1、 random number
2、 simulation （ A random variable 、 random process ）
3、 Variance reduction techniques
4、 The valuation （ European options 、 American option ）
5、 Risk measures （ Value at risk 、 Credit risks ）
About 9 、 Statistical analysis
Statistical analysis is the core of financial data analysis , This lecture introduces the commonly used statistical analysis methods 、 Financial applications and Python Realization .
1、 Normality test
2、 Portfolio optimization
3、 Principal component analysis application
4、 Bayesian regression analysis
Lecture 10 、 Numerical analysis technology
For some nonlinearity 、 Financial and data analysis problems without explicit solutions , The technique of numerical analysis is needed , This lecture introduces the basis and application of these technologies , as well as Python The implementation of the .
1、 Solving linear equations （LU decompose 、Cholesky decompose 、QR decompose 、Jacobi Method 、Gauss-Seidel Method ）
2、 Nonlinear models in Finance （ Implied volatility 、Markov regime-switching Model 、 Threshold autoregressive model 、 Smooth transition model ）
3、 The way to find roots
Lesson 11 、 Use Python operation Excel
Microsoft Excel It's commonly used office software , It is an important support for data analysis and application .Python Provides a rich and Excel Interface of interaction , This lesson introduces these interfaces and gives examples .
1、 Basic spreadsheet interaction
2、Python Medium Excel Script
The twelfth speak 、Python Object oriented programming and graphical user interface
This lecture introduces Python Object oriented programming technology , This is the next chapter , In particular, the basis of the quantitative investment chapter , besides , This lecture also introduces Python The basic method of GUI programming .
2、 Graphical user interface
The first ten basic 、 Overview of big data technology in Finance
This lecture introduces the application and use of big data technology in finance Python Basic implementation of .
2、 Use Hadoop Implement character statistics
3、Hadoop Examples of financial applications
About 14 、 Case study 1： Use Python Build options analysis system
This case uses the Python Knowledge of financial applications , Build a relatively complete option analysis system , Help students master the key points of financial system development and Python The way to integrate applications , Compared with the previous Introduction , In case analysis, we use more object-oriented methods .
1、 Valuation framework （ The principle of capital asset pricing , Risk neutral pricing , Market environment, etc ）
2、 Simulation of financial model （ Random number generating module , Generic simulation class , Geometric Brownian motion , Simulation module of diffusion process with jump , Square root diffusion process simulation module ）
3、 Derivatives valuation module （ Generic valuation class 、 European execution class 、 American execution class ）
4、 Application of derivatives analysis library —— Volatility option pricing
The tenth five lectures 、 Case study 2： Use Python Build a simple algorithmic trading system
Algorithmic and procedural trading is one of the most important applications of computer technology in the financial field in the era of big data . This lecture introduces Python Realization , Including basic deals 、 Trading strategy and backtesting, etc .
1、 Overview and framework of algorithmic transactions
2、 Implement event driven transaction engine （ Event driven software , Event classes , Data processing class , Policy class , Portfolio , Perform basic preparation of processing class and back testing class , Event driven execution ）
3、 Trading strategy implementation （ Moving average spanning strategy ,S&P500 Forecast trading strategy , Mean return stock matching trading strategy ）
4、 Strategy optimization （ Parameter optimization , Model selection , Optimization strategy ）
Goal one . Review and more in-depth grasp Python Basic knowledge and application implementation .
Goal two . Understand and grasp the basic knowledge of various financial models , Including derivatives pricing , Random simulation , Quantitative trading, etc .
Goal three . Learn and master Python Basic application programming and efficiency analysis in finance .
Goal four . Study Python Of NumPy,Pandas,Matplotlib The specific application and implementation of equal database in the financial field .
Goal five . understand Python And Hadoop The combination of , Master the basic big data MapReduce How to implement , understand Python And NoSQL database （ With MongoDB For example ）
Goal six . Understand the basic idea of event driven algorithmic trading system and the implementation of basic classes , And learn how to test back several trading strategies .
Goal seven . Understand and master Python The basic idea of object-oriented programming , Can be developed independently based on Python Financial data analysis and trading module of .
Highlight one 、 It is the first time to introduce the event driven quantitative trading software module in China , This part is less introduced in the existing textbooks and courses related to quantitative investment in China , The course uses Python Language vs. basic transaction module , Performance verification module and trading strategy back testing module are implemented .
Highlight 2 、 Yes Python The realization of financial application is introduced in detail , It has a wide coverage , And introduce the principle in a more intuitive way , With code implementation , It can make students have a better understanding and grasp of related applications and programming .
Highlight three 、 All the codes of the course are manually typed in line by line , Hand in hand step by step to lead students from the introduction to mastery , And make the students listen to the class , You can get an intuitive feeling by typing code , And further thinking .
Highlight four 、 The whole program is not big , But the whole project basically involves Python All aspects of programming , The realized project will Python The application of each supplementary Library of , It's easy for the students to grasp it as a whole Python Programming ideas . in addition , The teaching project can also be easily expanded , Students can be personalized and applied to specific work practice .
1. The course is aimed at people
This course is aimed at students with certain basic financial knowledge （ Mastery is not required , But we need to know the basic financial instruments and the principles of financial markets ） The students , I want to learn through this project , Understand the specific implementation of financial analysis software . The course does not assume that the learner understands Python Relevant knowledge and deep financial principles , The course will use a more intuitive way to introduce, and with the implementation of code .
2. How can I learn , How can we learn this course well , Give me some advice .
4.1、 Time arrangement suggestions
This course consists of 66 speak , If you have enough time , It is suggested that every day 4-5 Learn from the progress .
4.2、 Learning requirements
If you don't have the foundation , It is suggested that we should observe and study carefully according to the progress of the course , And be sure to knock the code in the video by yourself , To deepen understanding and memory
If you have a foundation , You don't have to move step by step , You can learn what you are interested in , But we must pay attention to practice , And learn to draw inferences from one instance
4.3、 The instructor suggested
1. It's better after watching the video , Forget the video , Write the examples in class by yourself , See if you understand , If not , You can go back and watch the video , If you repeat , To really understand and master .
2. For the actual part of the project , Do it yourself , Don't be content to just listen OK 了
3. It is recommended to listen to the video , Usually take a pen and paper , Make some notes and notes , It's a very good study habit .
4. Learn to think , Learn to draw inferences from one example , Expand the content of the course , Can deepen the understanding of this content .
5. Finally, I wish you success in your studies
The course belongs to a specific professional technology , After mastering the technology , You can work in the following positions
Python Financial software development engineer
Financial application software designers
Python Big data and statistical computing Engineers
Quantitative traders and analysts