Start without an account
The sma_trend_demo targets 95% SPY exposure above its completed-session 200-day average, cash below it, and holds at equality. Run the fully offline synthetic wiring demo from a fresh checkout:
uv sync --frozen --extra paper --group dev
uv run python examples/sma_trend_demo/run_fixture_backtest.py
The output demonstrates that the strategy returns a target which the backtest adapter can execute at the next session open. It is not market data, a published study, or a return expectation.
Use your Alpaca paper account
Create an Alpaca paper account and use its paper key pair with the fixed paper API origin https://paper-api.alpaca.markets. See Alpaca paper trading and API authentication. This application has no live-account mode.
Create a dedicated account for this single strategy. Keep it separate from the V13.5 options-wheel account. Put the paper key, secret, and account ID in separate files outside the checkout:
~/.config/signalquarry/equity-paper/api_key
~/.config/signalquarry/equity-paper/api_secret
~/.config/signalquarry/equity-paper/account_id
Set directory permissions to 700 and file permissions to 600. Point SIGNALQUARRY_EQUITY_SECRETS_DIR at the directory if you selected another location. Copy configs/paper/sma_trend_demo.yaml to a private config file, review the strategy and state path, then set dedicated_account_confirmed: true and paper_enabled: true. Leave the example checked into the repository disabled.
Validate locally without credentials or network access:
paper-equity validate --config /private/path/sma_trend_demo.yaml
The one-shot runner checks Alpaca’s market clock and accepts only a run for that same upcoming session before its open. It blocks if the host clock differs from Alpaca’s clock by more than five minutes. It then reconciles the account and open orders before it evaluates or submits:
paper-equity run-once \
--config /private/path/sma_trend_demo.yaml \
--decision-session 2026-09-23
Pick a real upcoming US market session. An order submitted later can fill at the current eligible paper-market price; compare its timestamp and fill with the backtest before interpreting differences. iex uses the IEX feed; sip requests consolidated data and may require subscription entitlement. Use the same feed for a parity comparison. See Alpaca stock bars.
The runner retains decision/order identities in SQLite and is intentionally a one-shot command; no schedule is created by the repository. Keep the state volume persistent. Check account activity after use and treat rejected, partial, delayed, or unknown order outcomes as execution results requiring reconciliation.
Optional performance page
Publishing a performance snapshot is separate from executing a strategy. Follow the sanitized publication guide to use the GET-only exporter. Cloudflare is optional and is not required for this local paper runner or for backtests. Never publish credentials, account IDs, order IDs, or raw broker payloads.