Skip to main content
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

Metadata

Release files for pandas-montecarlo 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pandas-montecarlo 0.0.2
File Size Uploaded
pandas-montecarlo-0.0.2.tar.gz 7.4 kB Details

Release files / pandas-montecarlo-0.0.2.tar.gz

Download URL pandas-montecarlo-0.0.2.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e8ca2a9b433450a6085fd5ab67dcea67c221bc69ea6cffe4f410f484ac46f2b7
BLAKE2b-256 checksum
How to use checksums
e44480696e3e13cc249b5135b6d2fb55b16699863e6d5b584bfa059720c189d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page