Advertisement
Guest User

Forex Portfolio test

a guest
Feb 18th, 2013
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.59 KB | None | 0 0
  1. ######################
  2. # INIT
  3. setInternet2(TRUE)
  4.  
  5. con = gzcon(url('http://www.systematicportfolio.com/sit.gz', 'rb'))
  6.     source(con)
  7. close(con)
  8.  
  9. library(quantmod)
  10. library(R.utils)
  11.  
  12. #########################
  13. # Lets load some symbols
  14. symbols <- c(
  15. "USDJPY","GBPUSD","USDCHF","EURCHF",
  16. "AUDUSD","NZDCAD","NZDJPY",
  17. "AUDNZD","EURNZD","GBPCAD",
  18. "AUDJPY","CADJPY","EURGBP","CHFJPY",
  19. "USDCAD","NZDUSD","GBPCHF","EURAUD",
  20. "EURJPY","GBPJPY","EURCAD","AUDCAD",
  21. "CADCHF","AUDCHF","NZDCHF","EURUSD"
  22. )#,"GBPNZD","GBPAUD"
  23.  
  24. USDJPY = getSymbols.fxhistoricaldata('USDJPY', 'hour', auto.assign = F, download=T)
  25. GBPUSD = getSymbols.fxhistoricaldata('GBPUSD', 'hour', auto.assign = F, download=T)
  26. USDCHF = getSymbols.fxhistoricaldata('USDCHF', 'hour', auto.assign = F, download=T)
  27. EURCHF = getSymbols.fxhistoricaldata('EURCHF', 'hour', auto.assign = F, download=T)
  28. AUDUSD = getSymbols.fxhistoricaldata('AUDUSD', 'hour', auto.assign = F, download=T)
  29. #GBPNZD = getSymbols.fxhistoricaldata('GBPNZD', 'hour', auto.assign = F, download=T)
  30. NZDCAD = getSymbols.fxhistoricaldata('NZDCAD', 'hour', auto.assign = F, download=T)
  31. NZDJPY = getSymbols.fxhistoricaldata('NZDJPY', 'hour', auto.assign = F, download=T)
  32. AUDNZD = getSymbols.fxhistoricaldata('AUDNZD', 'hour', auto.assign = F, download=T)
  33. EURNZD = getSymbols.fxhistoricaldata('EURNZD', 'hour', auto.assign = F, download=T)
  34. #GBPAUD = getSymbols.fxhistoricaldata('GBPAUD', 'hour', auto.assign = F, download=T)
  35. GBPCAD = getSymbols.fxhistoricaldata('GBPCAD', 'hour', auto.assign = F, download=T)
  36. AUDJPY = getSymbols.fxhistoricaldata('AUDJPY', 'hour', auto.assign = F, download=T)
  37. CADJPY = getSymbols.fxhistoricaldata('CADJPY', 'hour', auto.assign = F, download=T)
  38. EURGBP = getSymbols.fxhistoricaldata('EURGBP', 'hour', auto.assign = F, download=T)
  39. CHFJPY = getSymbols.fxhistoricaldata('CHFJPY', 'hour', auto.assign = F, download=T)
  40. USDCAD = getSymbols.fxhistoricaldata('USDCAD', 'hour', auto.assign = F, download=T)
  41. NZDUSD = getSymbols.fxhistoricaldata('NZDUSD', 'hour', auto.assign = F, download=T)
  42. GBPCHF = getSymbols.fxhistoricaldata('GBPCHF', 'hour', auto.assign = F, download=T)
  43. EURAUD = getSymbols.fxhistoricaldata('EURAUD', 'hour', auto.assign = F, download=T)
  44. EURJPY = getSymbols.fxhistoricaldata('EURJPY', 'hour', auto.assign = F, download=T)
  45. GBPJPY = getSymbols.fxhistoricaldata('GBPJPY', 'hour', auto.assign = F, download=T)
  46. EURCAD = getSymbols.fxhistoricaldata('EURCAD', 'hour', auto.assign = F, download=T)
  47. AUDCAD = getSymbols.fxhistoricaldata('AUDCAD', 'hour', auto.assign = F, download=T)
  48. CADCHF = getSymbols.fxhistoricaldata('CADCHF', 'hour', auto.assign = F, download=T)
  49. AUDCHF = getSymbols.fxhistoricaldata('AUDCHF', 'hour', auto.assign = F, download=T)
  50. NZDCHF = getSymbols.fxhistoricaldata('NZDCHF', 'hour', auto.assign = F, download=T)
  51. EURUSD = getSymbols.fxhistoricaldata('EURUSD', 'hour', auto.assign = F, download=T)
  52.  
  53. #to.daily(EURUSD)
  54.  
  55. #Lets make a grid
  56. correlation <- matrix(rep(0,26*26),nrow=26,ncol=26)
  57. df <- as.data.frame(correlation)
  58. rm(correlation)
  59. rownames(df)<- symbols
  60. colnames(df) <- symbols
  61.  
  62. correlation <- df
  63.  
  64. ##################################################################
  65. # Lets do something interesting :D
  66. pb  <- txtProgressBar(min = 0, max =26, style = 3)
  67. for (x in 1:26) {
  68.     for (y in 1:26) {
  69.         if (!(x == y)) {
  70.             pair1 <- last(to.daily(get(symbols[x])),"200 days")
  71.             pair2 <- last(to.daily(get(symbols[y])),"200 days")
  72.             colnames(pair1) <- c("OPEN","HIGH","LOW","CLOSE")
  73.             colnames(pair2) <- c("OPEN","HIGH","LOW","CLOSE")
  74.  
  75.             correlation[x,y] <- round(cor(pair1$CLOSE,pair2$CLOSE),3)
  76.         }
  77.  
  78.     }  
  79.       setTxtProgressBar(pb,x )
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement