Backtest template

PYTHON
import pandas as pd
import yfinance as yf
from backtesting import Backtest, Strategy

TICKER = "QQQ"
START = "2000-01-01"
END = "2026-06-05"
INTERVAL = "1d"

CASH = 100_000
COMMISSION = 0
MARGIN = 1.0
GRAPH_FILENAME = "backtest_graph.html"


def get_data():
    df = yf.download(
        TICKER,
        start=START,
        end=END,
        interval=INTERVAL,
        auto_adjust=True,
        progress=False,
    )

    if isinstance(df.columns, pd.MultiIndex):
        df.columns = df.columns.get_level_values(0)

    df = df[df["Volume"] > 0].dropna()

    if df.empty:
        raise ValueError("Aucune donnee telechargee.")

    return df


class Strategy(Strategy):
    def init(self):
        pass

    def next(self):
        pass


if __name__ == "__main__":
    data = get_data()

    bt = Backtest(
        data,
        Strategy,
        cash=CASH,
        commission=COMMISSION,
        margin=MARGIN,
        hedging=True,
        exclusive_orders=False,
        trade_on_close=True,
        finalize_trades=True,
    )

    stats = bt.run()
    print(stats)

    bt.plot(filename=GRAPH_FILENAME, open_browser=True)
    print(f"\nGraphique sauvegarde dans : {GRAPH_FILENAME}")

requirements.txt

PYTHON
yfinance
pandas
numpy
backtesting