I recently started learning about programming in R due to its backtesting and machine learning abilities and was wondering if anyone on this forum would be able to offer a little bit of help. I am simply attempting to convert 1 minute data from a csv to 5 minute data but am getting an error.
Code is as follows:
Code: Select all
#import the data
data1 <- read.csv("E:/MarketData/GBPUSD1.csv", header = FALSE)
colnames(data1) <- c("Date", "Time", "Open", "High", "Low", "Close", "Volume")
x1 <- nrow(data)
#convert this data to n timeframe
n=5
#define lookback
lb=300
#define a new data frame
data2 <-data.frame(matrix(0, ncol=7, nrow=300))
colnames(data2) <- c("Date", "Time", "Open", "High", "Low", "Close", "Return")
# run the sequence to convert to a new timeframe
for ( k in (1:lb))
{
data2[k,1] <- as.character(data1[x1-lb*n+n*(k-1),1])
data2[k,2] <- as.character(data1[x1-lb*n+n*(k-1),2])
data2[k,3] <- data1[x1-lb*n+n*(k-1),3]
data2[k,6] <- data1[x1-lb*n+n*(k-1),6]
data2[k,4] <- max(data1[(x1-lb*n+n*(k-1)):(x1-lb*n+k*n-1), 4:5]) <----------------------------- ERROR
data2[k,5] <- min(data1[(x1-lb*n+n*(k-1)):(x1-lb*n+k*n-1), 4:5]) <------------------------------ ERROR
}
for ( k in (2:lb))
{
data2[k,7] <- (data2[k,6]-data2[k-1,6])/data2[k-1,6]
}
Return <- as.data.frame(embed(data2[ ,7], dimension=5))
Thank you for any suggestions!