Code: Select all
'Open excel data source
wfopen(link) "C:\Users\rklau\OneDrive\Research\Dissertation\Data - Provisional\Sample - Mecklai.xlsx" range=Sheet1 colhead=1 na="#N/A" @freq D5 @id @date(date) @smpl @all
'Rename page from "Untitled" to "data"
pagerename Untitled data
'Create new page "essay3" with monthly frequency from 2009M5 to 2020M3
pagecreate(page=essay3) m 2009M5 2020M3
'Copy-paste the data onto the new page
copy(link, c=last) data\DATE *
copy(link, c=last) data\FAUD *
copy(link, c=last) data\FCAD *
copy(link, c=last) data\FEUR *
copy(link, c=last) data\FGBP *
copy(link, c=last) data\FINR *
copy(link, c=last) data\FJPY *
copy(link, c=last) data\FKRW *
copy(link, c=last) data\FNOK *
copy(link, c=last) data\FNZD *
copy(link, c=last) data\FPHP *
copy(link, c=last) data\FTHB *
copy(link, c=last) data\FTWD *
copy(link, c=last) data\FZAR *
copy(link, c=last) data\SAUD *
copy(link, c=last) data\SCAD *
copy(link, c=last) data\SEUR *
copy(link, c=last) data\SGBP *
copy(link, c=last) data\SINR *
copy(link, c=last) data\SJPY *
copy(link, c=last) data\SKRW *
copy(link, c=last) data\SNOK *
copy(link, c=last) data\SNZD *
copy(link, c=last) data\SPHP *
copy(link, c=last) data\STHB *
copy(link, c=last) data\STWD *
copy(link, c=last) data\SZAR *
'Create pool object for All Markets "ALL"
pool all aud cad eur gbp jpy krw nok nzd inr php thb zar
'Create pool object for Developed Markets "DEV"
pool dev aud cad eur gbp jpy krw nok nzd
'Create pool object for Emerging Markets "EMR"
pool emr inr php thb zar
'Create series of monthly excess returns of holding each currency against the USD
dev.genr z01? = @nan(s?/f?(-1),1)
'Create groups of excess returns of holding each currency against the USD over each construction period k = 1, 6, 12, 24, and 36 months. The syntax is a workaround for a "moving product" function.
dev.makegroup(gz01) @exp(@movsum(log(z01?),1))
dev.makegroup(gz06) @exp(@movsum(log(z01?),6))
dev.makegroup(gz12) @exp(@movsum(log(z01?),12))
dev.makegroup(gz24) @exp(@movsum(log(z01?),24))
dev.makegroup(gz36) @exp(@movsum(log(z01?),36))
'Convert groups to matrices
matrix mz01 = @convert(gz01)
matrix mz06 = @convert(gz06)
'Rank the elemts of each row of the matrix
matrix rankz06 = @rowranks(mz06)