Skip to content

joshthecoder-hub/Yahoo-Finance-Trader-Sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Systematic Trading Simulator & Backtester

A modular Python backtesting framework for simulating and analyzing systematic equity trading strategies.

Features

  • Time-series backtesting engine
  • Built-in strategies: Moving Average (SMA/EMA), RSI, Rate of Change
  • Portfolio management with P&L tracking
  • Performance analytics (Sharpe, drawdown, returns)
  • Yahoo Finance integration via yfinance

Installation

pip install -r requirements.txt

Quick Start

# Run example backtests
python examples/simple_ma_backtest.py
python examples/ema_backtest.py
python examples/momentum_backtest.py

Usage

from src.engine.backtest import BacktestEngine
from src.strategies.moving_average import MovingAverageCrossover
from src.analysis.metrics import PerformanceMetrics

# Create engine and strategy
engine = BacktestEngine(initial_capital=100000, commission=0.001)
strategy = MovingAverageCrossover(symbols=["AAPL"], fast_period=50, slow_period=200)
engine.set_strategy(strategy)

# Run and analyze
equity_curve = engine.run()
metrics = PerformanceMetrics.calculate_all_metrics(equity_curve, engine.portfolio.get_trade_history())

Testing

Run the test suite to verify functionality:

# Run all tests
pytest tests/ -v

# Run specific test categories
pytest tests/test_integration.py -v      # End-to-end integration tests
pytest tests/test_data_fetcher.py -v      # Data fetching tests
pytest tests/test_portfolio.py -v         # Portfolio management tests
pytest tests/test_backtest_engine.py -v   # Backtesting engine tests

# Run example scripts
python examples/simple_ma_backtest.py
python examples/ema_backtest.py
python examples/momentum_backtest.py

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages