In recent years, quantitative analysis in the financial field has received more and more attention from the theoretical and practical circles, and the technology of quantitative analysis has also made great progress, becoming a hot spot that has attracted much attention. The so-called financial quantification is the combination of financial analysis theory and computer programming technology, and more effective use of modern computing technology to achieve accurate financial asset pricing and discovery of trading opportunities. Quantitative analysis has involved all aspects of the financial sector, including basic and derivative financial asset pricing, risk management, and quantitative investment. With the development of big data technology, quantitative analysis is also gradually combined with big data to achieve effective and fast calculation and processing of massive financial data.
In the era of quantitative finance, choosing an appropriate programming language is crucial to the realization of financial models. In this regard, the Python language embodies unusual advantages, especially it has a large number of financial computing libraries, and can provide interfaces with C ++, java and other languages to achieve efficient analysis, and has become a rapid development and application in the financial field. A key language, because it is open source, reduces the cost of financial computing, and also provides a large number of application examples through a wide range of social networks, which greatly shortens the learning path of financial quantitative analysis.
This course introduces the relationship between quantitative analysis and the rapid development of Python language, so that students can quickly master the basic methods of quantitative analysis of financial data using Python language.
1. Course development environment
The project uses the Python 2.7 environment. Because Python contains many related libraries for data analysis and financial applications, Anoconda is used in the courses and projects
Integrated environment.
Development tools: Spyder, IPython, Cloudera (Hadoop application platform)
Database tools: SQLite (built in Anaconda), MongoDB (used in the chapter on big data applications), DTN IQFEED (trial account, used to quantify high and medium frequency transactions
Download of data)
All development tools, environments, libraries, etc. used are open source and can be obtained and downloaded from the Internet for free.
2. Introduction
This tutorial introduces the basics of data analysis and financial application development using Python. The course begins with an introduction to simple financial applications, leading students to review the basics of Python and gradually learn how to apply Python to financial analysis programming. The course covers Python's basic data structure, input and output, efficiency analysis, math library, random analysis library, statistical analysis library, etc. Then the course introduced the combination of Python and Excel in the form of a topic, and learned how to use the relevant libraries of Python to generate Excel callable functions; the basic knowledge of Python combined with Hadoop and MongoDB for big data analysis. The last course introduced Python's object-oriented programming and introduced two cases: using Python to implement financial derivatives analysis library and using Python to implement event-driven quantitative investment system, so that students can understand Python in financial application development in a practical environment. Specific application methods to train students' ability to independently develop Python modules.
Teacher Zhu Tong, graduated from the Department of Finance of Guanghua School of Management, Peking University in 2009, has a deep understanding of finance, data analysis and statistics. Over the years, he has continued to track and study the progress and development of financial quantitative analysis and data statistics related fields. He has rich practical experience in probability theory, stochastic process and its application in finance. He is good at using various financial data analysis software, including MATLAB, R, PYTHON, SAS, STATA, etc. Currently working in a quantitative investment trading software development company , Engaged in software design and product manager work, has rich experience in the implementation of financial, statistical and trading software, familiar with the basic methods of using C ++, JAVA or C # to implement data analysis and financial applications. During teaching, he is good at combining his own learning and work experience, explaining financial and statistical, random analysis and other related knowledge in a more intuitive way, and giving specific explanations in combination with programming practice. Teacher Zhu Tong has a wealth of teaching experience, including teaching econometrics, probability statistics, financial derivatives pricing, quantitative financial analysis, etc. The lectures are loud, patient, and meticulous, and are widely praised by students.
Lecture 1, Overview of Python and Financial Applications
This lecture mainly introduces the basic characteristics of Python, installs the Python environment required for this course, and outlines the application areas of Python in financial data analysis. This lecture will use a simple trend investment example to explain why it is very convenient to use Python for financial data analysis and quantitative investment.
Lecture 2: Basic data types and data structures of Python
This lecture introduces the basic data types and data structures of Python, including the data structures provided by the basic Python and NumPy libraries.
1. Basic data types (integer, floating point, character)
2. Basic data structure (tuple, control structure, functional programming, list, dictionary, collection)
3. NumPy data structure (arrays implemented using Python lists, regular NumPy arrays, structure arrays, memory allocation)
Lecture 3, Python Data Visualization
This lecture introduces the data visualization technology provided by Python's matplotlib library. Although Python has many other data visualization methods, matplotlib provides a benchmark implementation.
1. Two-dimensional drawing (one-dimensional data set, two-dimensional data set, other drawing modes, financial drawing)
2. 3D drawing
Fourth Lecture, Financial Time Series Analysis
A common data type in financial analysis is financial time series data. This chapter mainly introduces the implementation of the financial time series type data structure of Python Pandas library-DataFrame and Series, and how to use these tools for basic financial time series analysis
1. Pandas basics (DataFrame class, basic analysis technology, Series class, GroupBy operation)
2. Financial data
3. Data regression analysis
4. High-frequency financial data
Fifth lecture, input and output operations
This lecture introduces the basic input and output operations provided by Python and how to effectively use them in financial data analysis and investment.
1. Basic I / O operations of Python (writing objects to hard disk, reading and writing text files, SQL databases, reading and writing NumPy arrays)
2. Use Pandas' i / O operation (basic operation, SQL database, CSV file, EXCEL file)
3. Use PyTables for fast I / O (use Table, use compressed Table, array operations, out-of-memory operations)
Lecture 6: Improving Python efficiency
This lecture introduces some tools provided in Python to improve computing efficiency and their basic applications in financial data analysis and investment.
1. Analysis of Python operating efficiency
Memory allocation and operating efficiency
2. Parallel computing (Monte Carlo algorithm, serial computing, parallel computing)
3. Dynamic compilation (introduction examples, binary tree option pricing)
4. Use Cython to compile statically
5. Generate random numbers based on GPU
Lecture 7: Mathematical tools
This lecture introduces the mathematical methods and tools provided by Python for financial data analysis and their background knowledge and application methods.
1. Approximate (regression, interpolation)
2. Convex optimization (global optimization, local optimization, constraint optimization)
3. Integration (numerical integration, analog integration)
4. Symbolic calculation (foundation, equations, integration, differentiation)
Lecture 8: Random analysis
The characterization and research of uncertainty is an important aspect of financial research and analysis. This lecture introduces some knowledge of random analysis, its application in financial data analysis and investment, and Python implementation.
1. Random number
2. Simulation (random variables, random processes)
3. Variance reduction technology
4. Valuation (European option, American option)
5. Risk measurement indicators (value at risk, credit risk)
Lecture 9: Statistical Analysis
Statistical analysis is the core of financial data analysis. This lecture introduces commonly used statistical analysis methods, financial applications and their Python implementation.
1. Normality test
2. Asset portfolio optimization
3. Application of principal component analysis
4. Bayesian regression analysis
Lecture 10, Numerical Analysis Technology
For some non-linear, non-explicit financial and data analysis problems, you need to use numerical analysis techniques. This lecture introduces the basis and application of these techniques, and the implementation of Python.
1. Solve linear equations (LU decomposition, Cholesky decomposition, QR decomposition, Jacobi method, Gauss-Seidel method)
2. Non-linear models in finance (implied volatility, Markov regime-switching model, threshold autoregressive model, smooth transition model)
3. The rooting method
Lecture 11: Operating Excel with Python
Microsoft Excel is a commonly used office software and an important support for data analysis and application. Python provides rich interfaces for interacting with Excel. This lecture introduces these interfaces and gives examples.
1. Basic spreadsheet interaction
2. Excel script in Python
Lecture 12, Python object-oriented programming and graphical user interface
This lecture introduces Python object-oriented programming technology, which is the basis of the subsequent chapters, especially the chapter of quantitative investment. In addition, this lecture also introduces the basic methods of Python graphical user interface programming.
1. Object-oriented
2. Graphical user interface
Lecture 13: Overview of Big Data Technology in Finance
This lecture introduces the application of big data technology in finance and the basic implementation using Python.
1. Overview of Hadoop
2. Use Hadoop to implement character statistics
3. Examples of Hadoop financial applications
4. Introduction to NoSQL
Lecture 14: Case 1: Using Python to build an option analysis system
This case uses the relevant knowledge of Python financial applications introduced in the previous lectures to build a relatively complete option analysis system to help students master the main points of financial system development and the way Python integrates applications. Compared with the previous introduction, there are more Use object-oriented methods.
1. Valuation framework (introduction to capital asset pricing principles, risk-neutral pricing, market environment, etc.)
2. Simulation of financial model (random number generation module, generic simulation class, geometric Brownian motion, diffusion process simulation module with jump, square root diffusion process simulation module)
3. Derivatives valuation module (generic valuation, European execution, and American execution)
4. Derivatives analysis library application-volatility option pricing
Lecture 15: Case 2: Using Python to build a simple algorithmic trading system
Algorithms and programmed transactions are one of the most important aspects of the application of computer technology in the financial field in the era of big data. This lecture introduces Python implementation in this area, including basic trading, trading strategies and backtesting.
1. Overview and framework of algorithmic trading
2. Realize event-driven transaction engine (event-driven software, event category, data processing category, strategy category, portfolio category, execution processing category and backtesting category, event-driven execution)
3. Realization of trading strategies (moving average crossing strategy, S & P500 predictive trading strategy, mean return to stock matching trading strategy)
4. Strategy optimization (parameter optimization, model selection, optimization strategy)
Objective 1. Review and grasp the basic knowledge of Python and application implementation in more depth.
Objective 2. Understand and grasp the basic knowledge of various financial models, including derivatives pricing, random simulation, quantitative trading, etc.
Objective 3. Learn and master Python's basic application programming and efficiency analysis in finance.
Objective 4. Learn the specific application implementation methods of Python's NumPy, Pandas, Matplotlib and other libraries in the financial field.
Goal 5. Understand the combined application of Python and Hadoop, master the basic big data MapReduce implementation, and understand the combination of Python and NoSQL database (using MongoDB as an example)
Objective 6. Understand the basic idea and realization of basic classes of event-driven algorithmic trading system, and learn several backtesting methods of trading strategies.
Goal 7. Understand and master the basic ideas of Python's object-oriented programming. You can independently develop financial data analysis and trading modules based on Python.
Highlight 1. The first domestic introduction of event-driven quantitative trading software modules. This part is less introduced in the existing domestic quantitative investment related textbooks and courses. The course uses Python language for basic trading modules and performance verification. The module and the trading strategy backtesting module were implemented concretely.
Highlights 2. It provides a detailed introduction to the implementation of Python financial applications, covering a wide range, and introducing the principles in a more intuitive way, coupled with code implementation, which can enable students to have a better understanding and grasp of related applications and programming.
Highlight three: All the code of the course is manually typed in line by line, step by step to guide students from entry to proficiency, and enable students to listen to the class, get an intuitive experience by typing the code, and think further.
Highlight 4. Although the entire course is not a big project, the whole project basically involves all aspects of Python programming. The implemented project combines the application of Python's supplementary libraries to facilitate students' overall grasp of Python programming ideas. In addition, the projects taught can also be easily expanded, and students can be personalized and applied to specific work practices.
1. The course is aimed at the crowd
This course is aimed at students who have some basic knowledge of finance (not required to be proficient, but need to know the basic financial instruments and the principles of financial markets), and want to learn the specific implementation of financial analysis software through the study of this project. The course does not assume that students understand Python-related knowledge and deep financial principles. In the course, the course will be introduced in a more intuitive way and equipped with implementation code.
2. How should I learn, how can I learn this course well, give some advice.
4.1 Suggestions on time arrangement
There are a total of 66 lectures in this course. If you have enough time, it is recommended to study forward at the rate of 4-5 lectures per day.
4.2 Learning requirements
If you do n’t have a foundation, it is recommended to watch carefully and learn carefully according to the progress of the course, and be sure to type the code in the watched video by yourself to deepen understanding and memory.
If you have a foundation, you do n’t have to move step by step. You can learn the parts you are interested in, but you must pay attention to practice and learn to make an inference.
4.3 Instructor's suggestion
1. After watching the video, it is best to put aside the video and write the examples in class independently to see if you understand. If it is not correct, you can look back
Watch the video, if repeated, to achieve the purpose of real understanding and mastery.
2. For the actual part of the project, you must do it yourself, do n’t be satisfied after listening.
3. It is recommended to listen to the video in general, generally take a piece of paper and pen, and make some notes and notes. This is a very good learning habit.
4. Learn to think, learn by analogy, and expand the content introduced in the course appropriately to deepen your understanding of this content.
5. Finally, I wish you a successful learning
The course belongs to a specific professional technique. After mastering this technique, you can work in the following positions
1.Python financial software development engineer
2. Financial application software designer
3.Python Big Data and Statistical Computing Engineer
4. Quantitative traders and analysts
Python financial application programming (data analysis, pricing and quantitative investment)
label:
Original address: http://www.cnblogs.com/destim/p/5380449.html
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.