Running on Alpaca paper
Income engineering,
not market guessing.
Stable Income Generator turns a technology conviction into bounded, auditable options decisions—backtested over 644 sessions, containerized by role, and operating against a real Alpaca paper account.
Evidence, not theatre
Three proof layers.
Never blended.
A serious trading system should make it easy to see where every claim comes from. We separate historical research, deterministic system verification, and broker-reported paper behavior.
Frozen and reproducible
V13.5 was selected by a predeclared net-return rule from five QQQ wheel variants. The result is bound to immutable input and output hashes and independently reproduced byte for byte.
Inspect run manifest ↗Executing the lifecycle
The paper scheduler wakes every 60 seconds. A protected release pipeline publishes immutable Linux images from main and deploys to an always-on Vultr host only after approval, preflight, and arm verification.
Near-live broker evidence
Running since Tuesday, September 1, 2026. Cloudflare Durable Object alarms trigger broker snapshots every 30 minutes on weekdays, 9:00 AM–5:00 PM ET. Equity, P&L history, and filled V13.5 orders come from Alpaca paper—not a backtest.
Open paper account performance →From merge to always-on runtime
Automatic publishing.
Controlled deployment.
Execution-relevant changes pass credential-free tests before a merge to main publishes an immutable Linux image. Deployment is queued automatically, then waits for operator approval and broker safety gates.
- 01 · VERIFYPull requestNative ARM tests and a Linux AMD64 image build run without paper credentials.
- 02 · PUBLISHGHCR digestA merge to main automatically publishes the exact commit with provenance and an SBOM.
- 03 · APPROVEProtected environmentThe main-only Vultr deployment waits for an operator review; deployments cannot overlap.
- 04 · GATEBroker preflightThe server verifies the paper account, newest state, configuration-bound arm, and exact image digest.
- 05 · RUNVultr containerOne hardened scheduler uses durable host state and continues while the laptop is offline.
GitHub exposes the protected forced-command deployment key and an ephemeral registry token only to an approved job. Alpaca paper credentials, the hash-chained journal, and the arm token stay on Vultr. During migration, the absent enable file makes delivery stage-only; after cutover, a model or configuration change cannot deploy through a stale arm.
From broker to browser
Fresh evidence.
A visible update path.
A persistent Cloudflare Durable Object alarm starts each scheduled refresh—no open browser or running laptop required. GitHub Actions reads the paper account, then publishes the latest evidence to this website.
- 01 · SCHEDULECloudflare alarmStored timer targets :00 and :30, Monday–Friday, 9 AM–5 PM Eastern.
- 02 · TRIGGERGitHub ActionsAuthenticated dispatch starts the Pages workflow. A GitHub schedule remains as fallback.
- 03 · READAlpaca paperRead-only account, daily P&L history, and the ten most recent system fills.
- 04 · PUBLISHGitHub PagesSanitized, timestamped JSON ships with the dashboard. API credentials stay private.
- 05 · DISPLAYYour dashboardThe browser checks the published snapshot every 60 seconds and shows its age.
Scheduled snapshots, not a tick-by-tick stream. Build and deployment time adds latency. Eastern daylight saving time is handled automatically; the weekday schedule does not exclude market holidays. Data over 90 minutes old is marked stale during the refresh window, or off hours outside it.
The paper trading loop operates separately. This publishing pipeline reads results; it never starts trading, submits orders, or cancels them. Real-market paper evidence is observable performance—not a promise of future returns.
V13.5 benchmark study
A steadier path—not a beta race.
On the same frozen dates, SPY and QQQ earned more total return. V13.5’s case is different: premium income with a materially shallower booked-equity drawdown and a stronger downside-adjusted Sortino ratio.
| Series | Ending value | Return | CAGR | Sharpe | Sortino | Max drawdown |
|---|---|---|---|---|---|---|
| V13.5 | $130,285.80 | +30.29% | +10.81% | 1.14 | 2.44 | −7.15% |
| SPY | $156,629.13 | +56.63% | +19.03% | 1.21 | 1.78 | −18.98% |
| QQQ | $166,709.15 | +66.71% | +21.94% | 1.05 | 1.55 | −22.84% |
QQQ’s deepest price drawdown was 3.2 times V13.5’s booked-equity drawdown in this sample.
V13.5 delivered the strongest Sortino ratio—return earned per unit of downside variation.
V13.5 trailed QQQ’s total return by 36.42 percentage points. Income stability, not maximum upside, is the product objective.
Bull and bear evidence
Adaptive by design.
Resilient in observed stress.
V13.5 changes strike distance using only information available before each decision. It remained positive over the full sample and absorbed the four largest observed QQQ drawdowns above 5% with materially smaller booked-equity moves.
Why we do not say “proven forever.” Downtrend-labeled sessions were negative for V13.5, and the research uses historical option-bar proxies without continuous mark-to-market. A credible income system reports that boundary.
Inside V13.5
One wheel.
Two market postures.
We run QQQ because technology compounds human productivity—and because a liquid index gives the strategy a focused, repeatable operating surface. The expression stays conservative: fully cash-secured puts and share-covered calls only.
Uptrend posture
Collect more put premium near the rising market while leaving more upside room on covered calls.
Defensive posture
Move cash-secured puts farther away while bringing calls closer to monetize a more cautious regime.
Determinism + intelligence
The model can stop a trade. It cannot invent one.
The platform’s pinned Gemini 3.6 Flash profile receives sanitized economic context and a semantic proposal. Its output is structurally limited to ALLOW_UNCHANGED or VETO. Missing context, model failure, timeout, or invalid output becomes NO_TRADE.
- 01Daily contextImmutable Alpaca market and news proxies, captured once
- 02Deterministic signalFrozen features and registered strategy logic
- 03Gemini 3.6 FlashSupport unchanged or veto—nothing executable
- 04Exact order planContract, quantity, limit and canonical hash
- 05Independent riskSnapshot-bound approval and execution preflight
- 06Paper executionIdempotent submission, reconciliation and audit
The active V13.5 wheel canary is intentionally deterministic-only while its equity-assignment lifecycle remains separate from the general strategy API. The combined economic/LLM gate is implemented in the broader platform and fixture path; we do not attribute today’s paper P&L to Gemini.
Config-driven infrastructure
Ship the control plane, not a snowflake machine.
Each role has one job, one dependency set, and only the minimum network and secret access it needs. YAML selects strategy and risk behavior; canonical hashes invalidate stale approvals when configuration changes.
strategy:
strategy_id: v13.5
symbols: [QQQ]
minimum_dte: 7
maximum_dte: 14
take_profit_fraction: 0.15
risk:
max_contracts_per_symbol: 1
maximum_daily_drawdown_fraction: 0.02
allow_unmanaged_positions: false
Local development is verified on native Apple Silicon ARM64, while the always-on Vultr production image is built and verified separately for native Linux AMD64. Moving the scheduler across those hosts is controlled packaging and operations work, not a strategy rewrite; the contracts, risk logic, broker adapter, hashes, and paper-only boundary remain the portable core.
Judge reproduction
Clone. Verify. Replay.
The default judge path needs no Alpaca or Gemini credentials and cannot place an order. It replays frozen inputs, exposes the read-only API, and proves the deterministic control flow.
git clone https://github.com/lipengyuan1994/alpaca-hackathon.git
cd alpaca-hackathon
git rev-parse HEAD
uv sync --frozen
uv run pytest -q
uv run paper-decision-worker
uv run paper-decision-worker --approved
docker compose -f infra/compose.yaml up --build api
curl http://127.0.0.1:8000/v1/status
Why Stable Income Generator
Most demos stop at an idea.
Ours closes the loop.
We built the automated system, froze and reproduced the strategy evidence, put V13.5 behind real risk controls, scheduled it against a fresh Alpaca paper account, and published the result—even where the benchmarks win.
- 01 Backtested strategy
- 02 Active paper automation
- 03 Positive dated paper P&L
- 04 Containerized control plane
- 05 Constrained economic intelligence