Custom Index Code

I’ve been watching the scripting videos and decided to flex my mental muscles a bit by scripting a custom index comprised of Australia’s biggest Iron Ore miners. I have attached the code just in case anyone has a need for it. Please provide feedback if there are any errors.

It’s probably more accurately a weighted average price.

// Get market capitalization for each stock and store in variables
RIOMARKETCAP = DATAFIELD(GetData(CODE=RIO:ASX), FEED=FD, FIELD=MarketCapitalization);
BHPMARKETCAP = Datafield(GetData(CODE=BHP:ASX), FEED=FD, FIELD=MarketCapitalization);
FMGMARKETCAP = Datafield(GetData(CODE=FMG:ASX), FEED=FD, FIELD=MarketCapitalization);

// Sum the market capitalization to get total market capitalization
INDEXTOTALCAP = RIOMARKETCAP + BHPMARKETCAP + FMGMARKETCAP;

// Calculate respective weights based on market capitalization
BHPWEIGHT = BHPMARKETCAP / INDEXTOTALCAP;
RIOWEIGHT = RIOMARKETCAP / INDEXTOTALCAP;
FMGWEIGHT = FMGMARKETCAP / INDEXTOTALCAP;

// Weighted average of each stocks price respective to share of total index cap
(BHP:ASX * BHPWEIGHT) + (RIO:ASX * RIOWEIGHT) + (FMG:ASX * FMGWEIGHT)