Web Applications¶
Flask Web App¶
from algo_engine.apps.backtest import WebApp, start_app
from datetime import date
app = WebApp(
start_date=date(2024, 1, 2),
end_date=date(2024, 6, 30),
name="My Backtest",
address="0.0.0.0",
port=8080,
)
app.register("000001.SH") # creates CandleStick dashboard
app.serve(blocking=True)
# Or use the convenience function
start_app(start_date=date(2024, 1, 2), end_date=date(2024, 6, 30))
WebApp runs a Flask server with embedded Bokeh candlestick charts.
Each registered ticker gets its own dashboard page at /<ticker>.
Bokeh Dashboards¶
from algo_engine.apps import DocServer, DocTheme
from algo_engine.apps.backtest import CandleStick, StickTheme
from datetime import date
stick = CandleStick(
ticker="000001.SH",
start_date=date(2024, 1, 2),
end_date=date(2024, 6, 30),
interval=60.0, # bar interval in seconds
theme=StickTheme(style="cn_style"), # red-up/green-down
)
# Push market data to update the chart
stick.update(tick)
# Export to CSV
stick.to_csv("000001.SH_bars.csv")
StickThemesupports:ws_style— green up, red down (Western)cn_style— red up, green down (China)
Strategy Tester¶
from algo_engine.apps import Tester, StrategyTester
from datetime import date
tester = StrategyTester(
start_date=date(2024, 1, 2),
end_date=date(2024, 6, 30),
data_loader=my_loader,
strategy=my_strategy,
)
tester.register_ticker("000001.SH")
# Automatically creates SimMatch, TradeMetrics, and optional WebApp
tester.run()
Tester is the abstract base; StrategyTester adds event-engine
integration, strategy dispatch, and position management.
Optional Dependencies¶
pip install PyAlgoEngine[WebApps]
Installs: flask, waitress (production WSGI), bokeh.