# fastquant

A one-call wrapper over Backtrader, dormant since 2023 and broken on PyPI.

*https://stockmarketstack.com/tools/fastquant · Backtesting Frameworks & Algo Trading Libraries*

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | Lorenzo Ampil |
| Category | Backtesting Frameworks & Algo Trading Libraries |
| Job | backtesting |
| Website | https://github.com/enzoampil/fastquant |
| Pricing model | open-source |
| Free tier | true |
| Open source | true |
| Licence | MIT |
| Self-hosted | true |
| Tested hands-on | false |
| Last updated | 2026-09-13 |

### Coverage

| Field | Value |
| --- | --- |
| Asset classes | stocks, etf, crypto |
| Markets | us, asia, global |
| Works outside the US | true |
| Data latency | eod |
| Platforms | library |
| AI features | none |

### Interfaces

| Field | Value |
| --- | --- |
| API | false |
| Webhooks | true |
| Scripting | Python |
| Python | true |
| Spreadsheet add-in | false |
| MCP server | false |
| Export | csv |

### Capabilities

Yes: backtesting, alerts

No: charting, screening, scanning, automation, live_trading, paper_trading, portfolio_tracking, broker_import, tax_reporting, news, options_analysis

*Verified: pricing 2026-09-13; capabilities 2026-09-13; coverage 2026-09-13.*

## What it is

fastquant is a thin Python wrapper over Backtrader whose pitch is a backtest in three lines:
pull a DataFrame, call `backtest("smac", df, fast_period=15, slow_period=40)`, read the final
portfolio value. Nine strategy aliases ship with it — `rsi`, `smac`, `emac`, `macd`, `bbands`,
`buynhold`, `sentiment`, `custom` and `ternary` — plus a `multi` mode that ORs several together.
Pass a `range` instead of a number for any parameter and it grid-searches the combinations and
returns them as a sorted DataFrame.

Everything underneath is Backtrader: the event loop, the sizers, the analyzers and the
matplotlib plot. What fastquant adds is the defaults, and the defaults are what to check.

## Data & coverage

`get_stock_data` calls yfinance for daily Yahoo bars and falls back to the Philippine Stock
Exchange through the phisix API; `get_crypto_data` calls ccxt, Binance by default, at 1w, 1d, 1h
or 1m. It ships no data of its own — it wraps other people's free endpoints, which is where the
rot shows first.

## Integrations

Backtrader, pandas in and out, ccxt for crypto. `backtest(channel="slack")` posts each signal
to a Slack incoming webhook read from `SLACK_URL`, and an SMTP email helper does the same. The
`custom` strategy takes a column of model output, which is how the examples wire in Prophet
forecasts.

## Limitations

- Dormant. Last commit 15 September 2023; last release January 2023; 77 open issues.
- The PyPI build does not import on pandas 2 or later. The fix has sat on master, unreleased,
  since June 2023.
- `get_yahoo_data` renames an `Adj Close` column and expects flat columns. Current yfinance
  returns neither: `download()` now defaults to `auto_adjust=True` and a MultiIndex.
- The licence is ambiguous. The `LICENSE` file shipped in both the repo and the wheel is MIT,
  but `setup.py`'s classifier is GPLv3, so that is what PyPI advertises. Nobody is left to
  resolve it, which matters if you plan to reuse the code.
- The primary phisix endpoint, `1.phisix-api.appspot.com`, returned 503 on 13 September 2026.
  The code's documented fallback to `phisix-api2.appspot.com` still answers, current and dated
  quotes alike, so the PSE path survives. The sentiment helper that scrapes a
  `businesstimes.com.sg` search URL does not: that URL now 404s.
- Cheat-on-close is forced on for every run. Orders fill at the close of the bar that generated
  the signal, which the source comment itself calls "technically impossible". Commission
  defaults to zero.
- Daily bars, one instrument, no live or paper trading, no intrabar fills.

## Alternatives

[Backtrader](https://stockmarketstack.com/tools/backtrader) itself, if you want the engine without the wrapper. [Backtesting.py](https://stockmarketstack.com/tools/backtesting-py) for the same
"few lines" ergonomics on a maintained codebase, [VectorBT](https://stockmarketstack.com/tools/vectorbt) for vectorised parameter sweeps,
[NautilusTrader](https://stockmarketstack.com/tools/nautilus-trader) if the goal resembles production.

## FAQ

### Is fastquant still maintained?

No. The last commit to master landed on 15 September 2023 and the last release, 0.1.8.1, went to PyPI on 4 January 2023. The repository is not archived — it has 77 open issues and 5 open pull requests, some of them years old and unanswered — but nothing has moved in three years.

### Does pip install fastquant still work?

The install succeeds; the import does not. The January 2023 wheel still calls `from pandas.io.json import json_normalize`, which pandas removed in 2.0, so `import fastquant` raises ImportError on any current pandas. The fix was committed to master in June 2023 and never released, so installing from the master branch is the only route.

### What is fastquant a wrapper over?

Backtrader. Every backtest builds a Backtrader Cerebro around a pandas feed, and the metrics come from Backtrader's Returns, SharpeRatio, DrawDown and TradeAnalyzer analyzers. It inherits Backtrader's engine and also Backtrader's maintenance status — that project's own last release, 1.9.78.123, is from April 2023.

### Can fastquant place live orders?

No. It exposes none of Backtrader's live broker integrations — backtest() wires a pandas DataFrame to the simulated broker and nothing else. There is a Slack and email helper that posts buy and sell signals, which is as close as it gets.

## Also worth comparing

- [Backtesting.py](https://stockmarketstack.com/tools/backtesting-py.md) — A single-instrument Python backtester — one OHLC series, one strategy, no live trading.
- [Backtrader](https://stockmarketstack.com/tools/backtrader.md) — An event-driven Python backtester with 122 indicators, frozen since April 2023.
- [bt](https://stockmarketstack.com/tools/bt.md) — Python backtesting for allocation and rebalancing rules, not entries and exits.
- [QSTrader](https://stockmarketstack.com/tools/qstrader.md) — An institutional-shaped Python backtester whose last commit to master was June 2024.
- [Zipline-reloaded](https://stockmarketstack.com/tools/zipline-reloaded.md) — The maintained fork of Quantopian's Zipline. Bring your own data — it ships almost none.
- [AmiBroker](https://stockmarketstack.com/tools/amibroker.md) — Windows portfolio backtester scripted in AFL, sold as a perpetual licence.
