Skip to content

Commit

Permalink
Merge pull request #1 from dev-abuke/setup-environment
Browse files Browse the repository at this point in the history
Setup environment
  • Loading branch information
dev-abuke authored Jun 21, 2024
2 parents b17b967 + c411d22 commit 41938c0
Show file tree
Hide file tree
Showing 8 changed files with 116 additions and 3 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: CI/CD

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests
run: |
pytest
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ celerybeat.pid
.venv
env/
venv/
backtest/
ENV/
env.bak/
venv.bak/
Expand Down
1 change: 0 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

Expand Down
85 changes: 83 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,83 @@
# Scalable_Backtesting_Infrastructure_for_Crypto_Trading
Our startup, Mela, aims to simplify cryptocurrency trading for everyone and provide reliable investment sources while mitigating risks. We aim to design and build a reliable, large-scale trading data pipeline that can run various backtests and store useful artifacts in a robust data warehouse.
# Scalable Crypto Backtesting Infrastructure

## Overview

Mela, a startup, aims to simplify cryptocurrency trading for everyone and provide reliable investment sources while mitigating risks. This project is focused on designing and building a reliable, large-scale trading data pipeline that can run various backtests and store useful artifacts in a robust data warehouse.

## Key Objectives

- **Run Multiple Backtests**: Utilize various technical indicators and assets to perform backtests.
- **Design Database Schema**: Store backtest artifacts in a well-structured database.
- **Integrate MLOps Tools**: Use Apache Kafka, Airflow, MLflow, and CML.
- **Build Frontend**: Create an interface for users to run backtests.
- **Test Pipeline**: Ensure the pipeline's functionality and reliability.

## Skills and Knowledge

- **Skills**: Technical analysis, backtesting, trading, data pipeline building, structured streaming, workflow orchestration.
- **Knowledge**: Financial prediction, enterprise-grade data engineering using Apache and Databricks tools.

## Technical Skills

- **Python Programming**
- **SQL Programming**
- **Data & Analytics Engineering**
- **MLOps**
- **Software Development Frameworks**

## Setup Instructions

### Clone the Repository

```bash
git clone https://github.com/dev-abuke/Scalable_Backtesting_Infrastructure_for_Crypto_Trading.git
```
### Move to Working Directory

```bash
cd Scalable_Backtesting_Infrastructure_for_Crypto_Trading
```
## Set Up Local Development Environment

**Create a virtual environment for the project**

```bash
python -m venv env
```

```sh
source env/bin/activate # On Windows, use `env\Scripts\activate`
```

**Install necessary packages**

```bash
pip install -r requirements.txt
```
## Project Structure
```bash
├── data/
├── scripts/
│ └── download_data.py
├── tests/
├── .github/
│ └── workflows/
│ └── ci.yml
├── requirements.txt
└── README.md
```
## Contributors
- Abubeker Shamil

## License
This project is licensed under the MIT License - see the LICENSE file for details.

## Acknowledgments
**Instructors**
- Yabebal
- Nathnael
- Emtinan
- Rehmet

**References:**
backtrader, Freqtrade, Vectorbt, Kafka, Airflow, MLflow, CML
Empty file added data/.gitkeep
Empty file.
7 changes: 7 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
pandas
numpy
matplotlib
scikit-learn
backtrader
freqtrade
yfinance
Empty file added scripts/.gitkeep
Empty file.
Empty file added tests/.gitkeep
Empty file.

0 comments on commit 41938c0

Please sign in to comment.