Efficient frontier based on Monte Carlo simulated returns
Project description
Python Monte Carlo Efficient Frontier (PyMCEF) package
Purpose
PyMCEF is a python package to generate efficient frontier by stochastic programming on Monte Carlo simulated returns.
Fixed-target expected under performance and absolute semi-deviation are the supported risk measures.
User input
The Monte Carlo simulated returns for all the assets in the investment universe is the input and will be to used to train the efficient frontier.
(Optional) The returns as a validation set to measure the performance of the efficient frontier.
Computation results
The complete efficient frontier stored as a vector of efficient portfolios, each of which containing the following:
A python dictionary, storing the asset index and weight in the portfolio
In sample performance (Sharpe ratio etc.)
The lower and upper bound for the lagrangian multiplier producing this particular portfolio
Validation performance, if validation Monte Carlo simulated returns are provided.
Advantage
This package implements the algorithm developed by Prof. Robert J. Vanderbei in his Book: Linear Programming: Foundations and Extensions and paper Frontiers of Stochastically Nondominated Portfolios
This algorithm is very efficient, starting with lagrangian multiplier being infinite and the optimal portfolio being 100% in the asset with the largest average return, only portfolios on the efficient frontier will be visited. The time cost of obtaining the full efficient frontier with this algorithm is similar to that of obtaining one single efficient portfolio with traditional method.
This algorithm is based on simulated returns so it is model agnostic. This introduce huge flexibility to the user as no assumption is made on the type of return distribution (e.g. Gaussian)
Works remain to be done
- At least two desirable functionalities are not implemented yet:
Support for short position
Support user specified upper and lower bound of the weights of each asset.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for pymcef-0.2.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5fb21d1ad881bfa5d23f902eb71e02ba39090b5c70610a007cca7b8b3136206 |
|
MD5 | f15f8101b275f546707121b349753415 |
|
BLAKE2b-256 | 399636d9acbd830db67c4a75b18a547516b071d927e0d7c09d5eb1696ffd288a |
Hashes for pymcef-0.2.0-cp35-cp35m-macosx_10_6_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cff4688754e8b6ff439d6cb30194cfbd0b6e95fa4cdb3ad54c36d08b8f866a1c |
|
MD5 | 3592a15c5dfa1e1a370a18d222012307 |
|
BLAKE2b-256 | 797613f60356bb1834f5c415cf10ae477427fc1a59ab75197732e092be861380 |
Hashes for pymcef-0.2.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78a6208ac8f7f31082d3b7a6940d4ab792f5ba6531aad0656250542bf87b6db1 |
|
MD5 | 58798364ed68cbbd516d8ddf9d31e610 |
|
BLAKE2b-256 | 77ed07a575fc01dbe50e8d173b0d20283c5728397948205be5f87447a88a2ee0 |
Hashes for pymcef-0.2.0-cp27-cp27m-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 612e1b1eeee960cc66b488395bfa21093bf9ae7b7fc7505df3aba7cc21f641fb |
|
MD5 | 606833b8b3bd0f46b7b6d5905b3f74b9 |
|
BLAKE2b-256 | 67c376047bd99d4b613fac83f27ca456fb7db057af02b0a5377a2140ed44153e |