A venture in crypto-currency trading
Datathon – Enthusiast Team
Datathon – Enthusiast Team
TOOL USED R MICROSOFT AZURE MICROSOFT EXCEL SUMMARY The Dataset is time series data of crypto currency consisting of of 1869 observation and 21 features(each feature showing different crypto currency). Frequency of the observations is 5 min showing from date 18/01/18 to 24/01/18. BUSINESS UNDERSTANDING As the data belongs to the crypto exchange. Intraday short-term […]
Our team Hack Alternative has been assigned to work upon making predictions on Cryptocurrency.
We were provided data on cryptocurrency in a CSV file named Price_Data .
We took data from the same from 18th Jan 2018 to 24 Jan 2018 to predict the next day’s cryptocurrency.
We used 20 columns of cryptocurrencies taking 5 days each.
Then we imputed missing valuesin the data using imputeTS package.
Used Neural Network Model to forecast the future cryptocurrency value.
Lastly we used looping construct to generate 100 CSV files consisting of 20 cryptocurrencies with 5 days each.
Team Toolset: R-Tool and MS-Excel. Business Understanding Over the years, the world has been emerging towards digital asset and this gave birth to new currency know as cryptocurrency. Cryptocurrencies are a type of digital currencies, alternative currencies and virtual currencies. The first decentralized cryptocurrency was Bitcoin created in 2009. Altcoins was a new currency, which was derived […]
List of required packages
“`{r}
library(data.table) #for fread function
library(dplyr) #for pipeline function
library(plyr) #for join function
library(tseries) #for ts function
library(forecast) #for forecast function
library(caret) #for neuralnetwork prediction
library(ggplot2) #for plots
library(mice) #for imputating NA/missing values
library(zoo) #for imputing
“`
###Working with Dataset[price_data.csv]
“`{r}
url <- "matrix_one_file/price_data.csv"
crypto <- fread(url, header = TRUE)
crypto_main <- crypto[,c(1:17,20,25,34,37)]
View(crypto_main)
crypto_loop <- crypto_main[,2:21]
name <- names(crypto_loop)
#Automation for Prediction
for( i in name){
crypto_work % select(time,i)
names(crypto_work) <- c("Time", "Price")
crypto_work$Time <- as.POSIXct(crypto_work$Time, format = "%Y-%m-%d %H:%M:%S")
d<- colnames(crypto_work)[2]
# to get the data for time series
crypto_work1 % filter(Time = “2018-01-18 00:00:00”)
Time <- seq(ISOdatetime(2018,1,18,00,0,0), ISOdatetime(2018, 1, 24,11,55,0), by= (60*5))
df <- data.frame(Time)
crypto_temp <- join(df, crypto_work1, by = "Time")
crypto_temp$Price <- na.approx(crypto_temp$Price)
#to get the original value from 25th Jan to 29th Jan
crypto_orignal_value % filter(Time = “2018-01-25 00:00:00”)
Time <- seq(ISOdatetime(2018,1,25,00,0,0), ISOdatetime(2018, 1, 29,11,55,0), by= (60*5))
df1 <- data.frame(Time)
crypto_temp1 <- join(df1, crypto_orignal_value ,by = "Time")
crypto_temp1$Price <- na.approx(crypto_temp1$Price)
#initializing variables
df_new <- data.frame()
new_df <- data.frame()
value <- c()
start <- 1
for(j in 1:5){
for(k in 1:288){
crypto_price <- ts(crypto_temp$Price, start = c(1,1), frequency = 288)
fit1 <- nnetar(crypto_price)
a <- forecast(fit1, h=1)
value <- append(value,a$mean)
df_new<- data.frame(crypto_temp1$Time[start], a$mean)
names(df_new) <- c("Time","Price")
crypto_temp <- rbind(crypto_temp, df_new)
start <- start+1
}
output_file <- crypto_temp[(1873+(start-k)):nrow(crypto_temp),]
rownames(output_file) <- c()
name <- paste(i,d,"(",j,")",".csv",sep = "")
write.csv(output_file,name)
}
}
“`
Given the cryptocurrencies’ data, we aim to forecast the future cryptocurrencies’ prices so as to execute profitable trades. We show that the cryptocurrencies’ prices also exhibit desirable properties such as stationarity and mixing. Some classical time series prediction models that exploit this behavior, such as “Arima” models produce poor predictions and also lack good probabilistic interpretations. We have introduced a theoretical framework in the 1st place and for predicting and trading prices of the cryptocurrencies for future and based on that we have designed our model which is based on “Neural Network” model which can give better prediction values as compared to the other models.
Prediction of cryptocurrency prices (5 min period) with AR, ARIMA and Neural Network models using R and Python.
The Folder where you can locate the data & the code (using Jupyter). Crypto Crypto_Train https://notebooks.azure.com/febelaz/libraries/akademi4en-dataton
Bitcoins are cryptocurrency systems, that enable its users to exchange payments without passing through a central authority (Eg. Reserve Bank of India, Federal Bank etc). They were developed in 2008, using the Blockchain Technology. In the present article, methods to create prediction models have been implemented. The model considers a sample data of 3 months spaced over 5 minutes for each day. The Training data and Testing data are developed on that dataset for twenty bitcoins; viz: Bitcoin, Bitcoin Cash, Bitcoin Gold, Cardeno, Dash, Dogecoin, Eos, Ethereum, Ethereum Class, Iota, Lisk, Litrcoin, Monero, NEMcoin, Neo, Ripple, Stellar, Tether, Tron, Zcash.
The prediction models used are ARIMA, Exponential Smoothing and Neural Networks on R. The models calculate the values for the next time instant, i.e. next five minutes and the code developed goes on continuing it (predicting next 5-minute price) for all 288 time-points in a day.
Team members: Ana Popova, @anie Izabella Taskova, @ izabellataskova Kamelia Kosekova, @kameliak Kameliya Lokmadzhieva, @kameliyalokmadzhieva Nikolay Bojurin, @nikolay Mentors: @boryana @alex-efremov @pepe Team name: DAB PANDA Team logo: NB!!!! OUR NOTEBOOKS ARE AVAILABLE HERE: DAB PANDA Rmds Data Understanding and Preparation You may see our code with results and brief comments if you […]
Data preparation The first step in our analysis was to see if there are any observations missing. Some dates were not even present in the provided file, so we decided to add them and consider the price for that certain day, hour or minute as NA. The next step was to differentiate the data. At […]