Add @RISK to Any Application!
Get great @RISK results in any application with the @RISK Developer's Kit! Click to view larger graphic.
The @RISK Developer’s Kit (RDK) is Palisade’s widely-used risk analysis programming toolkit. The RDK allows you to build Monte Carlo simulation models using Windows and .NET programming languages, such as C, C#, C++, Visual Basic, or Visual Basic .NET. Examples of programs written in Windows and .NET programming languages are provided.
The RDK offers access to the risk analysis and distribution fitting technology available in the world’s most widely-used risk analysis tool - @RISK for Excel. It can be used to easily create custom applications that include Monte Carlo simulation, such as financial modelling tools, corporate financial systems, and industry-specific programs.
Unlike the Excel version of @RISK, the RDK does not require a spreadsheet to run simulations. This means user models can be larger and execute faster. All simulation results can be accessed programmatically, directly in the developer’s application. Two powerful charting engines – that of @RISK and Microsoft Excel with its extensive customisation capabilities – can be used to generate graphs of simulation results.
RDK applications can be run in a desktop, network server, or web environment. (Click here for examples.) The RDK fully supports multithreading to allow the development of scalable web applications. Models built using the RDK can run simulations and generate results entirely in the user’s program or the @RISK Interface can be used to display reports and graphs on simulation results.
Why Use the RDK?
For many users the spreadsheet is the preferred risk modelling environment. However, many times an application written in a standard programming language needs Monte Carlo simulation or distribution fitting capabilities. The application will have its own user interface, variables and model calculations. In addition, a developer may want to allow users to access the application over a corporate network or over the Internet.
The RDK allows custom applications such as these to run simulations and generate result graphs and statistics. Applications written with the RDK will often run faster and can contain larger numbers of distributions and outputs when compared with models written in spreadsheet versions of @RISK. This is because RDK applications are compiled and do not contain additional routines executed during spreadsheet recalculation.
Distribute Custom Solutions Over the Web
The RDK allows you to streamline the distribution of your risk analysis solutions through enterprise-wide web deployment. Server-based risk analysis models – such as corporate financial models, engineering applications, and financial planning tools – can be accessed over the Internet from any browser, allowing users to enter model parameters and inputs, run simulations, and view results and graphs. Model structure, logic, and RDK simulation libraries are stored on the server, ensuring consistency for all end-users and removing local installation and support issues.
ActiveX Interface Makes Integrating Risk Analysis Easy
The RDK and included BestFit Developer's Kit (BDK) now ship with two programming interfaces: the new ActiveX interface and the standard .DLL interface.
The new ActiveX/COM Interface makes development of custom risk analysis solutions easy. An intuitive set of methods and properties allow the developer to quickly set up a simulation model in a custom application – defining input probability distributions, simulation settings, and model logic. (See a list of methods and properties, by object, here.) The RDK also makes it easy to handle events during a simulation run and process and display results. This interface can be used in any ActiveX-aware programming environment such as Visual Basic or C++. Example programs are included.
.NET AND ACTIVEX
Because the .NET environment offers the COM Interoperability feature, .NET programmers can also take advantage of the easy-to-use ActiveX/COM interface. Examples in two .NET programming languages – C# and Visual Basic .NET – are included.
The RDK DLL Interface includes a library of functions that allows you to build Monte Carlo simulation models using C, Visual Basic or other programming languages. Use of the RDK function library requires an installed programming language and knowledge of programming techniques. You are not, however, restricted to using these languages for developing your simulations. Any Windows-based language which can call .DLL functions can be used for developing RDK applications using the RDK DLL Interface. Example programs in C++ and Visual Basic are included.
Monte Carlo Simulation and the RDK
Monte Carlo simulation is a quantitative risk analysis technique. Uncertain inputs in a Monte Carlo model are represented by probability distributions of possible values. The results you are interested in are distributions of possible outcomes; that is, the range of possible outcomes that could occur and the likelihood of any outcome occurring. These results are generated by letting your computer recalculate your model over and over again, each time using different randomly selected sets of values from the probability distributions. In effect, the computer is trying all valid combinations of inputs to simulate all possible outcomes. This is like running hundreds or thousands of “What-if” analyses on your model, all at one sitting. The results are distributions of possible outcomes that you can use to determine the probabilities of certain results occurring.
Executing a Monte Carlo simulation using the RDK is done by repeatedly executing the portion of your program that calculates your model. Each time the model is executed (an iteration), different values are sampled from the distribution functions used in your model. These sampled values are used in calculating a new set of model results. The RDK automatically stores the results from each iteration. A simulation will execute the number of iterations you select. A run in the RDK executes the number of simulations you specify, with each simulation calculating the desired number of iterations.
BestFit Developer's Kit Included for Distribution Fitting
The RDK includes the BestFit Developer’s Kit (BDK) which allows you to fit probability distribution functions to data in programs written in C, C#, Visual Basic, or other Windows or .NET programming languages. The BDK can be used to select probability distributions to be used in an RDK model based on historical or sampled data. Fitting distributions to data sets focuses a model and helps to accurately define the uncertain factors, thereby saving time and avoiding costly errors. All of the fitting methods, distribution functions, and many graphs in BestFit (which is integrated with @RISK Professional and Industrial editions) are included with the BDK. Using the BDK, you can develop your own custom applications that use the same sophisticated fitting techniques.
Apply BestFit's sophisticated distribution fitting technology to your own application with the BestFit Developer's Kit! Click to view larger graphic.
BestFit traditionally is used for fitting distributions to data in Windows. Typically, BestFit is used in conjunction with @RISK for fitting distributions to data in spreadsheet risk analysis models. However, as with the RDK, some users have applications written in a standard programming language that they wish to add distribution fitting capabilities to. The BDK allows a custom application to fit distributions to data and generate statistics on fit results.
Fitting done in applications written with the BDK will often run faster than fitting done in BestFit or in spreadsheet versions of @RISK. Like the RDK, this is because BDK applications are compiled and do not contain the additional processing that occurs when the BestFit or @RISK Interface is used.
Typical Applications that Can Incorporate the RDK
Chemical Process Engineering
Environmental Impacts & Policy
Foreign Exchange Modeling
Health Risk Assessment
Mergers & Acquisitions
Operation Research Analysis
Petroleum and Mining Resource
- Uncertain model inputs can be defined using any of 37 probability distribution types. Distributions can be assigned to inputs prior to simulation or sampled directly in code during a run.
- Distributions can be optionally truncated, shifted, locked to a specific value during a simulation or "stressed" to restrict sampling to a user-defined range.
- Distributions found by fitting probability distributions to data sets can be directly assigned to an input object in an RDK simulation model.
- Any number of matrices can be defined to correlate uncertain inputs.
- Graphs of theoretical probability distributions can be made using the RDK's Microsoft Excel-based charting engine.
- Any number of simulation outputs can be defined, either as single variables or grouped together as an output range.
- Model inputs and outputs are stored in standard collection object for convenient manipulation and enumeration.
- Historical data sets can be fit to any of 28 probability distributions.
- Sample, density or cumulative data can be fit and data can be filtered prior to fitting.
- Fit results are ranked according any of three goodness-of-fit tests - Chi-Square, Anderson-Darling or Kolmogorov-Smirnov.
- Extensive statistics on fit results are generated including mean, standard deviation and other standard statistics, along with critical values and p-values.
- Custom chi-square binning is allowed.
- Graphs of fit results which overlay input data with fitted probability distributions are available using the RDK's Microsoft Excel-based charting engine.
- Input data sets and fit results have built in properties and methods that allow access to all fitting options and fit results directly in code. (See a list of methods and properties, by object, here.)
- Available simulation settings include unlimited iterations and simulations, Monte Carlo or Latin Hypercube sampling, random number generator seeding, convergence monitoring, and auto-stop on convergence.
- Convergence data available directly in code during a run.
- Events notify the RDK application at the start of each simulation and iteration.
- Extensive statistics on model outputs and sampled inputs are generated including mean, standard deviation and other standard statistics, along with percentiles and probabilities for any user-defined values.
- Sensitivities of model output values to uncertain inputs are available through multivariate stepwise regression or correlation analysis.
- Scenario analysis is available, which determines which groups of uncertain inputs are instrumental in reaching user-defined goals.
- All results can be filtered using two different filter types.
- Raw sets of output or sampled input data can be returned directly to the RDK application.
- Model results for outputs and sampled inputs are stored in standard collection objects for convenient manipulation and enumeration in the RDK application.
- Graphs of simulation results including histograms, cumulative curves, tornado graphs of sensitivities and summary graphs of output ranges are available using either a Microsoft Excel-based charting engine or the standard @RISK graphing engine.
Sensitivity analysis and @RISK's powerful charting engine are among the many features of RDK . Click to view larger graphic.
- RDK graphs may be generated using the Microsoft Excel charting engine, allowing extensive graph customisation using Excel's built-in properties and methods (Microsoft Excel needs to be installed on the server for network or web RDK applications).
- All results graphs and distribution function charts available in @RISK for Excel may also be generated by an RDK application in bitmap, metafile, or .JPG formats. These graphs may be used in a custom interface and be deployed over network or web servers without having Excel or @RISK installed.
- Graph type, scaling, titles and overlays can be set programmatically from the RDK application.
- Generated graphs can be easily inserted in a web page for display to end users or returned directly to the RDK application for display in its own interface.
@RISK RESULTS INTERFACE
- Results from all RDK simulations can be viewed using the @RISK Results Interface - a pre-built user interface that can be employed by any RDK application for displaying simulation results, including reports and graphs.
- End-users can use the standard @RISK dialogues for defining simulation settings and monitoring simulation convergence.
- The @RISK Results Interface will be familiar to users of an RDK application that have used @RISK for Microsoft Excel.
- The @RISK Results Interface can be used when simulation libraries are installed locally on a desktop PC or when the RDK application is run off of a network server.
RDK Distribution Functions
The RDK allows you to replace uncertain values in your simulation model with any of 37 @RISK probability distribution functions which represent a range of possible values. Available distribution types include:
Development and Deployment of RDK Applications
The RDK Developer Edition gives you everything you need to get up and running with your own risk analysis application. Affordable and flexible, it is ideal for developing and testing custom risk solutions. Multiple Developer Kits can be purchased to run applications in small workgroups. The Developer Edition includes:
DLL and ActiveX functions to perform all @RISK for Excel and BestFit features as described above
Examples in Windows and .NET programming languages
Installer for deployment of an unlimited number of 30-day demo licenses of any application developed using the RDK
The Developer Edition is designed for software development and testing. To run applications in a production setting, Palisade offers customised deployment licenses. We can work with you to develop a tailored RDK licensing solution to meet your organisation’s needs. Call our Technical Sales department at +44 1895 425050 or e-mail us at to discuss your licensing needs.
Order @RISK Developer's Kit Now!
Free Trial Version: Download software now and use for 30 days, free! Download here.
System Requirements: IBM PC compatible Pentium or higher; Microsoft 98, Me, 2000, NT; 16MB RAM installed.
Recommended: 32MB RAM installed.
Technical Support: Technical and development support is available. Please or call our Sales Department for details.