A run you can
take apart.
The PoseiTrader Research Lab is a working, independent historical-data backtesting application. Its JavaScript engine runs in a browser worker. A server-side market-data adapter loads real completed candles; every run produces an event log, trade ledger, and exportable report.
The architectural inspiration is NautilusTrader: explicit data, strategy, risk, and execution stages. This MVP is our own smaller implementation—not the Nautilus engine, its Rust runtime, or a claim of institutional execution speed.
$POSEI pre-launch direction
$POSEI has not launched. The proposed token-access roadmap covers expanded multi-token comparisons, saved research workspaces, and higher watchlist/alert limits. Benefits, holder thresholds, chain, contract address, and launch details have not been finalized or announced. No sale or holder-access entitlement is active. The research tools currently available remain usable without holding a token.
Pons discovery and onchain research on Robinhood Chain are being explored as a separate future integration. They are not active data sources in this lab today. This roadmap does not imply a Pons or Robinhood partnership. See the pre-launch vision →
The command center
Three configurable research playbooks—Balanced trend, Fast momentum, and Patient position—load signal windows, allocation, and risk limits in one click. These are starting configurations, not optimized strategies or performance recommendations. Selecting a preset preserves your capital, fee, and slippage inputs. The market strip switches historical datasets; homepage launch links can carry both a market and a playbook into the lab.
Candlestick charts show real OHLC data with gold fast and blue slow moving averages. Dense datasets are aggregated for display only, preserving each visual bucket's first open, highest high, lowest low, last close, and total volume; the engine and exports retain all original bars. The crosshair inspects individual underlying bars. Keyboard users can focus the chart and use arrow keys, Home, End, or Escape. B/S markers show the most recent 200 visible simulated fills.
The event replay scrubber reveals a completed backtest bar by bar. Play, pause, speed selection, and jump-to-end controls update the visible chart, cash/position state, equity readout, and event log. Frames come directly from the engine's recorded end-of-bar snapshots, not invented animation values. The axis range and headline last-close quote use the complete loaded dataset; full-run result metrics remain fixed and are labeled separately. Replay is a research visualization, not a live feed or order execution.
The event model
Historical OHLCV → BAR event → Previous-close strategy decision → SIGNAL / ORDER → Next available bar open → Simulated FILL → Stop-loss / drawdown checks → RISK → Mark-to-market equity → Trade ledger + JSON report
- Signals: the moving-average rule targets a long position when the fast mean exceeds the slow mean. It waits for the slow window to complete. Decisions use closes available at that bar and fills occur at the next bar's open. The buy-and-hold rule first enters at bar 1; it can re-enter after a stop unless the drawdown halt has fired.
- Sizing: one long position, fractional quantity, no leverage or shorting. Allocation uses available cash and includes entry fees. Quantities are not rounded to venue increments; this is a research fill model, not an order validator.
- Costs: slippage raises buy prices and lowers sell prices. A user-configurable fee in basis points applies on both sides. Defaults are illustrative assumptions, not Robinhood's actual fee schedule. Benchmark fees and slippage use the same inputs.
- Stops: an intrabar low at or below the entry-fill price minus the stop percentage triggers an exit. A gap below the stop uses the lower opening price, followed by adverse slippage. A stop can execute on the entry bar; same-bar re-entry is suppressed.
- Drawdown: measured at bar close from the prior equity high-water mark. Reaching the configured threshold blocks all new entries for the rest of the run; a remaining position liquidates at the next open. Gaps can produce losses greater than the threshold.
- End of data: remaining positions are liquidated at the last close with costs. The ledger labels this assumption
end_of_data. This terminal close is not a next-open strategy execution. - Benchmark: 100% allocation from the first tradable bar after strategy warmup, with the same fees/slippage and final liquidation. It has no stop or drawdown rules. Strategy allocation may differ, so exposure differs too.
- Limits: no order-book depth, volume participation, partial fills, latency, spread reconstruction, trading calendars, taxes, corporate actions, or delistings. Candle gaps are disclosed but not filled. CSV equities should be consistently adjusted before import. Historical simulation is not realized performance.
Market data & CSV
The server queries the Coinbase Exchange historical candle endpoint for BTC, ETH, SOL, or DOGE against USD. The lab excludes the current unfinished candle. Available windows are one day at 5 minutes, seven days hourly, 30 days at six hours, and 180 days daily. Empty intervals may be absent from the provider. This is Coinbase data, not Robinhood data.
If the provider fails, the lab displays an error. It never substitutes generated prices. The explicitly selected saved sample is a real, dated Coinbase snapshot with provenance in its metadata.
timestamp,open,high,low,close,volume 2025-01-01T00:00:00Z,100,103,99,102,1200 2025-01-02T00:00:00Z,102,104,100,103,1400 2025-01-03T00:00:00Z,103,105,101,104,1100
Import requires ascending, unique timestamps and consistent positive OHLC prices; volume must be nonnegative. UTC dates, timezone-qualified ISO strings, Unix seconds, and Unix milliseconds are supported. Limits: 20,000 bars and 10 MB. Imported files remain in browser memory and are never uploaded. The default moving-average strategy needs at least 22 bars.
Reproducibility
The full report includes the exact bars, provider metadata, normalized configuration, engine version, equity and benchmark series, trades, and all sequenced events. The run ID is a SHA-256 digest of the canonical JSON containing engine version, bars, and configuration. Fetch/import times do not affect that ID. Identical inputs and engine versions produce identical results; no randomness is used.
Data CSV and trade CSV downloads are available independently. The page previews the first 100 trades and last 100 events; the JSON contains everything. Changing data or configuration clears stale results. Calculations use IEEE-754 floating-point numbers, not a fixed-decimal accounting engine.
Robinhood Crypto adapter
Implemented: server-side signed, read-only quote and trading-pair requests. Not implemented: live order placement, account onboarding, equities execution, or a public brokerage login. Configuration status alone does not verify credentials.
The connector follows the official Robinhood Crypto Trading API. It signs the documented API-key + timestamp + path + method + body string with Ed25519 and uses v2 endpoints. See Robinhood's access instructions for eligibility and key setup. No private credential belongs in this site's public files or a chat.
- Create an API credential with the minimum read permissions needed for quotes and trading pairs.
- In the Vercel project's server environment settings, add
ROBINHOOD_API_KEY,ROBINHOOD_PRIVATE_KEY_BASE64(32-byte Ed25519 seed, base64), and a separate high-entropyPOSEI_ADMIN_TOKEN. Redeploy after changing environment variables. - In the lab's owner tools, enter only the PoseiTrader access token. The input is cleared after submission and not persisted. The server receives it as a bearer header. The Robinhood key and seed stay server-side.
- Use “Check quote” to verify an authenticated, read-only request. The selected symbol controls the quote check. A successful response shows only symbol, bid, ask, and receipt time—not account holdings or personal details.
GET /api/robinhood?action=status # Public configuration status; never claims authentication. GET /api/robinhood?action=quote&symbol=BTC-USD Authorization: Bearer <POSEI_ADMIN_TOKEN> GET /api/robinhood?action=products&symbol=BTC-USD Authorization: Bearer <POSEI_ADMIN_TOKEN> # GET only. Order submission does not exist in this adapter.
The owner token is a single-owner MVP access mechanism, not a multi-user brokerage authorization service. The application does not assert Robinhood endorsement or partnership. Partner-specific requirements can be incorporated separately once supplied.
What this release actually ships
Two strategy rules, deterministic historical replay, explicit costs and risk rules, a real-data endpoint, local CSV import, three charts, reproducible exports, and a credential-gated read-only Robinhood Crypto connector. No deposits, live-money trades, performance guarantees, or synthetic results presented as historical.