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)