App: MCarloRisk3D
Developer: differential enterprises
Genres: Finance, Business

Monte Carlo forecaster from raw asset price data including crypto, with extensive backtesting and tuning.

Now including portfolio features...available in a separate sub-window of this app!

- construct portfolios of stocks, ETFs, and popular crypto assets
- examine historical returns distributions for one asset at a time, with distribution metrics computed automatically such as mean return, volatility, skew (bullish/bearish), kurtosis (fat tail metric), and tail ratio (fat tail bias: bullish or bearish)
- generate monte carlo forecast models for a full portfolio, accounting for for inter-portfolio historical return correlations
- backtest these models, either in single pass batch mode or exhaustive backward-stepwise validation
- tune models to backtests using a variety of tuning parameters, including sample window size adjustment, adding black swan events of various magnitude and probability, and accounting for longer term memory in historical data
- choose strike price and estimate over/under probability at various future times (of portfolio or individual assets)
- use multi core CPUs for faster validation
- get simple metric reports and detailed graphs of validation results
- example pairwise correlation of historical returns in your portfolio
- optimize a portfolio for various targets, with user settable weights on probability-based targets
- construct multiple regression models (alpha / multi-beta) on regular assets or ETFs which stand in as surrogates for the full market (SPY) or sub-sectors (e.g. tech sector, low cap stocks, high cap stocks, growth, value, etc)
- compute novel beta metrics such as "beta to Bitcoin"
- backtest your beta models to check for robustness, and plot beta stability

Resamples from empirical daily returns to generate forward-in-time monte carlo paths (random walks), with user-adjustable long memory modifications such as the Hurst exponent, serial resampling, and fractional differencing.

No distribution shape assumptions needed, works with empirical returns distribution.  This is especially useful for new assets such as crypto or more exotic equities such as TSLA that may not conform to normal or lognormal return assumptions, especially in shorter time periods. 

Brownian motion becomes Empirical motion in this app, since we use an empirical distribution.

Similarly, fractional Brownian motion becomes fractional Empirical motion in this app, for one of the long memory options.

Aggregates monte carlo paths into a (price, time, probability) surface.  Allows user to move sliders to slice thru and examine this surface (e.g. price over time versus probability) and visualize the surface in 3D and with shaded contour plots.

Allows user to set up bulk backtests or exhaustive backtests to validate model.

Quick summary metrics of exhaustive backtests are computed to estimate model quality.
 Many model tuning parameters to adjust model to observed backtests:

- add black swan events (symmetric or non symmetric)
- tune skew and volatility of historical empirical distribution
- add long memory capability to the monte carlo paths (as noted above)

Set strike price to slice thru probability surface along time axis to estimate probability over/under strike at a given time forward, or cumulatively up to a given time.

Estimate put/call prices using the model you build and verify (not limited to market expiry or strike).

Compare modeled put/call prices w/ market put/call prices at published market expiry dates and strikes.

Bubble grid plot of market put/call open interest, open interest * price, and raw put/call price at all published market expiry dates and strike prices (IEX Cloud-supplied data):  to visualize where investors are putting their money on the options grid.  Compare market option prices at a grid point to your modeled prices.

Detailed training and examples available online in Help tab.

Raw price data from IEX Exchange or cryptocompare.com

Release notes:
Add 75/25 quartile tail ratio to returns distribution metrics.  This is for reference now, it does not influence the model.