Difference between revisions of "Manipulating Financial Data in Python"

From Quantitative Analysis Software Courses
Jump to navigation Jump to search
 
(61 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Module 1: Numpy Fundamentals==
+
==Lesson 1: Reading, slicing and plotting stock data==
#Creating Arrays
+
*Overview of the data we'll be working with (from Yahoo!)
#Basic Indexing and Slicing
+
*Introduction to our primary library: Pandas
#Data Processing using Arrays
+
*Reading CSV data into Pandas
 +
*Filtering to specific dates
 +
*Plotting
  
==Module 2: Pandas DS- Series==
+
Reading: "Python for Finance", Chapter 6: Financial time series
#Working with index
 
#Operations
 
##Filtering
 
#Handling Incomplete Data
 
  
==Week 2==
+
==Lesson 2: Working with many stocks at once==
===Module 3: Pandas DS- Data Frame===
+
*Our target data frame structure
#Creating Data frame
+
*Address reverse order issue
#Operations
+
*Reading data for multiple stocks into the structure
##Columns and rows
+
*Date slicing
#Essential Function
+
*Symbol slicing
## Reindexing
+
*Plotting
## Indexing and Filtering
+
*Normalizing
  
===Module 4: Data Analysis- Reading/Writing Data===
+
==Lesson 3: The power of Numpy==
#Importing Data using Pandas
+
*What is Numpy and how it relates to Pandas
#Importing data without pandas
+
*Why is Numpy powerful/important?
#Saving and exporting data using pandas
+
*Creating Numpy arrays
#Saving and exporting data without pandas
+
*Indexing and slicing Numpy arrays
 +
*Important data processing on Numpy arrays
 +
*Example use with pandas too
  
==Week 3==
+
Reading: "Python for Finance", Chapter 4: Data types and structures
===Module 5===
 
====Pre-processing Data====
 
====Statistical Functions for Analysis====
 
  
===Module 6: Date And Time===
+
==Lesson 4: Statistical analysis of time series==
#Creating Date and Time
+
*Gross statistics on dataframes
#Date Mathematics
+
*Rolling statistics on dataframes
#Time Series Plotting
+
*Plotting a technical indicator (Bollinger Bands)
  
==Week 4==
+
Reading: "Python for Finance", Chapter 6: Financial time series
===Module 7: Graphs Part I===
 
  
===Module 8: Graphs Part II===
+
==Lesson 5: Incomplete data==
 +
*How incomplete data arises in financial data
 +
*Different approaches to dealing with it
 +
 
 +
==Lesson 6: Histograms and scatter plots==
 +
 
 +
* Histogram of daily returns
 +
* Compare SPY with XOM
 +
* Scatter plots
 +
* Correlation is not slope!
 +
* Compare SPY vs XOM, with SPY vs GLD scatter plots
 +
 
 +
Reading: "Python for Finance", Chapter 5: Data Visualization
 +
 
 +
==Lesson 7: Sharpe ratio & other portfolio statistics==
 +
*Speed up reading data by memoizing
 +
*Average daily return
 +
*Volatility: stddev of daily return (don't count first day)
 +
*Cumulative return
 +
*Relationship between cumulative and daily
 +
*Sharpe Ratio
 +
*How to model a buy and hold portfolio
 +
 
 +
==Lesson 8: Optimizers: Building a parameterized model==
 +
*What does an optimizer do?
 +
*Syntax of optimizer use
 +
*Problem statement for an optimizer (inputs, outputs, assumptions)
 +
*How to find X that minimizes f(X) with a minimizer
 +
*How to build a parameterized polynomial model from real data using an optimizer
 +
 
 +
==Lesson 9: Optimizers: How to optimize a portfolio==
 +
*What does it mean to "optimize" a portfolio
 +
*Framing the problem for an optimizer
 +
*Constraints on X for an optimizer
 +
*Ranges on X for an optimizer
 +
 
 +
Reading: "Python for Finance", Chapter 11: Statistics-Portfolio Optimization

Latest revision as of 18:10, 24 August 2016

Lesson 1: Reading, slicing and plotting stock data

  • Overview of the data we'll be working with (from Yahoo!)
  • Introduction to our primary library: Pandas
  • Reading CSV data into Pandas
  • Filtering to specific dates
  • Plotting

Reading: "Python for Finance", Chapter 6: Financial time series

Lesson 2: Working with many stocks at once

  • Our target data frame structure
  • Address reverse order issue
  • Reading data for multiple stocks into the structure
  • Date slicing
  • Symbol slicing
  • Plotting
  • Normalizing

Lesson 3: The power of Numpy

  • What is Numpy and how it relates to Pandas
  • Why is Numpy powerful/important?
  • Creating Numpy arrays
  • Indexing and slicing Numpy arrays
  • Important data processing on Numpy arrays
  • Example use with pandas too

Reading: "Python for Finance", Chapter 4: Data types and structures

Lesson 4: Statistical analysis of time series

  • Gross statistics on dataframes
  • Rolling statistics on dataframes
  • Plotting a technical indicator (Bollinger Bands)

Reading: "Python for Finance", Chapter 6: Financial time series

Lesson 5: Incomplete data

  • How incomplete data arises in financial data
  • Different approaches to dealing with it

Lesson 6: Histograms and scatter plots

  • Histogram of daily returns
  • Compare SPY with XOM
  • Scatter plots
  • Correlation is not slope!
  • Compare SPY vs XOM, with SPY vs GLD scatter plots

Reading: "Python for Finance", Chapter 5: Data Visualization

Lesson 7: Sharpe ratio & other portfolio statistics

  • Speed up reading data by memoizing
  • Average daily return
  • Volatility: stddev of daily return (don't count first day)
  • Cumulative return
  • Relationship between cumulative and daily
  • Sharpe Ratio
  • How to model a buy and hold portfolio

Lesson 8: Optimizers: Building a parameterized model

  • What does an optimizer do?
  • Syntax of optimizer use
  • Problem statement for an optimizer (inputs, outputs, assumptions)
  • How to find X that minimizes f(X) with a minimizer
  • How to build a parameterized polynomial model from real data using an optimizer

Lesson 9: Optimizers: How to optimize a portfolio

  • What does it mean to "optimize" a portfolio
  • Framing the problem for an optimizer
  • Constraints on X for an optimizer
  • Ranges on X for an optimizer

Reading: "Python for Finance", Chapter 11: Statistics-Portfolio Optimization