Site icon R-bloggers

Update on Scary Derivatives

[This article was first published on Timely Portfolio, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

After reading Bloomberg’s article,

JPMorgan Chase & Co. and Goldman Sachs Group Inc., among the world’s biggest traders of credit derivatives, disclosed to shareholders that they have sold protection on more than $5 trillion of debt globally.

http://bloom.bg/txiyuG

I thought we should update my post Scary Derivatives and Scary XML in R in which I said

The massive damage caused in 2008-2009 by the sliver of derivatives called credit default swaps seems like a faint warning siren when we see that they only represent < 7% of total derivatives exposure. Interest rate and currency derivatives, also where I think the next disaster occurs, are more than 10 times larger than these credit contracts at $226 Trillion.

From TimelyPortfolio

This amount of money, bilaterally netted or not, is truly unbelievable and staggering.  Total debt outstanding of the sovereign nations is not the real problem.  Like housing, the exponential exacerbation caused by the leverage and derivatives traded on the underlying is where the real potential catastrophe occurs.  No government and no central bank has the ability to counter any major damage in currencies or interest rates.

 

R code (click to download from Google Docs):

#read xml derivatives data from the
#US Treasury OCC Quarterly Derivatives Report
#2 methods
#still way too manual since it appears the format changes
#each reporting period

#as far as I can tell
#the first published example of how to read
#Microsoft Excel xml workbooks

require(XML)
#require(ggplot2)

#get 2nd Quarter of 2011 report (dq211)
url = “http://www.occ.treas.gov/topics/capital-markets/financial-markets/trading/derivatives/dq211-xml.xml”

doc = xmlInternalTreeParse(url)
#define namespaces
#figuring this out took hours
#but using getNodeSet was much cleaner than the
#next method
namespaces = c(o=”urn:schemas-microsoft-com:office:office”,
    x=”urn:schemas-microsoft-com:office:excel”,
    ss=”urn:schemas-microsoft-com:office:spreadsheet”,
    html=”http://www.w3.org/TR/REC-html40″)
#this gets row 41 from the Table 3 worksheet for the total $ of derivatives
ns <- getNodeSet(doc,”/ss:Workbook/ss:Worksheet[@ss:Name=’Table 3′]/ss:Table/ss:Row”,namespaces)[[41]]
amt <- df <- as.data.frame(as.numeric(xmlSApply(ns, xmlValue))[4:11])
#believe it or not this is $trillions of dollars
#remove some zeros so we can label better on the graph
amt <- amt/1000000
df <- df/1000000
#this gets row 10 for labels
ns <- getNodeSet(doc,”/ss:Workbook/ss:Worksheet[@ss:Name=’Table 3′]/ss:Table/ss:Row”,namespaces)[[10]]
lab <- as.character(xmlSApply(ns, xmlValue)[4:11])
#combine the labels with
df <- cbind(lab,df)
#jpeg(filename=”derivatives by type.jpg”,quality=100,
#    width=6.25, height = 8,  units=”in”,res=96)
barplot(df[5:8,2],names.arg = factor(df[5:8,1]),main=”US Bank Derivatives by Type
    Q2 2011″,ylab=”$ (in trillions)”,ylim=c(0,max(df[5:8,2]+50)),space=0,
    col=c(“indianred4″,”darkolivegreen4″,”cadetblue4″,”goldenrod3”))
mtext(“Source: US Dept of Treasury OCC Quarterly Derivatives Report”,
    side=1,line=3,cex=0.8,adj=0)
#dev.off()

To leave a comment for the author, please follow the link and comment on their blog: Timely Portfolio.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.