Skip to content

Monte Carlo Simulation and Business Analysis tools for Julia

License

Notifications You must be signed in to change notification settings

etorkia/MCHammer.jl

Repository files navigation

MC HAMMER Monte Carlo Simulation and Business Analysis tools for Julia

Documentation Build Status

Overview

The MC in MCHammer stands for Monte-Carlo. This tool is inspired by seminal tools such as Oracle Crystal Ball and Palisade @RISK for their ability to quickly build and analyze Monte-Carlo simulation models using excel functions and automations.

Though you can build a Monte-Carlo simulation in Julia using a few simple packages, it can be tedious setting up all the charts and analysis every time you build a new model. In order to save time and improve clarity, we have taken the standard charts and analysis used in every Monte-Carlo simulation and packaged them into functions that allow the user to focus on modeling instead of coding the same things over and over again.

MCHammer replicates Excel's familiar logic, functions and elemental tools in Julia, thus significantly reducing the time, complexity and effort to perform advanced modeling and simulation.

Why use MCHammer to build your Monte-Carlo simulation model?

  • Ability to correlate variables using Iman-Connover's numeric method with a simple function.
  • Analyze and visualize input data and simulation results using simple Excel like formulas
  • Simplify and eliminate 100s of lines of code for your charts and results analysis using MCHammers wrapper functions.
  • Elegant pre-built chart functions for rendering your simulation results : Histograms, Trend Charts, Sensitivity analysis.
  • Time Series functions to stress test your model over multiple time periods.
  • Easy for an Excel analyst to pick up quickly.

Example models and applications

Even though you can make the argument that anything can be modelled using uncertainty, here are some classic areas where MCHammer can streamline your analysis process.

  • CashFlow Modeling
  • Portfolio Modeling
  • Valuation models
  • Options Value using stock price forecasts
  • Total ShareHolder Returns
  • Contagion models
  • Geological / Oil & Gas Modeling
  • Quantitative Risk Modeling

Current Features

Modeling Features

  • Correlation of Simulated Inputs (Iman-Conover[1982])
    • Covariance Matrix
    • Rank Order Correlation Matrix
    • Pearson Product Moment Correlation Matrix
  • Stats and Simulation Charts
    • Density and Histogram Charts with Descriptive Stats
    • Fractiles
    • GetCertainty to find the exact probability of a scenario
    • Cumulative and Reverse Cumulative S-Curves (New)
  • Sensitivity Analysis Chart
    • Rank Correlation
    • PPMC
    • Contribution to Variance %

Time Series Features

  • Time Series using Simulated Random Walk
  • Time Series using Historical Data to calculate parameters for Simulated Random Walk
  • Trend Charts with Customizable Confidence Bands
  • Exponential Smoothing (New)
    • Simple
    • Double
    • Triple (Holt-Winters)

Import / Exporting

  • Import SIPmath 2.0 Libraries
  • Export simulation results to the SIPmath 2.0 standard.

Stochastic Processes (New)

  • Introduced a simulated martingale process with adjustable win probability
  • Markov Chain discrete time-series solution
  • Markov Chain analytical solve method to calculate equilibrium state

Current Functions

  • cormat()
  • covmat()
  • corvar()
  • GetCertainty()
  • fractiles()
  • cmd()
  • truncate_digit()
  • density_chrt()
  • histogram_chrt()
  • sensitivity_chrt()
  • trend_chrt()
  • GBMMult_Fit()
  • GBMM()
  • genmeta()
  • sip2csv()
  • importsip()
  • importxlsip()
  • RiskEvent()
  • marty()
  • markov_a()
  • markov_ts() *...

Documentation

Project Mission

We want to give access to models to those who need it because for too long insight has inadvertently been hidden away on some analysts computers. This project has the objective to give business analysts tools to either develop or migrate advanced models quickly into Julia so they can be used embedded into systems and workflows that support entire teams and organizations. More people who have access to insights generated by a model, the better the decision making will be over time.

Development Roadmap

  • Functions : MetaLog Distributions
  • Chart: Changes to output means Sensitivity Chart
  • Function: Combined Expert Opinion
  • Time Series: Learning Curve Forecasts
  • Chart: Error Bar Example (base code in mch_charts)

Questions?

If you have any bugs to report or issues with the package, please visit our project page.

Become an MCHammer contributor

MCHammer is an open source project sponsored by Technology Partnerz Ltd. We are happy to share our tools and approaches with the wider Julia community. Rolling out features is not an easy process to take on alone so if you are interested in joining our open source team to build and automate simulation using Julia, then please drop us a line.

For more information, send us a note at info@technologypartnerz.com