Sprint 1 - RobertoLF/EC601Project GitHub Wiki

Product Mission

To generate positive investment returns by automating the trading of various different cryptocurrencies.

Comprehensive Literature Review

Short Term bitcoin market prediction via machine learning

Introduction


  • Analyzes the predictability of bitcoin market for 1-min, 5-min, 15-min, and 1-hr timeframes. Various machine learning models were tested, but ultimately gradient boosting classifiers and recurrent neural networks were best at predicting prices.
  • While able to achieve positive returns before transaction costs, when factoring in transaction costs due to the short term trading the net return was negative.
  • Machine learning has been done more in equities and bond markets, but not so much crypto.
  • Historically, most predictive studies only focused on technical features such as historic prices.
  • Longer time horizons tend to be more accurate.
  • Bitcoin market has become increasingly more efficient over the years.

Methodology


  • Main categories for return-predictive features for this study
  • Technical: bitcoin returns
  • Blockchain-based:# of bitcoin transactions
  • sentiment/interest-based: # of related tweets, twitter sentiment with google NLP.
  • Asset-based: World returns, SP500, VIX, Gold, EUR/USD
  • Types of models that were tested: Logistic Regression (LR), Feedforward neural network (FNN), Long short-term memory (LSTM), Gated recurrent Unit (GRU), Random Forest, Gradient Boosting Classifier, Ensemble Model (combination of all)
  • Data pulled from Bloomberg, Twitter, and Blockchain.com
  • Python 3.7 used with pandas and numpy

Results


  • All models provided a predictive accuracy between 50% and 57%, with LSTM and GBC being the most accurate.
  • Accuracy of only slightly above 50% means bitcoin predictability is somewhat limited.
  • Most important feature is bitcoin return data (technical), especially at shorter time frames. So for longer time frames transaction volume and twitter information is more important.
  • While the >50% accuracy produced positive trading returns (before transaction costs), the transaction cost compounds quickly due to the high frequency of trades. Resulting in negative returns.

Questions/Takeaway:


  • How will our project differ from this study?
  • Maybe a focus on longer term trading (days, weeks) vs (minutes, hours) will minimize transaction costs.
  • Bitcoin is considered an efficient market due to its popularity, our goal is to focus specifically on inefficient markets (i.e less popular cryptocurrencies)
  • What other sentiment/internet sources can be used to gauge interest in an asset? Reddit? Stocktwits?
  • If the barrier of transaction costs can not be overcome, can machine learning be applied to other assets? Stocks? Bonds?

A simple but powerful measure of market efficiency

Introduction


  • Derives a measure to quantify the level of market efficiency (AMIM) and provides an analysis of its theoretical properties.
  • AMIM facilitates a simple comparison of the efficiency levels for different assets over different time periods.
  • AMIM shows significant time variation, and reflects major economic events, such as the financial crisis of 2008–09.

Methodology


  • The first step is to estimate the auto-correlation coefficients in the return time series through standard regression methods, and then standardize them.
  • The second steps is to derive a raw measure of the market inefficiency magnitude (MIM), using the previously estimated values.
  • The third step derives the confidence interval under the null hypothesis of efficient markets for MIM.
  • In the final step, MIM is adjusted with its confidence interval to derive our measure AMIM.

Results


  • AMIM reflects major economic events in the US and Japanese economies. These empirical results show that market efficiency is not constant over time, assets, or regions, which agrees with the Adaptive Market Hypothesis.

Questions


  • What are the least efficient markets in cryptocurrency?
  • Will machine learning have a higher degree of success for inefficient markets?

User Stories

  • As an investor, I want an automated trading platform so that I can make passive income.
  • As an investor, I want to minimize my risk while trading cryptocurrency so that I can avoid losses.
  • As an investor, I want to analyze the market efficiency of any crypto of my choosing so that I can make better informed trading decisions.
  • As an investor, I want the ability to change the level of risk in my investments so that I can adjust my trading strategy.

MVP

Sort 5 different cryptocurrencies by their market efficiency, choose the single most inefficient market, and apply machine learning to that market to predict changes in price and execute trades accordingly.

Technologies to evaluate and reason for choosing them

  • Blockchain.com - Crypto trading platform.
  • Binance API - API for crypto trading and retrieval of basic crypto indicators.
  • CryptoCompare - API that provides a user-friendly way to obtain powerful technical cryptocurrency historical data.
  • Reddit API
  • Twitter API

Setup of Development Environment

  • Language: Python 3.7 - For all the heavy lifting.
  • Version Control: Github
  • IDE: Spyder 4.2.1

Sprint 2 Goals

  • Have an understanding of the math used to calculate AMIM.
  • Begin writing a program that can calculate AMIM.