This repository accompanies a research workflow focused on backtesting model-driven trading decisions.
The codebase is intended for offline backtesting and analysis. It is not a production trading system and does not include proprietary feeds or credentials.
For all data scrapers, please provide and clearly indicate your own data sources/endpoints. Any datasets used in experiments should be cited or documented by the researcher.
For a more detailed Node.js implementation and integration of news sensitivity, please contact ali86144@gmail.com for further discussion (privacy reasons).
pip install -r python/requirements.txtPlace CSV files under python/data/ohlcv/ using this naming convention:
SYMBOL_INTERVAL.csv
Example:
BTCUSDT_15m.csv
Accepted columns include:
isoorts(timestamp)open,high,low,close,volumetrades(optional)
Create a .env.backtest file in the repo root with at least one API key:
OPENAI_API_KEY=your_key_here
# or GEMINI_API_KEY / DEEPSEEK_API_KEY / QWEN_API_KEY
From the repo root:
PYTHONPATH=python python -m app.backtest_models --symbol BTCUSDT --interval 15m --lookback-days 365Multiple symbols:
PYTHONPATH=python python -m app.backtest_models --symbols BTCUSDT,ETHUSDT --interval 15m --lookback-days 365If you want to auto-fetch OHLCV, set your own ticker endpoint in python/app/backtest_models.py
(Ticker_API) and run with --fetch.
Results are saved to results/backtests/<timestamp>/, including:
summary_all.jsonmodel_comparison.csvmodel_comparison.mdequity_compare.png(or per-symbol variants)
The following figures are included as representative outputs from sample_result/backtest/.


