Git Product home page Git Product logo

mchammer.jl's Introduction

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 [email protected]

mchammer.jl's People

Contributors

etorkia avatar

Stargazers

 avatar Chathura Colombage avatar Agustín Covarrubias avatar vishnummv avatar Jiří Špaček avatar  avatar Ratan (Rai) Sur avatar George Mount avatar Ivan Litteri avatar David Taylor avatar Adam H. Sparks avatar Vijay Ivaturi avatar Maxime Mouchet avatar  avatar Anton Kochkov avatar William McKibbin avatar

Watchers

 avatar

mchammer.jl's Issues

trend_chrt - UndefVarError: `dr` not defined

When doing the example for trend_chrt

ts_trials =[]

#To setup a TimeSeries simulation with MCHammer over 12 periods
for i = 1:1000
    Monthly_Sales = GBMM(100000, 0.05,0.05,12)
    Monthly_Expenses = GBMM(50000, 0.03,0.02,12)
    MonthlyCOGS = Monthly_Sales .* 0.3
    MonthlyProfit = Monthly_Sales - Monthly_Expenses - MonthlyCOGS
    push!(ts_trials, MonthlyProfit)
end

#trend_chrt(ts_trials, x_label="last 12 months")

dr = collect(Date(2019,1,01):Dates.Month(1):Date(2019,12,01))

trend_chrt(ts_trials, dr, x_label="last 12 months")

I get an error message:

ERROR: UndefVarError: `dr` not defined
Stacktrace:
 [1] trend_chrt(SimTimeArray::Vector{Any}, PeriodRange::Vector{Date}; x_label::String, quantiles::Vector{Float64})
   @ MCHammer ~/.julia/packages/MCHammer/O3JXL/src/mch_charts.jl:192
 [2] top-level scope
   @ ~/src/my_trends/testMCHammer.jl:84

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.