Skip to main content

Monte Carlo Simulator for Pandas

Project description

Python version Travis-CI build status PyPi version PyPi status Star this repo Follow me on twitter

pandas-montecarlo is a lightweight Python library for running simple Monte Carlo Simulations on Pandas Series data.

Changelog »


Quick Start

Let’s run a monte carlo simulation on the returns of SPY (S&P 500 Spider ETF).

First, let’s download SPY’s data and calculate the daily returns.

from pandas_datareader import data

df = data.get_data_yahoo("SPY")
df['return'] = df['Adj Close'].pct_change().fillna(0)

Next, we’ll import pandas_montecarlo and run monte carlo simulation with 10 simulations (for demo simplifications) and bust/max drawdown set to -10.0% and goal threshhold set to +100.0% (defaults is >=0%):

import pandas_montecarlo
mc = df['return'].montecarlo(sims=10, bust=-0.1, goal=1)

Plot simulations

mc.plot(title="SPY Returns Monte Carlo Simulations")  # optional: , figsize=(x, y)
demo

Show test stats

print(mc.stats)

# prints
{
    'min':    0.98088401987146789,
    'max':    0.98088401987146934,
    'mean':   0.98088401987146911,
    'median': 0.98088401987146911,
    'std':    4.0792198665315552e-16,
    'maxdd': -0.17221175099828012,  # max drawdown
    'bust':   0.2,  # probability of going bust
    'goal':   0.0   # probability of reaching 100% goal
}

Show bust / max drawdown stats

print(mc.maxdd)

# prints
{
    'min':    -0.27743285515585991,
    'max':    -0.00031922711279186444,
    'mean':   -0.07888087155686732,
    'median': -0.06010335858432081,
    'std':     0.062172124557467685
}

Access raw simulations’ DataFrame

print(mc.data.head())
    original          1          2          3          4  ...       10
0   0.000000   0.017745  -0.002586  -0.005346  -0.042107  ...  0.00139
1   0.002647   0.000050   0.000188   0.010141   0.007443  ...  0.00108
2   0.000704   0.002916   0.005324   0.000073  -0.003238  ...  0.00071
3   0.004221   0.008564   0.001397   0.007950  -0.006392  ...  0.00902
4   0.003328  -0.000511   0.005123   0.013491  -0.005105  ...  0.00252

Installation

Install pandas_montecarlo using pip:

$ pip install pandas_montecarlo --upgrade --no-cache-dir

Requirements

P.S.

Please drop me an note with any feedback you have.

Ran Aroussi

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pandas-montecarlo-0.0.2.tar.gz (7.4 kB view details)

Uploaded Source

File details

Details for the file pandas-montecarlo-0.0.2.tar.gz.

File metadata

File hashes

Hashes for pandas-montecarlo-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e8ca2a9b433450a6085fd5ab67dcea67c221bc69ea6cffe4f410f484ac46f2b7
MD5 fabde6d22af7fa4d32ce99a09b2e160b
BLAKE2b-256 e44480696e3e13cc249b5135b6d2fb55b16699863e6d5b584bfa059720c189d0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page