Rocode >> Contracting >> Fundamental Indexation

The Fundamental Indexation program suite was written for the Department of Finance and Banking at Monash University. It has been used to model the Dow Jones Industrial Average, the Russell 1000 Index, S&P 500 Index and the ASX 200 Index.

The suite consists of separate Quasi Index, Breadth Study, Rebalance Costs, Industry Sampling and Index Premiums pre-processor and post-processor applications.

Fundamental Indexation System Suite

Fundamental Indexation System Suite.

A set of PowerPoint slides were made during 2011 detailing the FI systems and maybe found via this link. Watch a presentation of the Fundamental Indexation Systems

The Fundamental Indexation research was financed between 2009 - 2012 by an Australian Research Council Linkage Fund grant.

Publications from this work include:

A utility program AggRo was built to aggregate the rows generated by our research software in to publishable tables.

Dow Jones Industrial Average

The following is a video about using the Fundamental Indexation suite to simulate the Dow Jones Industrial Average (DJIA).


Watch the screencast showing how to use the application to graph the Dow Jones Industrial Average between 1962 and 2009.

Dow Jones Industrial Average.

Index Specification

The stock history for the Dow Jones is stored in a standalone file formatted using a Microsoft Windows configuration file format.

Index Specification

Screen shot of the index section for the Dow Jones specification.

Job File

The C++ application expects a job file to be passed as the first argument to the executable application. This may be achieved using a drag and drop action or via the command prompt.

DJIA Job File

Screen shot of the Dow Jones simulation JobFile.


Our replication of the DJIA uses stock and price data from The Center for Research in Security Prices (CRSP) database. Comma separated variable files are extracted from CRSP and used in the above screencast. Example fields include the Number of Shares Outstanding, Closing Price and Holding Returns.

Quasi Indexes

A Quasi 1000 Index is created using the top 1000 stocks of the US market ranked by Market Capitalisation. This is similar but not exactly the same as the Russell 1000 Index.

US Top 1000 Stocks Graph

US Market Quasi 1000 stocks.

Fundamental Indexes

An additional 7 indexes where also created using the top 1000 stocks as ranked using the weights of different fundamental variables.

  • Arnott Composite
  • Book Equity
  • Cash Flow
  • Revenue
  • Dividends
  • Sales
  • Employment
  • These 7 monthly stock lists are separately passed, one by one, to the Fundamental Indexation application. The example of the Arnott Composite stock list is shown below.

    Top 1000 Data Flow

    Fundamental Indexes and FI applications.

    A monthly stock composition and monthly composite weighted return reports are generated. The weighted return report is then loaded in to Excel. A cumulative total is generated and then graphed.

    Suite Outputs

    Over 40 outputs maybe generated via the application suite. The documentation for two example outputs have been shown below.

    Equal Weight Report Price Weight Report

    Equal Weight and Price Weight outputs.

    Source Code

    This source code of the suite is written using Microsoft Visual Studio and the C++ low level language.

    Visual Studio 1

    Screen shot of example code.

    GNU Scientific Library

    The GNU Scientific Library has been included because of its ability to perform Linear Regression analysis.

    The Fundamental Indexation application includes a copy of the GSL specifically the Microsoft Visual Studio port made available by Brian Gladman.

    GSL in Visual Studio

    Screen shot of the GSL within Visual Studio.

    The GSL has been integrated to the application as a Win32 dll.


    The C++ source code for the project was written with included embedded comments that are used with Doc-o-Matic to document the various C++ components.

    Doc-o-matic 1 Doc-o-matic 2 Doc-o-matic 3

    Screen shots showing the HTML output of Doc-o-Matic.