Feature Reference

Everything AlgoDeploy can do. Every indicator, exit rule, risk check, and engine feature — with tier availability and code examples.

Indicators Comparators Exit Rules Position Sizers Risk Checks Data Sources Engine Live Trading Dashboard Reports Execution Safety
Included
Not in tier
FREE Student
$99 Starter
$249 Pro
$499 Quant

📈 Indicators

Technical indicators available in YAML conditions, the dashboard UI, and the Python Indicators class. All computed as pandas Series from OHLCV data.

Feature FREE $99 $249 $499
ATR — Average True Range Measures volatility using the true range over N bars. atr(14)
Beta Rolling beta against a benchmark return series over N bars. indicators.beta(benchmark_series, 60)
Bollinger Bands Upper, middle, and lower bands based on SMA ± N standard deviations. Use bollinger_upper, bollinger_mid, bollinger_lower in YAML. bollinger_upper(20) bollinger_lower(20,2.5)
EMA — Exponential Moving Average Exponentially weighted moving average of the close price. ema(21)
MACD Moving Average Convergence Divergence. Returns MACD line, signal line, and histogram. Use macd_line, macd_signal in YAML. macd(12,26,9) macd_line(12,26,9) macd_signal(12,26,9)
Percentage Change Close-to-close percentage change over N bars. pct_change(5)
Rolling High Highest close over the last N bars. high(52)
Rolling Low Lowest close over the last N bars. low(10)
RSI — Relative Strength Index Momentum oscillator measuring speed and magnitude of price changes. 0–100 scale. rsi(14)
SMA — Simple Moving Average Arithmetic mean of the close price over N bars. sma(40)
VWAP — Volume-Weighted Average Price Cumulative volume-weighted average price. No arguments. vwap()

Comparators & Condition Operators

Operators for building entry conditions in YAML configs and the dashboard. Python API users can also use the rule factory functions.

Feature FREE $99 $249 $499
>   Greater Than close > sma(50)
<   Less Than close < sma(40)
>=   Greater or Equal rsi(14) >= 30
<=   Less or Equal rsi(14) <= 70
==   Equal close == sma(20)
!=   Not Equal close != sma(20)
crosses_above Value crossed above threshold at the current bar. ema(9) crosses_above ema(21)
crosses_below Value crossed below threshold at the current bar. ema(9) crosses_below ema(21)
within X% of True when value is within X percent of another value. Great for proximity-to-support entries. close within 0.3% of low(10)
above() — Python Rule Factory Programmatic rule: latest indicator value must exceed threshold. above(lambda ind: ind.rsi(14), 30)
below() — Python Rule Factory Programmatic rule: latest indicator value must be below threshold. below(lambda ind: ind.sma(40), "close")
between() — Python Rule Factory Programmatic rule: value must fall within a range [low, high]. between(lambda ind: ind.rsi(14), 20, 40)
rising() — Python Rule Factory True when current value exceeds value N bars ago. rising(lambda ind: ind.ema(21), lookback=5)
CompositeRule — AND Composition Combine multiple rules; all must pass for a signal. CompositeRule([rule_a, rule_b, rule_c])
Custom Rule Subclass Implement evaluate(indicators) → (bool, str) for any custom logic. class MyRule(Rule): ...

🚪 Exit Rules

Available in YAML exit: block, dashboard Exit Rules section, and programmatically via on_bar().

Feature FREE $99 $249 $499
Hard Stop Loss Close entire position if loss exceeds a fixed percentage of entry. hard_stop: "2.75%"
Scale Out Sell a percentage of the position when a profit target is reached. Lock in partial gains. scale_out: target: "12%" percent: "60%"
Take Profit Close entire position at a fixed profit target. Set to 0% to disable. take_profit: "20%"
Trailing Stop Activates after a gain threshold, then trails the peak price by a configurable ratio of the run-up. trail_activation: "1.5%" trail_ratio: 0.38

💰 Position Sizers

Control how many shares to buy per trade. All implement the PositionSizer interface.

Feature FREE $99 $249 $499
Fixed Dollar Allocate a fixed dollar amount per position. Default: $10,000. FixedDollar(amount=10_000)
Fixed Fractional Risk a fixed percentage of equity per trade. Requires a stop price. Default: 1% risk, 25% max. FixedFractional(risk_pct=0.01, max_pct=0.25)
Kelly Criterion Optimal sizing based on historical win rate and average win/loss ratio. Fractional Kelly with safety cap. KellyCriterion(fraction=0.5, max_pct=0.20)
Volatility Scaled Size based on ATR to target a fixed dollar amount of daily volatility per position. VolatilityScaled(target_risk=500, max_pct=0.25)

🛡️ Risk Checks

Pre-trade checks that run before every buy order. Configurable via RiskConfig with presets: conservative(), moderate(), aggressive().

Feature FREE $99 $249 $499
Daily Loss Limit Rejects orders if daily P&L exceeds dollar or percentage threshold. max_daily_loss=2000, max_daily_loss_pct=0.02
Drawdown Circuit Breaker Halts all trading if cumulative drawdown breaches the limit. max_drawdown_pct=0.10
Max Open Positions Caps the number of simultaneous open positions. max_open_positions=10
Min Position Size Rejects orders below a minimum dollar value. min_position_dollar=500
Per-Trade Risk Limit Caps dollar risk per trade as a percentage of equity. Requires stop price. max_loss_per_trade_pct=0.02
Portfolio Exposure Limit Caps total portfolio exposure as a percentage of equity. max_portfolio_exposure_pct=0.80
Position Size Limit Caps individual position value as percentage of equity and/or dollar amount. max_position_pct=0.25, max_position_dollar=50000
Stop Loss Required Rejects all orders that don't include a stop price. Forces risk discipline. require_stop_loss=True

💾 Data Sources

All data sources return normalized OHLCV DataFrames. Implement the DataSource interface for custom sources.

Feature FREE $99 $249 $499
Alpaca Markets (Equities + Crypto) Historical bars from Alpaca API. Supports 1min, 5min, 15min, 30min, 1h, 1d. Auto-routes crypto symbols (BTC/USD, ETH/USD, etc.) to the crypto data feed. Free API key required. data: provider: alpaca # Equities: symbol: SPY # Crypto: symbol: BTC/USD
CSV Files Bring your own data. Files named {symbol}.csv in a directory. Configurable timestamp column. data: provider: csv path: ./data/
Custom DataSource Implement DataSource.load(symbol, start, end) for any API, database, or file format. class MySource(DataSource): ...
Yahoo Finance Free daily data via yfinance. No API key needed. Auto-adjusts for splits and dividends. data: provider: yfinance

⚙️ Engine Features

Core backtest engine capabilities, optimization tools, and analysis features.

Feature FREE $99 $249 $499
Commission Model Per-share commission deducted on every fill. commission_per_share: 0.005
Config-Driven Strategy (No Code) Build strategies entirely from YAML or the dashboard. No Python needed. algodeploy backtest my_strategy.yaml
Custom Regime Filter Abstract base for your own market regime classification logic. class MyRegime(RegimeFilter): ...
Event-Driven Backtest Bar-by-bar execution with on_bar(bar, ctx). Full state management, multi-leg entries, custom logic. def on_bar(self, bar, ctx): ctx.buy(shares, reason="entry")
Fill Modes Fill on same-bar close or next-bar open for more realistic execution. fill_on="next_open"
Long & Short Positions Signal -1 opens short. Full flip handling between long and short. ctx.short(shares, reason="breakdown")
Monte Carlo Simulation Reshuffle actual trade returns N times. Confidence intervals on returns, drawdown, and ruin probability. MonteCarloSimulation(results, n_simulations=1000)
Parameter Sweep Grid search over all parameter combinations. Data cached. Heatmap reports. ParameterSweep(engine, {"period": [20,40,60]})
Slippage Model Basis-point slippage applied adversely on every fill. slippage_bps: 5.0
SMA Regime Filter Price above/below SMA classifies BULL/BEAR. No external data needed. SMARegimeFilter(period=200)
Vectorized Backtest Fast signal-array engine. Return a Series of -1/0/1 from generate_signals(). def generate_signals(self, data): return (sma50 > sma200).astype(int)
VIX Regime Filter Classifies bars by VIX level: CALM / MODERATE / ELEVATED / PANIC. Configurable thresholds. VIXRegimeFilter(thresholds=[13,18,25,30])
Walk-Forward Optimization N windows of in-sample optimization + out-of-sample testing. Detects overfitting via degradation ratio. WalkForwardSweep(engine, params, n_windows=5)

Live Trading

Automated scan-size-check-execute loop with broker integration.

Feature FREE $99 $249 $499
Alpaca Broker Integration Paper + live trading. Market, limit, stop, stop-limit orders. Positions, quotes, historical bars, market clock.
Custom Broker Adapter Implement BrokerInterface for any broker. Standardized Account, Position, Order models.
Dry Run Mode Log orders without placing them. Validate your strategy before risking real capital. TraderRunner(dry_run=True)
EOD Position Close Optionally close all positions before market close. Configurable minutes-before-close. close_positions_at_eod=True, eod_close_minutes_before=15
Signal Scanner Evaluates rules against a symbol universe. Produces qualified candidates with pre-computed exit levels. Scanner(rules, universe=["AAPL","MSFT",...])
Timeframes 1-minute, 5-minute, 15-minute, 30-minute, 1-hour, and daily bars.
TraderRunner Main trading loop: scan → risk check → size → execute. State machine with callbacks. runner = TraderRunner(strategy, broker, risk_config) runner.start()

📱 Dashboard

Browser-based monitoring and control. WebSocket real-time updates. No code required for backtesting.

Feature FREE $99 $249 $499
Account SummaryCash, portfolio value, buying power at a glance.
Alert FeedReal-time risk alerts: warnings at 80% of limits, critical at breach.
Backtest from BrowserConfigure and run backtests directly from the dashboard. Preset strategies, full form, instant results.
Equity Curve ChartLive updating equity curve with time axis.
Open Positions TableSymbol, side, quantity, entry, current, P&L, and P&L %.
Risk Status PanelCurrent risk level (NORMAL/WARNING/CRITICAL/HALTED), drawdown %, exposure %.
Runner ControlsStop and resume the trading runner from the browser.
Trade HistoryRecent trades with symbol, side, quantity, entry/exit price, P&L, and status.
WebSocket Real-Time UpdatesPushes account, positions, risk, and runner state every 5 seconds.

📋 Reports & Exports

Interactive HTML reports, CSV data exports, and JSON summaries.

Feature FREE $99 $249 $499
CSV & JSON Export Trade log CSV, equity curve CSV, and full metrics summary JSON. results.save("./output/")
Equity Curve Chart Basic equity curve plot with return, Sharpe, and max drawdown subtitle. results.plot("chart.html")
Full Backtest Report 12-metric dashboard, equity chart, drawdown chart, per-regime breakdown, sortable trade log. Interactive HTML. results.to_html("report.html")
Monte Carlo Report Return distribution histogram, equity fan chart with percentile bands, ruin probability, 6 summary cards. mc_results.to_html("mc_report.html")
Parameter Sweep Report Best params summary, sortable results table, Sharpe/Return/Drawdown heatmaps for 2-param sweeps. sweep_results.to_html("sweep.html")
Walk-Forward Report IS vs OOS bar chart, degradation ratio, window detail table with per-window metrics. wf_results.to_html("walkforward.html")

🛡 Execution Safety

Audit logging, failure detection, health monitoring, and user notification for live trading.

Feature FREE $99 $249 $499
Immutable Audit Trail Every order attempt, execution, and failure logged with timestamps, order details, and outcome. Tamper-evident append-only log.
Error Classification Automatic categorization of failures: broker rejection, authentication expiry, network timeout, insufficient funds, and more. Clear root-cause attribution.
Failure Notifications Real-time dashboard alerts on any execution failure. Ensures you know immediately when an order doesn't go through.
Broker Health Checks Proactive validation of broker connection, authentication tokens, and account status before each trading session.
Live Trading Acceptance Gate In-product risk acknowledgment required before enabling live trading. Users confirm they understand execution risks, broker dependencies, and their sole responsibility for monitoring.
Webhook Failure Alerts Send execution failure alerts to external webhooks for integration with Slack, email, PagerDuty, or custom monitoring.
Telegram Notifications Native Telegram bot integration. Send critical alerts (order failures, broker errors, risk halts) and warnings to a Telegram chat with Markdown formatting. notifications: telegram: bot_token: "..." chat_id: "..."
Discord Notifications Native Discord webhook integration with embed formatting. Color-coded severity (red for critical, amber for warning). Drop in a channel webhook URL and you're done. notifications: discord: webhook_url: "..."

Ready to build?

All tiers include the full source code. Start backtesting in minutes.

Get AlgoDeploy — From $99