Skip to content

asriniket/algorithmic-trading

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithmic Trading Framework

A Python framework for backtesting and optimizing trading strategies with support for multiple assets, long/short positions, margin trading, and comprehensive performance analytics.

Features

  • Multi-Asset Support: Track and trade multiple assets simultaneously.
  • Backtesting Engine: Full-featured backtester with support for:
    • Long and short positions
    • Margin trading and margin calls
    • Stop loss and take profit orders
    • Commission and slippage modeling
  • Optimization: Parameter optimization using Optuna with persistent storage.
  • Performance Metrics: Sharpe ratio, Sortino ratio, Calmar ratio, profit factor, and more.
  • Visualization: Equity curve plotting and detailed trade logs.

Installation

pip install -r requirements.txt

Quick Start

from core import Backtester
from strategies import BuyAndHold
from utils import data_downloader

# Download data
data = data_downloader.download("SPY", start_date="2020-01-01", end_date="2023-12-31")

# Initialize strategy and backtester
strategy = BuyAndHold(tickers="SPY", data={"SPY": data})
backtester = Backtester(
    strategy=strategy,
    initial_cash=10000.0,
    commission=0.001,
    slippage=0.0005
)

# Run backtest
backtester.run_backtest()
backtester.print_performance_metrics()
backtester.plot_equity_curve()

Creating Custom Strategies

Extend the Strategy base class and implement the compute_signals() method:

from core import Strategy
from utils import Signal

class MyStrategy(Strategy):
    def compute_signals(self):
        # Your strategy logic here
        for timestamp in self.index:
            # Set signals and allocations
            self.signals["TICKER"].loc[timestamp, "Signal"] = Signal.LONG
            self.signals["TICKER"].loc[timestamp, "Allocation"] = 1.0

About

Python framework for backtesting and optimizing trading strategies with support for multiple assets, long/short positions, margin trading, and comprehensive performance analytics.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages