Skip to content

Instantly share code, notes, and snippets.

View zachmayer's full-sized avatar

Zach Deane-Mayer zachmayer

View GitHub Profile
#!/usr/bin/env python
# encoding: utf-8
#Constants.R
#Created by Kenneth J. Shackleton on 14 June 2011.
#Copyright (c) 2011 Ringo Limited.
#All rights reserved.
#R Port by Zach Mayer on 4 December 2011
@zachmayer
zachmayer / additional demos.R
Created November 21, 2011 15:52
Functional and Parallel time series cross-validation
#Setup
set.seed(1)
library(fpp) # To load the data set a10
HZ <- 12
myControl <- list( minObs=60,
stepSize=1,
maxHorizon=HZ,
@zachmayer
zachmayer / Random Strategies.R
Created October 20, 2011 20:19
Random Strategies
#Setup
rm(list = ls(all = TRUE))
set.seed(1)
nsims <- 1000
library(quantmod)
library(PerformanceAnalytics)
#Load Data
getSymbols('^GSPC',from='1900-01-01')
spyReturns <- dailyReturn(GSPC$GSPC.Adjusted, type = "arithmetic")
@zachmayer
zachmayer / 1. Setup.R
Created October 17, 2011 14:44
Backtesting a Simple Stock Trading Strategy 3
rm(list = ls(all = TRUE))
memory.limit(size = 4000)
#Get Data
library(quantmod)
getSymbols('^GSPC',from='1900-01-01')
myStock <- Cl(GSPC)
bmkReturns <- dailyReturn(myStock, type = "arithmetic")
#Apply our strategy to tomorrows returns
@zachmayer
zachmayer / Naive.R
Created September 20, 2011 18:31
Recessions III
#Load current know recessions
library(xts)
ModRec <- read.csv("http://dl.dropbox.com/u/7428423/Modified%20NBER%20Recession%20Data.csv")
ModRec$DATE <- as.Date(ModRec$DATE)
ModRec <- xts(ModRec[,-1],order.by=ModRec[,1])
#Load actual recessions
library(quantmod)
getSymbols('USREC',src='FRED')
@zachmayer
zachmayer / 1. Functions.R
Created September 16, 2011 17:36
Backtesting a Simple Stock Trading Strategy 2
rm(list = ls(all = TRUE))
daysSinceHigh <- function(x, n){
apply(embed(x, n), 1, which.max)-1
}
myStrat <- function(x, nHold=100, nHigh=200) {
position <- ifelse(daysSinceHigh(x, nHigh)<=nHold,1,0)
c(rep(0,nHigh-1),position)
}
@zachmayer
zachmayer / Chart 1.R
Created September 15, 2011 21:32
Stock Correlations
#Load Data
rm(list = ls(all = TRUE))
library(quantmod)
library(PerformanceAnalytics)
symbols <- c('XLE','XLV','XLI','XLU','XLP','IYZ','XLK','XLY','XLF','XLB','GLD','SLV','EFA','EEM','FXA','FXE','FXY','HYG','LQD')
getSymbols(symbols,from='2007-01-01')
getSymbols('SPY',from='2007-01-01')
rm(list = ls(all = TRUE))
#http://etfprophet.com/days-since-200-day-highs/
require(quantmod)
getSymbols('^GSPC',from='1900-01-01')
daysSinceHigh <- function(x, n){
apply(embed(x, n), 1, which.max)-1
}
@zachmayer
zachmayer / Linear Model.R
Created August 26, 2011 14:52
Sheep and Temperature
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.18471 0.12130 9.767 1.08e-12 ***
Sheep -0.71154 0.08546 -8.326 1.16e-10 ***
@zachmayer
zachmayer / 0. Plain.R
Created August 23, 2011 15:13
Variable Interactions
cor(iris[-5])
pairs(iris[-5], bg=iris$Species, pch=21)