https://github.com/Chrisdeleon91/Algorithmic-Trading-Project-1
- run hft_project.ipynb to open jupyter notebook
- run streamline_hft.py (using python, must pip install streamlit) in terminal, type in command " streamlit run streamline_HFT.py" in terminal to view
Algorithmic trading that uses powerful computers and complex software to execute trades at very high speeds. Firms typically trade large volumes of securities, such as stocks, bonds, and currencies and they generate profits by exploiting tiny price discrepancies in the market. In this project, we propose to develop an algorithmic trading system. Our goal is to create a profitable system that can trade cryptocurrencies at high speeds.
-
System Design & Architecture: To be led by Christopher, outlining the main components of the trading system and how they will interact.
-
Algorithm Development: Chris and Dino will collaborate to design, test and optimize our high-frequency trading algorithms using Backtrader.
-
Interface Design: Mike will take the helm in designing a sleek, intuitive, and interactive interface using Streamlit, ensuring the system is user-friendly and efficient.
-
Data Management: Data sourcing, formatting and data management.
-
Integration & Testing: The team will collaborate in this final phase to integrate all system components, followed by rigorous testing to ensure optimal performance.
Our research questions are as follows:
- Which API/library to use?
- Does Zipline work, what are alternatives?
- How do we actually create an algorithm that will be profitable?
- What source should we use?
- What financial instruments will the algorithm trade?
- How will the algorithm enter and exit trades?
- What specific trading strategies will the HFT system employ?
- How can these strategies be optimized?
- What are the risks of HFT trading?
We will use the following datasets in our project:
- Cryptocurrencies from S&P500
- Data cleaning and formatting
- Algorithm development
- Visualization
- Integration
- Backtesting
- Paper trading and optimization
Our project will be divided into the following tasks:
Data Cleaning and Formatting
We will use Pandas to clean and format the cryptocurrency dataset. This will involve removing any errors in the data, converting the data to the correct format and creating any new columns that are needed.
Algorithm Development
We will use a library/API, such as Zipline or PyFinance, to implement our HFT algorithm. We will need to develop a trading strategy that can identify and exploit profitable trading opportunities in the cryptocurrency market.
Visualization
We will use PyViz, GeoView, and Hvplot to create six to eight visualizations of our data. These visualizations will help us to understand the data and to identify any potential trading opportunities.
Integration
We will use Streamlit to integrate the six to eight visualizations required. Streamlit will allow us to create a web-based dashboard that will make it easy to monitor the performance of our trading system.
Backtesting
We will backtest our trading system using historical data. This will allow us to evaluate the performance of our system in different market conditions.
Paper Trading
Once we are satisfied with the performance of our system in backtesting, we will deploy it to a paper trading account. This will allow us to test our system in real-world market conditions without risking any real money.
Optimization
We will monitor the performance of our trading system in paper trading and make adjustments to our algorithm as needed. Our goal is to optimize our system to generate the highest possible returns.
We believe that this project has the potential to develop a profitable algorithmic trading system for cryptocurrencies. We are committed to working hard to complete this project on time and within budget. We look forward to sharing our results with the class and the instructional team.