pandas-montecarlo is a lightweight Python library for running simple Monte Carlo Simulations on Pandas Series data.
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)
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
Python >=3.4
Pandas (tested to work with >=0.18.1)
Matplotlib (tested to work with >=1.5.3)
Legal Stuff
pandas-montecarlo is distributed under the GNU Lesser General Public License v3.0. See the LICENSE.txt file in the release for details.
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pandas-montecarlo-0.0.2.tar.gz | 7.4 kB | Without provenance | 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 |
Security for pandas-montecarlo 0.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.