Python API Reference
Python bindings are provided via gb-python (PyO3).
Quick Helper
import glowback
result = glowback.run_buy_and_hold(
symbols=["AAPL", "MSFT"],
start_date="2024-01-01T00:00:00Z",
end_date="2024-12-31T23:59:59Z",
initial_capital=100000.0
)
Classes
BacktestEngine (alias: PyBacktestEngine)
Used to configure and run backtests from Python.
import glowback
# Initialize engine
engine = glowback.BacktestEngine(
symbols=["AAPL", "MSFT"],
start_date="2024-01-01T00:00:00Z",
end_date="2024-12-31T23:59:59Z",
initial_capital=100000.0
)
# Run a buy-and-hold backtest
result = engine.run_buy_and_hold()
# Access metrics
print(result.metrics_summary["sharpe_ratio"])
# Access equity curve
for point in result.equity_curve[:5]:
print(f"{point['timestamp']}: {point['value']}")
BacktestResult (alias: PyBacktestResult)
Contains the results of a backtest run.
metrics_summary: Dictionary of performance metrics. Common keys include:initial_capital,final_valuetotal_return,annualized_return,volatilitysharpe_ratio,sortino_ratio,calmar_ratiomax_drawdown,max_drawdown_duration_daysvar_95,cvar_95skewness,kurtosistotal_trades,win_rate,profit_factoraverage_win,average_loss,largest_win,largest_losstotal_commissionsequity_curve: List of daily snapshots (value,cash,positions,total_pnl,returns,daily_return,drawdown).
Notebook helpers (requires pandas/matplotlib):
curve = result.to_dataframe(index="timestamp")
metrics = result.metrics_dataframe()
summary = result.summary(plot=True, index="timestamp")
ax = result.plot_equity()
DataManager (alias: PyDataManager)
Used for data ingestion and management.
manager = glowback.DataManager()
manager.add_sample_provider()