Skip to content

Python script for single period Mean-Variance Optimization (MVO) with scope 1+2 carbon intensity constraints

Notifications You must be signed in to change notification settings

MBKraus/Mean_Variance_Portfolio_Optimization_with_Carbon_Intensity_Constraints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Single Period Mean-Variance Optimization (MVO, Markowitz) with scope 1+2 carbon intensity constraints

Python script for running a single period mean variance optimization (Markowitz, 1952) with a weighted portfolio scope 1+2 carbon intensity target on top of the "usual" long-only constraints and having the portfolio weights sum up to 1. Carbon intensity, or carbon emissions per dollar of revenue, adjusts for company size and is generally accepted to be a more accurate measurement of the efficiency of output rather than a portfolio's absolute carbon footprint.

NB - Markowitz's Modern Portfolio Theory assumes (amongst others):

  • frictionless markets
  • market liquidity is infinite
  • investors are risk averse
  • returns are normally distributed

Also, kindly note that:

  • this script is highly time period sensitive - whilst it also considers the mean daily return to be a good estimator of future returns
  • the Quandl module isn't actively supported anymore for returns post April 11, 2018

This script requires the following packages / modules in order to function properly:

Screenshot - Efficient Frontier

alt text

Screenshot - Portfolio Breakdown - Global Min Variance Portfolio

alt text

About

Python script for single period Mean-Variance Optimization (MVO) with scope 1+2 carbon intensity constraints

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages