summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2011-10-09 17:21:01 -0400
committerGuillaume Horel <guillaume.horel@gmail.com>2011-10-09 17:21:01 -0400
commit146e3e1b1276c71d2467202b9aa85fbdc127d6eb (patch)
tree73438b614da7c532e67769e577911052f3a4aaef
parentb9d26539cb63226365722bc4b535416dc2c08e8d (diff)
downloadbandit-146e3e1b1276c71d2467202b9aa85fbdc127d6eb.tar.gz
Progress on getting the rolled back sp500 index
-rw-r--r--IndexChange_500.csv65
-rw-r--r--bandit.R45
2 files changed, 68 insertions, 42 deletions
diff --git a/IndexChange_500.csv b/IndexChange_500.csv
index dbdb143..cc4354a 100644
--- a/IndexChange_500.csv
+++ b/IndexChange_500.csv
@@ -1,32 +1,39 @@
Company Additions Ticker.add Company Deletions Ticker.del Date
- MOS NSM 09/23/11
- ACN MIR 07/05/11
- MPCwi RSH 06/30/11
- AMB PLD 06/02/11
- ANR MEE 06/01/11
- CMG NOVL 04/27/11
- BLK GENZ 04/01/11
- COV MFE 02/28/11
- JOYG AYE 02/25/11
- NE QLGC 01/14/11
- MMIwi MDP 01/03/11
- CVC KG 12/17/10
- FFIV NYT 12/17/10
- NFLX ODP 12/17/10
- NFX EK 12/17/10
- IR PTV 11/16/10
- TYC SII 08/26/10
- ACE MIL 07/14/10
- QEPwi STR 06/30/10
- KMX XTO 06/25/10
- CERN BJS 04/29/10
- OKE BDK 03/12/10
- DISCA PBG 02/26/10
- HP RX 02/26/10
- BRK.B BNI 02/12/10
- URBN ACS 02/05/10
- NRG JAVA 01/28/10
- PCLN SGP 11/05/09
+MOSAIC CO MOS NATIONAL SEMICONDUCTOR NSM 09/23/11
+ACCENTURE PLC ACN MARSHALL & ILSLEY CORP (WI) MIR 07/05/11
+MARATHON PETROLEUM CORP MPCwi RADIOSHACK CORP RSH 06/30/11
+AMB PROPERTY CORP AMB PROLOGIS PLD 06/02/11
+ALPHA NATURAL RESOURCES ANR MASSEY ENERGY CO MEE 06/01/11
+CHIPOTLE MEXICAN GRILL IN CMG NOVELL INC NOVL 04/27/11
+BLACKROCK INC BLK GENZYME CORP GENZ 04/01/11
+EDWARDS LIFESCIENCES CORP EW QWEST COMMUNICATIONS INTL INC Q 03/31/11
+COVIDIEN PLC COV MCAFEE INC MFE 02/28/11
+JOY GLOBAL INC JOYG ALLEGHENY ENERGY INC AYE 02/25/11
+NOBLE CORP NE QLOGIC CORP QLGC 01/14/11
+MOTOROLA MOBILITY HOLDING MMIwi MEREDITH CORP MDP 01/03/11
+CABLEVISION SYSTEMS CO A CVC KING PHARMACEUTICALS INC KG 12/17/10
+F5 NETWORKS INC FFIV NEW YORK TIMES CO A NYT 12/17/10
+NETFLIX INC NFLX OFFICE DEPOT INC ODP 12/17/10
+NEWFIELD EXPLORATION CO NFX EASTMAN KODAK CO EK 12/17/10
+INGERSOLL-RAND PLC IR PACTIV CORPORATION PTV 11/16/10
+TYCO INTL TYC SMITH INTL INC SII 08/26/10
+ACE LIMITED ACE MILLIPORE CORP MIL 07/14/10
+QEP RESOURCES INC QEPwi QUESTAR CORP STR 06/30/10
+CARMAX INC KMX XTO ENERGY INC XTO 06/25/10
+CERNER CORP CERN BJ SERVICES CO BJS 04/29/10
+ONEOK INC OKE BLACK & DECKER CORP BDK 03/12/10
+DISCOVERY COMMUNICATIONS DISCA PEPSI BOTTLING GROUP INC PBG 02/26/10
+HELMERICH & PAYNE INC HP IMS HEALTH INC RX 02/26/10
+BERKSHIRE HATHAWAY B BRK/B BURLINGTON NORTHERN SANTE FE BNI 02/12/10
+URBAN OUTFITTERS URBN AFFILIATED COMPUTER SERVICES ACS 02/05/10
+NRG ENERGY NRG SUN MICROSYSTEMS INC JAVA 01/28/10
+ROPER INDUSTRIES INC ROP ENSCO INTL INC ESV 12/22/09
+CLIFFS NATURAL RESOURCES CLF KB HOME KBH 12/18/08
+MEAD JOHNSON NUTRITION CO MJN MBIA INC MBI 12/18/08
+ROSS STORES INC ROST DYNEGY INC A DYN 12/18/08
+SAIC INC SAI CONVERGYS CORP CVG 12/18/08
+VISA INC V CIENA CORP CIEN 12/18/08
+PRICELINE.COM INC PCLN SCHERING-PLOUGH CORP SGP 11/05/09
First Solar Inc. FSLR Wyeth Corp. WYE 10/15/09
Airgas Inc. ARG Cooper Industries Ltd. CBE 09/08/09
CareFusion Corp. CFNwi The Manitowoc Company Inc. MTW 08/31/09
@@ -35,7 +42,7 @@ Red Hat Inc. RHT CIT Group Inc. CIT 07/24/09
Quanta Services Inc. PWR Ingersoll-Rand Company Ltd. IR 06/30/09
Western Digital WDC Embarq Corp. EQ 06/30/09
MetroPCS Communications Inc. PCS 06/29/09
- Tyco Electronics Ltd. 06/25/09
+ Tyco Electronics Ltd. TEL 06/25/09
DeVry Inc. DV 06/08/09
FMC Technologies Inc. FTI Covidien Ltd. COV 06/04/09
General Motors Corp. GM 06/02/09
diff --git a/bandit.R b/bandit.R
index 0d35758..1acb59a 100644
--- a/bandit.R
+++ b/bandit.R
@@ -31,7 +31,8 @@ N <- 1000000
W <- N
for(day in 1:length(returns[,1])){
r <- as.vector(exp(returns.subset[day,])-1)
- r[is.na(r)] <- 0 #NA means we don't know the vector that day, but next return will catch up
+ r[is.na(r)] <- 0 #NA means we don't have quotes that day, but next return
+ #will catch up
dN <- N*crossprod(w,r)
N <- N+dN
W <- c(W,N)
@@ -47,19 +48,37 @@ for(day in 1:length(returns[,1])){
W <- c(W,N*mean(R))
}
-indexchange <- read.table("IndexChange_500.csv",sep="\t",header=T,quote="")
+indexchange <- read.table("IndexChange_500.csv",sep="\t",header=T,quote="",
+ colClasses="character")
#cleanup tickers
attach(indexchange)
-Ticker.add <- sub('/', '-',Ticker.add)
-Ticker.add <- sub('.wi', '',Ticker.add,fixed=T)
-Ticker.add <- sub('wi', '',Ticker.add)
-Ticker.add <- sub('.', '-',Ticker.add,fixed=T)
-Ticker.del <- sub('/', '-',Ticker.del)
-Ticker.del <- sub('.wi', '',Ticker.del,fixed=T)
-Ticker.del <- sub('wi', '',Ticker.del)
-Ticker.del <- sub('.', '-',Ticker.del,fixed=T)
-Date <- as.Date(Date,format="%m/%d/%y")
-for( jour in Date){
-
+indexchange$Ticker.add <<- sub('/', '-',indexchange$Ticker.add)
+indexchange$Ticker.add <- sub('.wi', '',indexchange$Ticker.add,fixed=T)
+indexchange$Ticker.add <- sub('wi', '',indexchange$Ticker.add)
+indexchange$Ticker.add <- sub('.', '-',indexchange$Ticker.add,fixed=T)
+indexchange$Ticker.del <- sub('/', '-',indexchange$Ticker.del)
+indexchange$Ticker.del <- sub('.wi', '',indexchange$Ticker.del,fixed=T)
+indexchange$Ticker.del <- sub('wi', '',indexchange$Ticker.del)
+indexchange$Ticker.del <- sub('.', '-',indexchange$Ticker.del,fixed=T)
+
+#rollback sp500 changes
+sp500.historic <- sp500
+for( i in 1:100){
+ #Ticker.add empty means index is <500 for a while
+ if(indexchange$Ticker.add[i]!=""){
+ if(!is.na(match(indexchange$Ticker.add[i],sp500.historic$ticker))){
+ sp500.historic <-
+ sp500.historic[-match(indexchange$Ticker.add[i],sp500.historic$ticker),]
+ }else{
+ cat(paste("ticker",indexchange$Ticker.add[i],"not found\n"))
+ }
+ }
+ #add ticker that was removed
+ if(indexchange$Ticker.del[i]!=""){
+ sp500.historic <- rbind(sp500.historic,
+ c(indexchange$Company.Deletions[i],
+ indexchange$Ticker.del[i]))
+ }
+}
detach(indexchange)