OxMetrics is a family of software packages providing an integrated solution for the econometric analysis of time series, forecasting, financial econometric modelling and statistical analysis of crosssection and panel data.
Discover what’s new in OxMetrics 9
OxMetrics is a family of of software packages providing an integrated solution for the econometric analysis of time series, forecasting, financial econometric modelling, or statistical analysis of crosssection and panel data. OxMetrics consists of a frontend program called OxMetrics, and individual application modules such as Ox, CATS, PcGive, STAMP and G@RCH.
OxMetrics Enterprise is a single product that includes all the important components: OxMetrics desktop, Ox Professional, CATS, PcGive and STAMP and G@RCH
OxMetrics 9, published and distributed worldwide by Timberlake Consultants.
>Find out more about the new features available in OxMetrics 9
View the OxMetrics 9 Handbook here
Getting started with OxMetrics? View the OxMetrics starter guide here
Bought OxMetrics 9 and need help with the installation? View the OxMetrics installation guide here
Please click here to purchase or upgrade OxMetrics 9, or send us a message using the form below.
The new release of OxMetrics 9 contains upgraded versions of Ox Professional, PcGive and G@RCH. See the following for all the new OxMetrics features:
The latest version includes CATS 3 (Cointegration of Time Series Analysis by Jurgen A Doornik and Katerina Juselius) and several improvements to the following modules:
 Ox Console 9
 OxMetrics Enterprise Edition 9
 CATS 3 (Cointegration of Time Series Analysis)
 Ox Professional 9
 PcGive Professional 15
 G@RCH 9.0
 STAMP 8.3
 SsfPack 3
Ox Console 9
New packages in Ox Console 9:
 oxurl – download resources from the internet through simple interface to libcurl, see packages/oxurl/oxdoc/index.html
 oxdoc – generate documentation from source code markup (written in Ox), see packages/oxdoc/oxdoc/index.html. Documentation for oxdoc is created by running it on itself.
 gwg2ox – generates Ox code for a gwg file (used when calling Save Ox code from the graph window contact menu).
 Python – call Python from Ox code.
 Rox – call R from Ox code.
View the new features and improvements here.
OxMetrics Enterprise Edition Version 9.0
OxMetrics Enterprise Edition is a single product that includes and integrates all the important components for theoretical and empirical research in econometrics, time series analysis and forecasting, applied economics and financial time series: Ox Professional, PcGive, G@RCH and STAMP.
CATS 3 (Cointegration of Time Series Analysis) by Jurgen A Doornik and Katerina Juselius
CATS uses OxMetrics for data input and graphical and text output, and is part of the OxMetrics family.
The third generation of CATS is a complete rewrite in more than one way. It is now written in Ox for use within OxMetrics, either using the graphical user interface or programmatically. Furthermore, many algorithms have been improved or newly invented, in particular for I(2) models. The new CATs module with I(2) cointegration and many new I(1) cointegration features includes corrections and is considerably faster.
Ox Professional Version 9.0
An objectoriented matrix programming language. It is an important tool for statistical and econometric programming with a syntax similar to C++ and a comprehensive range of commands for matrix and statistical operations. Ox is at the core of OxMetrics. Most of the other modules of OxMetrics (such as PcGive, STAMP, G@RCH) are implemented with the Ox language. Ox Professional belongs to the OxMetrics Enterprise Edition.
PcGive Professional Version 15.0
An essential tool for modern econometric modelling. PcGive Professional is also part of OxMetrics Enterprise Edition. It provides the latest econometric techniques, from single equation methods to advanced cointegration, volatility models static and dynamic panel data models, discrete choice models and timeseries models.
PcGive Professional includes Autometrics
Autometrics is the automatic econometric model selection procedure that is available in PcGive. Autometrics is a revolutionary new approach to model building, based on recent advances in the understanding of model selection procedures. Experiments show that Autometrics outperforms even the most experienced econometrician. Starting from an initial model, Autometrics will find the best simplified model. Thus removing the drudgery of model selection, allowing you to concentrate on the variable choice and interpretation of the model(s).
G@RCH Version 9.0
G@RCH is an OxMetrics module dedicated to the estimation and forecast of univariate and multivariate ARCHtype models. It also allows the estimation of univariate and multivariate nonparametric estimators of the quadratic variation and the integrated volatility. G@RCH provides a menudriven easytouse interface, as well as some graphical features. For repeating tasks, the models can be estimated via the Batch Editor of OxMetrics or using the Ox language together with the ‘Garch’, ‘MGarch’ and ‘Realized’ classes. Version 9.0 is a major update that features many improvements. G@RCH is also part of OxMetrics Enterprise Edition.
STAMP Version 8.3
Modelling and forecasting time series, based on structural time series models. These models use advanced techniques, such as Kalman filtering, but are set to be easy to use. The hard work is done by the program, leaving the user free to concentrate on formulating models, then using them to make forecasts. STAMP 8.3 includes both univariate and multivariate models and automatic outlier detection. STAMP is also part of OxMetrics Enterprise Edition.
SsfPack Version 3.0
SsfPack is a suite of C routines for carrying out computations involving the statistical analysis of univariate and multivariate models in state space form and requires Ox 4 or above to run. SsfPack is not a member of OxMetrics Enterprise Edition.
* OxMetrics 9 and SSfPack users please note: SSfPack 3.0 has been recompiled to be compatible with OxMetrics 9 and requires users to reinstall a new version of the software.
A series of of webcasts delivered by OxMetrics developers: Dr. Jurgen A. Doornik, Prof. Siem Jan Koopman, Prof. Sebastién Laurent and Prof. Sir David F. Hendry are available to view on our YouTube Channel.
This series of short videos provide an introduction to the new software modules and highlight some of the key new features available within OxMetrics.
What’s New in OxMetrics 9
 Support for dark mode. This is detected automatically under macOS, but can be set in Model/Preferences/Options. Under Windows and Linux not all dialogs will be dark. Graphics windows are never dark.
 New default data format: *.oxdata (this is the .in7/.bn7 files together in a zip file).
 Improved csv reading and writing, and support for zipped csv files.
 Dropped support for obsolete spreadsheet files (.xlsx, .wks), and .dht data files.
 Improved support for high resolution screens (HiDPI) and improved dialogs.
 Native support for Apple silicon (M1).
 Dropped support for 32bit versions.
 New full precision double point to string conversion avoids printing (e.g.) 0.46000000000000002.
 Graphs can be saved in the SVG vector format which can be incorporated in an html document. SVG files can also be inserted into recent versions of Microsoft Word and Excel.
 The Ox code to regenerate the graph can be created by rightclicking on a graph in the document listing and selecting Save Ox code. This can be useful if, after manual adjustments, the graph is to be used as a template for other graphs.
 DataFetch to download data from Fred, Quandle, and other data providers.
 The Ox code to regenerate the graph can be created by rightclicking on a graph in the document listing and selecting Save Ox code. This can be useful if, after manual adjustments, the graph is to be used as a template for other graphs.
 PcGive and others: made Test menu into popup menu with shortcuts
 PcGive,STAMP,G@RCH dialogs now centred on OxMetrics Model Class dialog
 New Algebra functions: seasonal(LAG), cseasonal(LAG), DI(YEAR, PERIOD), II(YEAR, PERIOD), SI(YEAR, PERIOD), TI(YEAR, PERIOD), lag0
 New Batch functions: drawtext, drawptext, drawtitle.
 Special variables (Seasonal, CSeasonal, II#1980(1), SI#1980(1), TI#1980(1), etc.) can be used on the righthand side in Algebra expressions.
New Packages in Ox
 oxurl – download resources from the internet through simple interface to libcurl, see packages/oxurl/oxdoc/index.html
 oxdoc – generate documentation from source code markup (written in Ox), see packages/oxdoc/oxdoc/index.html. Documentation for oxdoc is created by running it on itself.
 gwg2ox – generates Ox code for a gwg file (used when calling Save Ox code from the graph window contact menu).
 Python – call Python from Ox code.
 Rox – call R from Ox code.
Ox 9.0
* Added .last to index last element:
x[.last][.last] = 1;
x[.last  1][.last  2] = 2;
x[.last + 1] //error: indexing beyond last element
 parallel if (testexpression) for, parallel if (testexpression) foreach allows the code to decide to run in parallel or not
 Multiplicative concatenation of arrays and strings
 Indexing array by string: searches for an odd index wich has that string value, then accesses the next element. This emulates dictionary style lookup. If an item is not present, .Null is returned (instead of a index out of range error).
 decl aa = {“one”, 10, “two”, 0, “four”, <1>, “five”, {1,2}};
 println(“aa[\”one\”]= “, aa[“one”] ?: “false”);
 println(“aa[\”two\”]= “, aa[“two”] ?: “false”);
 println(“aa[\”three\”]=”, aa[“three”] ?: “false”);
 println(“aa[\”four\”]= “, aa[“four”] ?: “false”);
 println(“aa[\”five\”]= “, aa[“five”] ?: “false”);
This example also uses: allow a ? a : c to be written as a ? : c. This makes for more readable code when a function has many options:
func(const options)
{
otherfunc(options["print"] ?: 0,
options["stop_on_errors"] ?: 0,
options["labels"] ?: {"a","b","c"});
}
decl aa = {"one": 10, "two": 0, "four": <1>, "five": {1,2}};
// is equivalent to
decl aa = {"one", 10, "two", 0, "four", <1>, "five", {1,2}};
// but the former may better reflect the intention
Note that the : can only be after odd elements, otherwise there is a compilation error
New packages G@RCH 9.0
 G@RCH 9.0 now includes univariate Multiplicative Error Models (MEM). MEM models are primarily aimed at modeling nonnegative time series. The most popular MEM type model is the Autoregressive Conditional Duration (ACD) model of Engle and Russell (1998). G@RCH 9.0 provides no fewer than seven different specifications.
 Mulcom 3.0 is now fully integrated into OxMetrics 9.0. MulCom is designed for forecasting evaluation. It provides an analysis of whether some among a set of competing models are significantly better than the others, in terms of predictive accuracy. MulCom can also be applied in any setting where one what to compare the means of two or more populations.
 G@RCH 9.0 can be used with DataFetch to download data from the internet and then estimate a model on the downloaded data.
What was released in OxMetrics 8:
 OxMetrics 8 (Front End)
 CATS 3 (Cointegration of Time Series Analysis)
 Ox 8.0
 G@RCH 8.0
 PcGive 15
 STAMP 8.3
OxMetrics 8 (front end)
The following lists the new features and improvements made to the OxMetrics front end in version 8. Current users of OxMetrics 7 will find that the user experience remains familiar.
The most important new features are:
 Windows: support for high resolution screens (HiDPI).
 Windows: tabbed user interface.
 All: interface refresh.
 macOS: OxMetrics is now a 64bit program, so client programs are now 64bit as well.
 maxOS: Find replace dialog can remain open while working elsewhere.
 Graphs can be saved as SVG.
 Scalable Vector Graphics (SVG) is an open standard that is supported by all modern web browsers.
 Ox Professional is now installed with OxMetrics, so no separate installation is required to run any Ox code that is generated.
CATS 3 (Cointegration of Time Series Analysis) by Jurgen A Doornik and Katerina Juselius
CATS uses OxMetrics for data input and graphical and text output, and is part of the OxMetrics family.
The third generation of CATS is a complete rewrite in more than one way. It is now written in Ox for use within OxMetrics, either using the graphical user interface or programmatically. Furthermore, many algorithms have been improved or newly invented, in particular for I(2) models. The new CATs module with I(2) cointegration and many new I(1) cointegration features includes corrections and is considerably faster.
Here is a brief summary of new features in the I(1) part of CATS
 Much more efficient computations (can be several orders of magnitude faster) in Bartlett correction and recursive estimation;
 Bartlett correction always included when valid;
 Improved betaswitching algorithm;
 New alphabetaswitching algorithm allowing linear restrictions on alpha and not requiring identification;
 Bootstrap of rank test;
 Bootstrap of restrictions;
 More Monte Carlo facilities: draw from estimated model, either with estimated or with specified coefficients;
 Generaltospecific CATSmining;
 Automatic generation of Ox code;
 New convenient way to express restrictions;
 Most algorithms QR based.
And for the I(2) part of CATS:
 Improved tauswitching algorithm;
 New deltaswitching algorithm;
 New triangularswitching algorithm allowing linear restrictions on alpha, beta, tau and not requiring identification;
 Estimation with delta=0;
 Bootstrap of rank test;
 Simulation of asymptotic distribution of rank test;
 Bootstrap of restrictions;
 More Monte Carlo facilities: draw from estimated model, either with estimated or with specified coefficients;
 Automatic tests of unit vectors and variables;
 CATSmining;
 Improved computation of standard errors;
 Automatic generation of Ox code;
 All algorithms QR based.
The Special Issue reprint book “Recent Developments in Cointegration” has been published online and is freely accessible on the MDPI Books platform here
Ox
Ox is an objectoriented matrix programming language with a comprehensive mathematical and statistical function library. Matrices can be used directly in expressions, for example to multiply two matrices, or to invert a matrix. The major features of Ox are its speed, extensive library, and welldesigned syntax, which leads to programs which are easier to maintain.
Running Ox programs
There are two versions under Windows:
Ox Professional
oxl.exe for use in a command prompt (console) window, oxrun.exe for full graphical functionality in conjunction with OxMetrics. The oxrun and oxli programs have an interactive and debug mode. Executables are in ox\bin.
Ox Console
oxl.exe for use in a command prompt window.
New Features and enhancements in Ox Version 8.0
 Changes to
Modelbase
mean that oxo files of Modelbase derived classes need to be recompiled:GetOx*
functions have additional sClass argument; also introducedGetOxDecl,GetOxDatabase
.Y_VAR
constants have been moved into the class (derived classes should do the same with their constants). This avoids clashes when using multiple classes in one project. So we need to write (e.g.)
instead of
model.Select(Arfima::Y_VAR, ...
For convenience a mechanism has been added to use strings instead of constants:
model.Select(Y_VAR, ...
To support this,
model.Select("Y", ...
model.SetMethod("NLS");Modelbase
has two new virtual functionsFindGroup,FindMethod
which rely on the new virtual functionsGetGroupLabels,GetMethodLabels
. The derived class should overrideGetGroupLabels,GetMethodLabels
to return the correct array of strings.
 Can save graphs as SVG file.
savesheet
to save twodimensional array as Excel file (counterpart to loadsheet) Improved handling of array entries with no value
(.Null)
: when created using new, array elements will be
.Null
 can test
.Null
equality (only) usingarr[i] == .Null
 can assign
arr[i] = .Null
 but using a variable with a
.Null
value in an expression remains a runtime error.
 when created using new, array elements will be

 The three dots in a function header, indicating variable number of arguments, can now be followed by a variable name. E.g:
func(…args)
{
decl a = 1;
}
is convenient shorthand for
func(…)
{
decl args = va_arglist();
decl a = 1;
}
(Unless used in main, as in main(…args), in which case arglist is called to get the command line arguments.)
 Three dots in a function call spreads an array, so
func1(...a)
equalsfunc1(a[0], a[1], a[2])
if a is an array with three elements. The array cannot have more than 256 elements.  Read Stata 13 and 14 .dta files.
 Can skip items in multiple assignment, as well as use it in decl, e.g.
decl [a, b, c] = {1, 2, 3};
[a,,c] = {1, 3};  %#v on array of strings: omit top level {} (useful for generating code)
fwrite/fread
can have a filename as the first argument. E.g.,
fread("filename", &s, 's')
reads an entire file into one string,fwrite("filename", s)
saves a string as a file.diagcat(a, b, ...);
to concatenate more than two matrices.
 Added pvalue format for printing: e.g.
print("%9.3P", 1e6)
prints
"[0.000]***"
. The format is three stars for significance below 0.001, two for below 0.01, one for below 0.05.  The default line length for output is now 1024 (was 80 before). This can be changed using the
format
function.  using G,E,F format to print . for .NaN.
 Added %rs and %cs to matrix format to specify row and column separator
Fixed Problems in Ox version 8.0
 confusion with norm: using ‘F’ on vector computes l_70 instead of l_2, now using l_2 for ‘F’ (assuming l_70 is never needed).
 continue in switch can lead to stack overflow (missing a pop).
 It is safe to redeclare constants within a class (provided they don’t change value), but that symbol was counted eventhough not added, resulting in NULL symbol at the end of the list of class symbols, which crashed.
G@RCH 8.0
 The G@RCH book is now available in pdf accessed from within the software.
 G@RCH 8.0 comes along with Ox Professional. This major change allows G@RCH users, who previously did not purchase OxMetrics Enterprise, to run ox programs and in particular the numerous example files provides with G@RCH as well as the codes generated with ‘ALT+o’ after the estimation of a model with the rolling menus.
 A new option is available for the Lee and Mykland (2008) and Lee and Hannig (2010) tests for jumps. This option allows both tests to have better finite sample properties when the underlying process deviates from the random walk hypothesis (with and without jumps). The correction has been proposed by Laurent and Shi (2018).
 Following the simulation method advocated by Blasques, Lasak, Koopman, and Lucas (2016), insample confidence bands for the conditional mean and conditional variance of univariate GARCHtype models are now available. This allows to visually investigate the precision of the estimates of the first two conditional moments.
 The tool introduced in version 7.0 to convert a date of the format yyyymmdd, yyyyddmm, ddmmyyyy or mmddyyyy into a proper OxMetrics format is now also accessible via the rolling menus in Category ‘Other Models’ and Model Class ‘Convert Date using G@RCH’.
 A bug has been corrected in MGarch on the inclusion of explanatory variables in the mean and variance of DCCtype of models.
 The G@RCH classes (Garch, MGarch and Realized) uses enumerations, i.e., lists of integer constants like enum { HESS, CROSSPRODUCT, QMLE };. By default, the first member has value 0, and each successive member has a value of one plus that of the previous member. In order to avoid clashes with other classes imported in the same project, enumerations have been moved into the classes as public members. Therefore, they can still be accessed from outside of the class but using the following convention: mgarchobj.MLE(MGarch::HESS); (where MGarch is the class name) instead of mgarchobj.MLE(HESS); like in the previous versions. Note that this is equivalent to using mgarchobj.MLE(0); because HESS is the first element of the enumeration.
 The test for additive jumps in ARGARCH/GJR models proposed by Laurent, Lecourt, and Palm (2016) is available in Category ‘Other Models’ and Model Class ‘Descriptive Statistics using G@RCH’ and by calling the new class function Run Test Additive Jumps of the Garch class or the RGARCH class directly (which is available in the same folder as Garch.oxo). Several example files are also provided to estimate a BIPARGARCH/GJR model and to extract the detected jumps in ox.
 Several minor bugs have been corrected.
PcGive 15
The improvements in PcGive mainly relate to (1) model formulation, (2) saturation estimation using Autometrics, (3) automatic model selection in simultaneous equations models (SEM).
Fixed and Improved in PcGive 15
 Easier desktop layout with additional direct access to recursive graphs, forecasts and tests.
 Trend indicator saturation (TIS) (we have undertaken research using TIS on GPs speed of takeup of generics, which yielded useful results, but still in progress, as is the technical paper)—note this as PcGive being at the frontier implementing powerful new approaches.
 Recursive graphs can be implemented after conventional estimation rather than needing a separate implementation, and can be undertaken with or without indicator saturation (IS).
 Additional diagnostic plots are available
 Easy choice of form of estimated parameter standard errors (SEs) including HCSE and HACSE.
 Multivariate robust Hedgehog plots had variables scrambled.
 Hedgehog plots use a different color in the forecast period.
 Hedgehog Levels forecasts beyond estimation sample: not integrated.
 Levels forecasts with gap: created cGap extra forecasts Also used wrong levels if cGap > 0.
 Recursive hedgehog would omit early part when there are dummies.
 Fixed Ox issue with find, affecting forecasting.
 Autometrics options are presented differently, offering more flexibility in the choice of saturation.
 The AR test after FIML has been changed, using the 3SLS likelihood instead of estimating the extended model by FIML.
 When the lag length exceeds 12, the presearch uses lag blocking and a more e cient search for contrasting terminals.
Unique to PcGive 15
 Hedgehog graphs where a sequence of forecasts for say 1 through 8 steps ahead starting at successive horizons T, T+1, etc. are plotted against outcomes looking like the spins of a hedgehog.
 Easily computed forecasts by a robust device as an additional choice to avoid that problem: an illustration is attached showing how much better the robust device is after a shift.
STAMP 8.3
New Features
 STAMP 8.3 works under OxMetrics 6.1.
 The Ox code generator is introduced and fully supported by STAMP. This new facility can generate Ox code for the model that is estimated in STAMP. It complements the Batch code generator in STAMP. It is particularly useful for those who use Ox for time series analysis in a production environment.
 The online help facility of STAMP is updated. In particular, the online help for the Batch language and the new Ox code generator are rewritten.
 AIC and BIC added to default output.
 The confidence bounds of seasonal, cycle, and AR components can be centered around zero or following the components.
Solved problems
 All weights and related computations in the Test/Weights dialog can be carried out, also for time series with missing data.
 The Write forecasts option is combined with a Store forecasts option in the Test/Forecasting dialog. The observations forecasts are stored after confirmation as a new variable with the forecasts attached at the end of the sample. When necessary, the database sample is automatically extended such that the forecast window is included. The insample values of the new variable are the same as in the original series.
 The Edit/Save forecasts option in the Test/Forecasting dialog is reactivated for model without explanatory variables.
 The Batch code options for Forecasting is extended; see Batch documentation.
 Variables and components in the Batch code need to be written between accolades. Specifically, in the setcmp batch command we have “level”, “slope”, “seasonal”, “cycle”, “ar” and “irregular”.
 Inclusion of lagged dependent variables is discouraged. A new facility will be built in for the next version. In this version it is best to treat and to have it as an exogenous variable.
The current OxMetrics software family supports the latest versions of Microsoft Windows, Mac OS and Linux. See below to see if your machine is compliant with the latest version:
 64bit: Windows 10, 8, 7; Linux (x86_64); macOS (Apple and Intel silicon)
Bookshelf
Empirical Model Discovery: A synthesis of the authors’ groundbreaking econometric research on automatic model selection, which uses powerful computational algorithms and theory evaluation.
Handbook of Volatility Models: Featuring contributions from international experts in the eld, the book features numerous examples and applications from realworld projects and cuttingedge research, showing step by step how to use various methods accurately and efficiently when assessing volatility rates.
Help Guides
View the OxMetrics 9 Handbook here
Getting started with OxMetrics? View the OxMetrics starter guide here
Bought OxMetrics 9 and need help with the installation? View the OxMetrics installation guide here
OxMetrics offers special prices to students. To be able to purchase OxMetrics modules at student prices, you need to present proof of student status.
Student copies are full versions of the software. However, they may not include all the documentation. For example, PcGive is distributed with the Introduction to OxMetrics book and PcGive Volume I manual only. Ox Professional is distributed with Introduction to OxMetrics book and the Introduction to Ox manual only. STAMP is distributed with the full documentation, Introduction to OxMetrics book and STAMP book. G@RCH is distributed with the full documentation, Introduction to OxMetrics book and G@RCH book. When purchasing more than one module only 1 Introduction to OxMetrics book will be included.
Prices
Single Module of PcGive / Ox Professional / STAMP / G@RCH
£85.00 (excluding VAT where applicable).
TSP/OxMetrics
£95.00 (excluding VAT where applicable).
Any two modules from PcGive / Ox Professional / STAMP / G@RCH
£136.00 (excluding VAT where applicable).
Any three modules from PcGive / Ox Professional / STAMP / G@RCH
£204.00 (excluding VAT where applicable).
Any four modules from PcGive / Ox Professional / STAMP / G@RCH
£210.00 (excluding VAT where applicable).